﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-组件工厂</title><link>http://www.cnblogs.com/henryfan/</link><description>探索逻辑组件化之路</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 03:30:09 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 03:30:09 GMT</pubDate><ttl>60</ttl><item><title>如何设计业务逻辑?</title><link>http://www.cnblogs.com/henryfan/archive/2008/08/15/1268431.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Fri, 15 Aug 2008 02:04:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/08/15/1268431.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1268431.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/08/15/1268431.html#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1268431.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1268431.html</trackback:ping><description><![CDATA[&nbsp;
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件设计总是很难捉摸</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设计虽然不一定决定软件生死</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但对软件的开发周期起着非常重要的作用</span><span lang="EN-US">.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那怎样的设计能适应软件的变更修改呢</span><span lang="EN-US">?</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">针对我个人而言只能答不知道</span><span lang="EN-US">&#8230;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因为我在设计的时候只针对现有存在的问题出发</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但在后期软件的变更所产生的东西总让人不知所措</span><span lang="EN-US">.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">虽然设计很难</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但有着丰富经验的设计人员总会知道什么时候应该干些什么</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而他们的出发点往往不是考虑得非常周全</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而是把代码结构变得越简单越好</span><span lang="EN-US">.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">业务变还是不变我们控制不了</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但如何让代码在变更的情况可以方便维护和修改我们还是有一定的能力的</span><span lang="EN-US">.</span></p>
<p class="MsoNormal"><span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">详话就不多说了</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最近似乎很多人谈三层设计的问题</span><span lang="EN-US">;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我来热闹一下</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但我谈的没有这么广</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">紧紧是从业务逻辑设计上来说</span><span lang="EN-US">(</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">细节决定成败</span><span lang="EN-US">).</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">先看以下代码吧</span><span lang="EN-US">:</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; color: blue; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes">public</span><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"> <span style="color: blue">void</span> Create(<span style="color: blue">string</span> username, <span style="color: blue">string</span> email) {<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US" style="font-size: 10pt; line-height: 150%; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">void</span> Create(<span style="color: #2b91af">User</span> user) {<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US" style="font-size: 10pt; line-height: 150%; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
</div>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">其实两个方法完成的功能都是一样的</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但两者确有着不同之处</span><span lang="EN-US">.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对于我个人而言后者对方法约定变更的风险比较低</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因为</span><span lang="EN-US">User</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类提供信息扩展的提供一些保障</span><span lang="EN-US">.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是不是什么情况都这样干呢</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">显然下面的就没有多大意义了</span><span lang="EN-US">.</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">bool</span> Login(<span style="color: blue">string</span> username, <span style="color: blue">string</span> pwd) {<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US" style="font-size: 10pt; line-height: 150%; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">bool</span> Login(<span style="color: #2b91af">User</span> user) {<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US" style="font-size: 10pt; line-height: 150%; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
</div>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">所以有一点我们可以紧记</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">程序是死的但人是活的</span><span lang="EN-US">.</span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上是逻辑对外的</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">那逻辑内部呢</span><span lang="EN-US">?</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同样的方法</span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">void</span> Create(<span style="color: blue">string</span> username, <span style="color: blue">string</span> pwd) {<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: green">//insert username,userpwd<o:p></o:p></span></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: green">//dal.call(username,userpwd)<o:p></o:p></span></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
</div>
<p class="MsoNormal" style="line-height: normal; text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><o:p>&nbsp;</o:p></span></p>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">void</span> Create(<span style="color: #2b91af">User</span> user) {<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: green">//DBContext.Add(user)<o:p></o:p></span></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US" style="font-size: 10pt; line-height: 150%; font-family: &#208;&#194;&#203;&#206;&#204;&#229;; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p>
</div>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上代码两者的差别又在那里呢</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这就留给有兴趣的朋友发言讨论了</span><span lang="EN-US">:) </span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有一个话题</span><span lang="EN-US">:</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我们如何知道做出来的东西能满足以后的需要呢</span><span lang="EN-US">?</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果能做到那唯一的可能就是业务的变化是按我们所假设的方向发展下来</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">但我们是不是永远都这么好运</span><span lang="EN-US">?</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如果我们的运气不好那怎样办</span><span lang="EN-US">?</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个时候估计只有简单可维护的代码才能把我们从井里救出来</span><span lang="EN-US">&#8230;</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这文章只是提个引子并不是想说这样做设计才是对的</span><span lang="EN-US">,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因为设计方法没有最好只有更好</span><span lang="EN-US">.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">让我们在不停的实践中进步吧</span><span lang="EN-US">.</span></p>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1268431.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>这样使用AOP是否合理</title><link>http://www.cnblogs.com/henryfan/archive/2008/08/13/1267438.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Wed, 13 Aug 2008 15:29:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/08/13/1267438.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1267438.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/08/13/1267438.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1267438.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1267438.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;<span lang="EN-US"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">情况如下：现在有一个</span><span lang="EN-US">User</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的逻辑处理组件，该组件提供基础的用户处理功能；但后期在写一个</span><span lang="EN-US">Blog</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的逻辑组件其中包括用户基础的扩展，当用户添加时要在</span><span lang="EN-US">Blog</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">功能的某个表里添加信息；从设计原则来说是不应该修改</span><span lang="EN-US">User</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件的里添加用户方法把</span><span lang="EN-US">Blog</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">基础信息加入。那这个时候到底是在</span><span lang="EN-US">Blog</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件里新做一个用户添加逻辑方法来把功能整合，还是在</span><span lang="EN-US">Blog</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件用</span><span lang="EN-US">AOP</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">功能把</span><span lang="EN-US">User</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件添加用户的方法进行拦载切入功能比较合理呢？</span>
<div style="border-right: windowtext 1pt solid; padding-right: 4pt; border-top: windowtext 1pt solid; padding-left: 4pt; padding-bottom: 1pt; border-left: windowtext 1pt solid; padding-top: 1pt; border-bottom: windowtext 1pt solid; mso-border-alt: solid windowtext .5pt">
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>[NClay.Services.<span style="color: #2b91af">AspectContainer</span>]<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">class</span> <span style="color: #2b91af">UserServiceAspect<o:p></o:p></span></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>[NClay.Services.<span style="color: #2b91af">Aspect</span>(<span style="color: blue">typeof</span>(Users.<span style="color: #2b91af">IUserService</span>))]<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">void</span> Create(<span style="color: #2b91af">User</span> user)<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">using</span> (<span style="color: #2b91af">TransactionContext</span> tc = <span style="color: blue">new</span> <span style="color: #2b91af">TransactionContext</span>())<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">MethodContext</span>.Invoke(user);<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">UserSubInfo</span> info = <span style="color: blue">new</span> <span style="color: #2b91af">UserSubInfo</span>();<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>info.UserID = user.UserID;<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">DaoContext</span>.Add(info);<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tc.Commit();<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;&nbsp;</span>[NClay.Services.<span style="color: #2b91af">Aspect</span>(<span style="color: blue">typeof</span>(Users.<span style="color: #2b91af">IUserService</span>))]<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">public</span> <span style="color: blue">void</span> Delete(<span style="color: blue">string</span>[] userid)<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue">using</span> (<span style="color: #2b91af">TransactionContext</span> tc = <span style="color: blue">new</span> <span style="color: #2b91af">TransactionContext</span>())<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">MethodContext</span>.Invoke(userid);<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af">ModelContext</span>.UserSubInfo.UserID.In(userid).Delete&lt;<span style="color: #2b91af">UserSubInfo</span>&gt;();<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tc.Commit();<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; line-height: normal; padding-top: 0cm; border-bottom: medium none; text-align: left; mso-border-alt: solid windowtext .5pt; mso-layout-grid-align: none; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt" align="left"><span lang="EN-US" style="font-size: 9pt; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 4.0pt 1.0pt 4.0pt"><span lang="EN-US" style="font-size: 9pt; line-height: 150%; font-family: 新宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">到底在什么场合下应该怎样做呢？设计这东西总是真是很难把握，一旦设计者的执著就有可能此引发一些设计上的问题，而这些问题往往在后期修改或扩展才能体现出来。</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">大家发表一下各自意见来讨论一下。</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes"><o:p></o:p></span></p>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1267438.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item><item><title>新版本的MVC框架露下面</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/26/1252179.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sat, 26 Jul 2008 10:31:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/26/1252179.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1252179.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/26/1252179.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1252179.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1252179.html</trackback:ping><description><![CDATA[摘要: 之前也介绍过一下自己的MVC框架，想一下自己这个框架的构建估计要比asp.net mvc要早。当初构建她的时候也是因为用过MonoRail后的想法，从开始到现在估计差不多有一年了，在这个过程中不停的重构翻新&#8230;再重构翻新&#8230;;经常N次的来回折磨后现在这个版本自己感觉也比较理想（其实对她挺满意的，自己先意淫一下）；在构造这个框架的时候选用了webform作为基础进行改制，现在想起&nbsp;&nbsp;<a href='http://www.cnblogs.com/henryfan/archive/2008/07/26/1252179.html'>阅读全文</a><img src ="http://www.cnblogs.com/henryfan/aggbug/1252179.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41929/" target="_blank">[新闻]阿里巴巴利润增1.36倍</a>]]></description></item><item><title>开源发布winform下的loading组件</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/22/1249056.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Tue, 22 Jul 2008 14:03:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/22/1249056.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1249056.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/22/1249056.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1249056.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1249056.html</trackback:ping><description><![CDATA[<p>&nbsp;相信经常写winform的朋友应该碰到过这种问题，就是当处理很多东西的时候界面假死的现象。</p>
<p>这段时间在工作的时候也碰到这情况，于是封装成一个组件方便大家使用。</p>
<p>其实这次发布的组件并不只这些功能，是一个自己用的一个winform简单功能库，不过现有功能还是比较少。</p>
<p>组件采用<font face="Verdana">Apache License</font> 2.0协议。</p>
<p><img height="300" alt="" src="http://www.cnblogs.com/images/cnblogs_com/henryfan/loading.gif" width="345" border="0" /></p>
<p><a href="http://www.cnblogs.com/Files/henryfan/HFSoft.Component.Windows.rar">下载组件</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1249056.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41928/" target="_blank">[新闻]Google Gears覆盖四大浏览器 Safari版推出</a>]]></description></item><item><title>自定义VsSingleFileGenerator能给我们带来什么</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241890.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sun, 13 Jul 2008 08:01:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241890.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1241890.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241890.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1241890.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1241890.html</trackback:ping><description><![CDATA[<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">最近在写一个</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">VsSingleFileGenerator</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">的功能，而这个功能主要是在</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">VS.net</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">中编写</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">XML</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">后自动生成数据操作辅助代码。简单的说就是一个代码生成工具，但由于其和</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">VS.Net</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">紧密结合相对其他代码生成工具来说有着不可比的优势；因为当</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">XML</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">文件修改后相关代码随即得到更新；而</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">VS.NET</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">对</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">XMLSchema</span><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">的支持使</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">XML</span><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">的编写变得非学轻松容易。</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">从以下演示可以看到</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">VS.NET</span><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">留给我的东西实在是太多了，其实</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">VS.NET</span><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">是不是还有很多东西我们没有挖掘出来？</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt"><a href="http://www.cnblogs.com/henryfan/archive/2008/07/13/1241885.html"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">演示</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">1</span></a></span></p>
<p class="MsoNormal"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt"><a href="http://www.cnblogs.com/henryfan/archive/2008/07/13/1241887.html"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">演示</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">2</span></a></span></p>
<p class="MsoNormal"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt"><a href="http://www.cnblogs.com/henryfan/archive/2008/07/13/1241888.html"><span style="line-height: 150%; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">演示</span><span lang="EN-US" style="line-height: 150%; mso-font-kerning: 0pt; mso-no-proof: yes; mso-bidi-font-size: 9.0pt">3</span></a></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">该</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">SingleFileGenerator</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-no-proof: yes">还没有完成，完成后会发布出来。</span><span lang="EN-US" style="mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt"><a href="http://www.cnblogs.com/henryfan/archive/2008/06/11/1217574.html"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt">想了解如何写</span><span lang="EN-US" style="mso-font-kerning: 0pt; mso-no-proof: yes">SingleFileGenerator</span></a></span></p>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1241890.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41927/" target="_blank">[新闻]Internet Explorer 8 Beta 2 发布</a>]]></description></item><item><title>SmallData VSGenerator演示3</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241888.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sun, 13 Jul 2008 07:56:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241888.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1241888.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1241888.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1241888.html</trackback:ping><description><![CDATA[<object height="998" width="1280" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" xcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="Movie" value="/images/cnblogs_com/henryfan/cap716.swf"    /><param name="Quality" value="high"   /><param name="wmode" value="transparent"   /><embed src="http://www.cnblogs.com/images/cnblogs_com/henryfan/cap716.swf" width="1280" height="998" quality="high" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"   ></embed>
</object>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1241888.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41927/" target="_blank">[新闻]Internet Explorer 8 Beta 2 发布</a>]]></description></item><item><title>SmallData VSGenerator演示2</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241887.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sun, 13 Jul 2008 07:54:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241887.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1241887.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1241887.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1241887.html</trackback:ping><description><![CDATA[<p>
<object height="998" width="1280" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" xcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="Movie" value="/images/cnblogs_com/henryfan/cap1931.swf"    /><param name="Quality" value="high"   /><param name="wmode" value="transparent"   /><embed src="http://www.cnblogs.com/images/cnblogs_com/henryfan/cap1931.swf" width="1280" height="998" quality="high" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"   ></embed>
</object></p>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1241887.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41927/" target="_blank">[新闻]Internet Explorer 8 Beta 2 发布</a>]]></description></item><item><title>SmallData VSGenerator演示1</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241885.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sun, 13 Jul 2008 07:52:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241885.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1241885.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/13/1241885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1241885.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1241885.html</trackback:ping><description><![CDATA[<object height="998" width="1280" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" xcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="Movie" value="/images/cnblogs_com/henryfan/cap764.swf"    /><param name="Quality" value="high"   /><param name="wmode" value="transparent"   /><embed src="http://www.cnblogs.com/images/cnblogs_com/henryfan/cap764.swf" width="1280" height="998" quality="high" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"   ></embed>
</object>
<img src ="http://www.cnblogs.com/henryfan/aggbug/1241885.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41927/" target="_blank">[新闻]Internet Explorer 8 Beta 2 发布</a>]]></description></item><item><title>开源SmallData轻量数据访问组件</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/12/1241444.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sat, 12 Jul 2008 07:39:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/12/1241444.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1241444.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/12/1241444.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1241444.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1241444.html</trackback:ping><description><![CDATA[摘要:  这个组件是从NClay.Data基础功能分离出来，主要功能以下功能：一致的数据库访问方式，基于接口的数据库提供者扩展，基于线程的连接对象句柄可以简单实现跨方法的数据库事务处理能力；组件配备6个数据库连接设置通过DBContext的不同版本的Region方法来进行不同数据库操作。组件才用Apache License 2.0协议。辅助工具：迟下将会提供一个Code Generator用于实现简单描述&nbsp;&nbsp;<a href='http://www.cnblogs.com/henryfan/archive/2008/07/12/1241444.html'>阅读全文</a><img src ="http://www.cnblogs.com/henryfan/aggbug/1241444.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41924/" target="_blank">[新闻]中国软件协会：SAP羞辱国产软件是不正当竞争</a>]]></description></item><item><title>发布一个验证码生成组件</title><link>http://www.cnblogs.com/henryfan/archive/2008/07/06/1236842.html</link><dc:creator>henry</dc:creator><author>henry</author><pubDate>Sun, 06 Jul 2008 04:02:00 GMT</pubDate><guid>http://www.cnblogs.com/henryfan/archive/2008/07/06/1236842.html</guid><wfw:comment>http://www.cnblogs.com/henryfan/comments/1236842.html</wfw:comment><comments>http://www.cnblogs.com/henryfan/archive/2008/07/06/1236842.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/henryfan/comments/commentRss/1236842.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/henryfan/services/trackbacks/1236842.html</trackback:ping><description><![CDATA[该组件只负责验证码图片的生成，对于如何在WEB或其他地方使用就根据自己情况来使用。<a href="/Files/henryfan/NumberImage.rar"><br />
下载</a><br />
<a href="http://210.40.5.24:81/MarkNum/Test.aspx">WEB演示地址</a><br />
<br />
WEB下的效果图<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/henryfan/numberimage.gif" border="0" />
<img src ="http://www.cnblogs.com/henryfan/aggbug/1236842.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41923/" target="_blank">[新闻]福布斯：Facebook网站十大最火爆游戏</a>]]></description></item></channel></rss>