﻿<?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>博客园-ipointer</title><link>http://www.cnblogs.com/ipointer/</link><description>给我最爱的宝宝</description><language>zh-cn</language><lastBuildDate>Sat, 17 May 2008 10:25:20 GMT</lastBuildDate><pubDate>Sat, 17 May 2008 10:25:20 GMT</pubDate><ttl>60</ttl><item><title>编译器错误信息: CS1595: 已在多处定义“ ”；一种可能出现的情况</title><link>http://www.cnblogs.com/ipointer/archive/2008/03/29/1129218.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Sat, 29 Mar 2008 13:43:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2008/03/29/1129218.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/1129218.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2008/03/29/1129218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/1129218.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/1129218.html</trackback:ping><description><![CDATA[先说一下网上经常能搜到的情况。<br />
<font face="Verdana"><a href="http://liubiqu.cnblogs.com/archive/2004/11/30/71025.aspx">http://liubiqu.cnblogs.com/archive/2004/11/30/71025.aspx</a></font> 这个说了两种情况，方法 1：在 C# 编译器定义中包括 /nostdlib 选项；方法 2：为 ASPNET 帐户授予列出权限。可以参见一下。<br />
还有就是说把命名空间改掉，<font face="Verdana">http://www.cnblogs.com/zgqys1980/archive/2006/08/16/478414.html</font><br />
但对于我的情况都不适用。<br />
<br />
我的情况是运行时ieWebControl出现多处定义，并不是编译时。<br />
开始想不通，这个多处定义是怎么来的，做了一些尝试，如：重装这个控件，删除ASP.NET的临时文件，重启iis，都不管用。<br />
最后还是着眼于ASP.NET的查找dll的方式，大家都知道ASP.NET运行时的dll都是在临时文件夹（%Windir%\microsoft.net\framework\{<font face="Verdana">version</font>}）,而这里面的dll都是从GAC和Web应用程序根目录下Copy过来的。这样就想到是不是这两个地方都有这个dll呢，证实是这样的，而且版本还不一样，这就造成了运行时的多处定义。ps：Web程序和WinForm的加载dll的方式不一样，WinForm肯定是首先找GAC，再找运行目录或根据配置文件找，所以WinForm程序运行时不会出现这样的问题。结果就是删掉Web应用程序根目录下的这个dll，就正确的，也不知道哪个鸟人拷进去的。<img src="http://www.cnblogs.com/Emoticons/msn/confused_smile.gif"  alt="" />
<img src ="http://www.cnblogs.com/ipointer/aggbug/1129218.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2008-03-29 21:43 <a href="http://www.cnblogs.com/ipointer/archive/2008/03/29/1129218.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BPM业务场景分析（1）——内部交易合并开票</title><link>http://www.cnblogs.com/ipointer/archive/2008/03/25/1121385.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Tue, 25 Mar 2008 07:43:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2008/03/25/1121385.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/1121385.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2008/03/25/1121385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/1121385.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/1121385.html</trackback:ping><description><![CDATA[上篇的姊妹篇，上个系列是由工作流模式推业务场景，而本系列是由业务场景推运行时实现，都是头脑风暴的总结，不都是正确的，欢迎大家指正问题。<br />
<p>（1） 描述
<p>内部交易流程，完成了整个业务过程之后是集中开票的过程。开票操作是批操作，至于哪些放到一批里面，这个规则不确定，可能由人决定，可能是一个月开一次票。
<p>单纯的从业务发生发展角度来看，内部交易完成以后就应该是开票，以上的业务流程图很简单，如下：
<p><a href="file:///C:/Documents%20and%20Settings/zhujch/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2aab81c2-10d5-467d-874f-cba1bd3c7d0b/clip_image002[3].gif"></a>&nbsp;<span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">&nbsp;<img height="54" alt="" src="http://www.cnblogs.com/images/cnblogs_com/ipointer/BPM1.JPG" width="224" border="0" /></v:shapetype></span>
<p>展开来看，想要达到的运行效果类似于下图：
<p><a href="file:///C:/Documents%20and%20Settings/zhujch/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2aab81c2-10d5-467d-874f-cba1bd3c7d0b/clip_image004[4].gif"></a><img height="164" alt="" src="http://www.cnblogs.com/images/cnblogs_com/ipointer/BPM2.JPG" width="368" border="0" />&nbsp;
<p>（2） 解决方案
<p>a、 将内部交易和集中开票分到不同的业务流程上，本来这者就没有太紧密的联系，因此分到两个业务流程上也很自然。实现方式上，内部交易流程实例正常结束，之后由人参与决定哪些数据集中到一张发票上，激活开票流程。为了流程回溯，在数据汇合的时候应该记录内部交易流程和开票流程之间的关系。这种方案适用于内部交易流程和开票之间没有固定规则，需要人参与的场景。
<p>b、 用多实例模式中的在运行时都不确定执行次数的方式来实现这个流程，内部交易流程是一个可重复执行的活动块，这个活动重复执行的次数是在运行时外部事件决定的，可能是时间，也可能是人参与产生的事件。如，在某些管理方法中是月结的，即是由时间作为外部事件，下图描述了这种情况。
<p><a href="file:///C:/Documents%20and%20Settings/zhujch/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2aab81c2-10d5-467d-874f-cba1bd3c7d0b/clip_image006[4].gif"></a><img height="105" alt="" src="http://www.cnblogs.com/images/cnblogs_com/ipointer/BPM3.JPG" width="528" border="0" />&nbsp;
<p>上图的流程的启动条件是每月月初，并使能重复执行Scope块活动，每个内部交易开始激活一个执行线程，此内部交易流程结束后，整个Scope块活动仍然处于使能状态，直到结束条件&#8216;时间到月末&#8217;成立，整个Scope块活动结束，然后进行集中开票。
<p>（3） 含义引申
<p>从上面的两个解决方案引出了一个问题，什么样的流程环节应该画在一个流程里面，而什么样的应该分开，这个是不是有选择的标准？是根据实施人员的经验来进行判断？那么两个不同水平的实施人员所定制的流程的可用性将有天壤之别。目前总结的标准或者说是策略包括：
<p>a、 流程描述、展现的含义是不是清楚。在特定流程定制工具的约束下，是不是能表达出流程的本义。
<p>b、 数据转换存不存在问题。在一个流程中，这个肯定不是问题，而分开了可能就有问题。
<p>c、 流程回溯、数据跟踪的方便性，同上面一条的道理。
<p>除了上述的选择标准的问题，还有一个问题不得忽视。如何保持流程之间的串联性，说白了就是如果是自动激活了流程，如何通知这个流程启动，而如果是由人激活的流程，那么如果去通知这个人。自然的联想就是通过消息中间件，其特征必须具备传达的可靠性、大吞吐量和回馈的准确性。微软的建议是使用Biztalk，那么就在这种假设下构建了如下的业务流程图。
<p><a href="file:///C:/Documents%20and%20Settings/zhujch/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/2aab81c2-10d5-467d-874f-cba1bd3c7d0b/clip_image008[4].gif"></a><img height="176" alt="" src="http://www.cnblogs.com/images/cnblogs_com/ipointer/BPM4.JPG" width="375" border="0" />&nbsp;
<p>上图表达了粗粒度的业务流程图，图中每个方块代表的是一个模块内的流程，而模块间的流程的互操作性由Biztalk的能力提供，主要依赖强大的Mapping做数据转换、抓取数据的BAM用来做数据跟踪、消息中间件的能力。
<p>另一个问题是业务流程划分的力度不能过小，如果还是以一个功能点为一个业务流程的话，又回到了目前功能驱动的情况了。</p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/1121385.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2008-03-25 15:43 <a href="http://www.cnblogs.com/ipointer/archive/2008/03/25/1121385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>高级工作流模式深入业务场景分析（1）——多路合并</title><link>http://www.cnblogs.com/ipointer/archive/2008/03/24/1119962.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Mon, 24 Mar 2008 08:59:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2008/03/24/1119962.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/1119962.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2008/03/24/1119962.html#Feedback</comments><slash:comments>25</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/1119962.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/1119962.html</trackback:ping><description><![CDATA[<p>开篇之作
<p>（1） 描述
<p>两条或更多的分支合并到单一的一条后续路径中，每一条使能进入分支都激活后续路径的一次执行线程。虽然多条分支在图形上是合并的，但是这个多路合并并不对这些分支激活的后续线程进行任何的同步。
<p>（2） 抽象模型描述
<p><a href="http://www.workflowpatterns.com/patterns/control/advanced_branching/wcp8_animation.php">多路合并的Flash动画</a>
<p><a href="http://tkfiles.storage.msn.com/y1pqjmKiMB65hyBlR6kDLzGkhlqVfvdRf4ueMMjUcHfH0q3N_xAhdih1tIkrxlhj9zLLdrSlQ-AALA?PARTNER=WRITER"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="134" alt="clip_image002" src="http://tkfiles.storage.msn.com/y1pqjmKiMB65hyacxbxNO1yYkNJ72nYCTAU1mWOw6okoa2mVSh8jRtbSZu0DqA2Gua-3raIl66_N1U?PARTNER=WRITER" width="456" border="0" /></a>
<p>上图中，B和C是多路选择后的分支，这样的分支可以超过两个，假设还有E、F&#8230;&#8230;，这样的分支在多路选择处不进行同步，每一个分支都会激活一次D的执行，即D（B）、D（C）、D（E）&#8230;&#8230;，并且这些D的线程互不干扰。
<p>（3） 业务场景举例
<p><a href="http://tkfiles.storage.msn.com/y1pqjmKiMB65hzvOsfDCaZPoqlAj0xmOePmaUTzMmGifHzu8yFeTY0iOCv1T0WOz-eS-uVcAyhXgYE?PARTNER=WRITER"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="197" alt="clip_image004" src="http://tkfiles.storage.msn.com/y1pqjmKiMB65hzUZsI8pqRT0e-WbVjcR21x7AwJBNdZrckmgHykXjhkh11z9kqO7o6oiI_ABFURUD0?PARTNER=WRITER" width="460" border="0" /></a>
<p>报销流程，假设分为三部分：住宿费、交通费、飞机票特殊报销。可能出现的情况有：住宿费+交通费；住宿费+交通费+飞机票特殊报销；交通费；交通费+飞机票特殊报销&#8230;&#8230;
<p>流程开始，首先填写报销申请（勾选报销的内容，三种费用中选择），之后流程根据勾选的内容激活后续的填写不同报销单的分支，最后每一张报销单都需要经过审批。
<p>如果流程引擎没有实现多路合并我们可以变相的实现上面的功能。如下图：
<p><a href="http://tkfiles.storage.msn.com/y1pqjmKiMB65hz61C3PIQSTYLd8ZnrWRotBQgg-wUbeSKhiw5QwUAw6Mh4sHHyGGh8cQt8K9-furFU?PARTNER=WRITER"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="199" alt="clip_image006" src="http://tkfiles.storage.msn.com/y1pqjmKiMB65hxIQmH5fpd6Q6ABK3WQOaYzeFlzr55WhQ4mMmRoeVk2u-hfDyU9JVfJRpkhFt9id8E?PARTNER=WRITER" width="528" border="0" /></a>
<p>但上述的实现有以下的不足：
<p>a、 重复工作量，审批分明是同一个活动，非要分多个来画；
<p>b、 无法进行统计，若要对审批这一活动的时间、数量等信息进行统计分析，那么分成了多个活动后就难于进行统计。
<p>c、 资源的分配，假设审批是由一个岗位来负责，且任务压力应该在这个岗位上负载均衡，那么分成了多个活动后这个资源的分配也无从着手。
<p>（4） 含义引申
<p>多路合并的后续路径，是一些相同行为的执行线程，这就类似于另外一种模式——多实例模式。这些线程终有一个需要同步的时候，在业务场景中，这个同步就非常的复杂，如后续步骤为制证，这种业务可以分为以下情况，我们一一举例说明：
<p>a、 强制一对一：一个审批后的单据生成一个财务凭证，那么这些多实例的线程暂时不同步，留到后续步骤。这种管理方式是比较常见的。
<p><a href="http://tkfiles.storage.msn.com/y1pqjmKiMB65hwPb46KdkOfLpjA9h6P4sq0wB368HCtLnFaKF_JaZCMBFu5lbf9UTba3kDEH3DanRQ?PARTNER=WRITER"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="63" alt="clip_image008" src="http://tkfiles.storage.msn.com/y1pqjmKiMB65hxo6ts5qomkDxGR_7_BFEdzsyxAjia2g_Zduvp1pA34MfxD85zaUpJ93M5JCTBXSzY?PARTNER=WRITER" width="476" border="0" /></a>
<p>b、 强制多对一：同一个报销申请产生的报销单据，需要生成在一个财务凭证上。因此在制证前就需要同步。这种管理方式是比较常见的。
<p><a href="http://tkfiles.storage.msn.com/y1pqjmKiMB65hxICm1Mkn0gEHMsEEtLNdIxcJH1phrCqJGJiKWnBjMlDR3e717efm0RSvpphuNCPoE?PARTNER=WRITER"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="63" alt="clip_image010" src="http://tkfiles.storage.msn.com/y1pqjmKiMB65hyUnCF_1GQjHWd2Fwr_yWOgcXPi5mTfF9XR_lSTYegCHTcuZnNWTRp4FxCzaK-DRfA?PARTNER=WRITER" width="477" border="0" /></a>
<p>c、 任意多对多：在本场景中，这个不太可能发生，但在一般的物流业务中却非常常见。假设飞机票的审批比较严格，拖得时间比较长，另外两个报销单早批了，那么先将这两个生成同一个财务凭证。这种任意性的规则，一般都是通过人来判断的。
<p><a href="http://tkfiles.storage.msn.com/y1pqjmKiMB65hxS4FUaqmpcci8Py_YWwnj5cEdgqk2O1RarItZtS23IXcB8eq71p_LhH2yQftgHBPo?PARTNER=WRITER"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="63" alt="clip_image012" src="http://tkfiles.storage.msn.com/y1pqjmKiMB65hzqh3Y8pnDFAl0d7ZvuwayI9nZuivDMUCtqez6iYlhNBr3dQelBWAlhaB2CVw3cJxE?PARTNER=WRITER" width="477" border="0" /></a></p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/1119962.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2008-03-24 16:59 <a href="http://www.cnblogs.com/ipointer/archive/2008/03/24/1119962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流系统中增加“业务活动”这一概念的想法</title><link>http://www.cnblogs.com/ipointer/archive/2007/10/25/936779.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Wed, 24 Oct 2007 19:06:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2007/10/25/936779.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/936779.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2007/10/25/936779.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/936779.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/936779.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">什么是&#8220;业务活动&#8221;，我认为是对活动在业务层面上的更高的抽象，就好像我们提面向对象时将子类的公共方法提取到抽象类中一样，我们将活动在业务上的公共提取到&#8220;业务活动&#8221;上。&#8220;业务活动&#8221;建立在&#8220;业务流程&#8221;之下，是对流程更细一层的业务抽象。一个&#8220;业务活动&#8221;可以对应一个具体流程中的多个相同业务概念的活动，也可以对应在同一&#8220;业务流程&#8221;下的多个具体流程中同一业务环节的多个活动。</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这样我们在为业务流程建模时，首先是定义&#8220;业务流程&#8221;，其次应该是识别流程中有哪些&#8220;业务活动&#8221;，并为&#8220;业务活动&#8221;定制一些属性，最后才是定义具体的流程。使用一套已经建立好了的&#8220;业务流程&#8221;来定制流程就变得非常的轻松，流程上关联业务流程，活动上关联业务活动，这样所有与业务相关的属性就都可以设置好。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">先前版本的工作流将活动上不管是与业务相关的，还是与流程相关的属性一齐混杂在流程设计器上。这种实现方式有几大弊端：</span>1<span style="font-family: 宋体">、无法实现同一业务概念的复用，在一个活动上定的业务概念，需要在另一个相同业务意义的活动上原封不同的重定一遍。虽然我们实现了活动的复制，但我认为这种复制不是解决这种业务意义复用的很好方式。</span>2<span style="font-family: 宋体">、所有的与业务相关的实体都是独立于工作流系统之外的，在定义流程时将这些业务实体的设置记录在流程定义中。由于流程的版本控制，先前已经运行的流程定义是无法改变的，而业务实体又可能是会发生变化的，如单据的字段权限变化了（对于自定义表单这样生来就是为适应变化的，就更容易发生变化了），构件的参数又增加了一个等等，致使流程运行时业务上的改变得不到及时的体现，甚至运行不下去。</span>3<span style="font-family: 宋体">、流程运行结果，更通俗的讲可能是审批的结论、意见不能根据业务意义进行分类，明显的体现是审批结果打印时，所有的意见结论都罗列在一起（这个需求来源于</span>OA<span style="font-family: 宋体">项目组）。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">哪些活动属性应该放到&#8220;业务活动&#8221;上，我认为表单定义、表单权限设置（动作权限、字段权限），其他象外部工具、规则等也可以考虑放进来。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">工作流可以无区别的对待普通流程和</span>OA<span style="font-family: 宋体">使用的动态流程的权限设置，都包括表单参数设置、表单动作权限的设置、表单字段权限的设置。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">值得一提的是，像加签、会签、跳转等权限，我认为是纯粹的流程权限，不应该去表单的权限混为一谈，可以强制识别这些的流程引擎提供了的流程动态功能，并为其设置权限。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 宋体">对特殊性、向下兼容的考虑，在流程定义上仍然保留这些在&#8220;业务活动&#8221;添加的属性，在使用时首先查找具体活动上的定义，再查找业务活动上的定义。这样的同一&#8220;业务活动&#8221;对应的活动也可以有完全不同的特性，而且对于老版本的流程定义，即使没有在活动上关联业务活动，仍可以正常运行。</span></p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/936779.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2007-10-25 03:06 <a href="http://www.cnblogs.com/ipointer/archive/2007/10/25/936779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>回发或回调参数无效。在配置中使用...pages enableEventValidation="true"/&gt;</title><link>http://www.cnblogs.com/ipointer/archive/2007/07/06/807989.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Fri, 06 Jul 2007 01:21:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2007/07/06/807989.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/807989.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2007/07/06/807989.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/807989.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/807989.html</trackback:ping><description><![CDATA[<p>今早给客户解决了个问题，问题<span>是回发或回调参数无效。在配置中使用&lt;pages enableEventValidation="true"/&gt;。<br>google了一下，网上有两种说法：<br>1、把&lt;pages enableEventValidation="true"/&gt;改成&lt;pages enableEventValidation="false"/&gt;就好了。<br>2、把web.config中的globalization元素的requestEncoding和responseEncoding属性都改成utf-8。<br><br>解决问题的时候两种方法都试过了，都没有用，最后发现是客户机器上装了.net framewoke2.0，如果装1.1的程序会将站点建成2.0的，把这里改过来就可以了。<img height=20 src="http://www.cnblogs.com/Emoticons/QQ/14.gif" width=20 border=0></span></p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/807989.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2007-07-06 09:21 <a href="http://www.cnblogs.com/ipointer/archive/2007/07/06/807989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转我们经理的一篇文章，业务流程实现的讨论，希望大家集思广议。</title><link>http://www.cnblogs.com/ipointer/archive/2007/05/29/764045.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Tue, 29 May 2007 07:53:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2007/05/29/764045.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/764045.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2007/05/29/764045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/764045.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/764045.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 现在搜一下业务流程管理，信息很多，也有很多产品号称是业务流程管理系统，但是在我看来，根本不是那么一回事，只能说某些产品只是实现了一个业务流中的某一个片段，如审批流、状态机、一个单据的流程。
<p>&nbsp;&nbsp; 想实现多个单据，如从申请、订单、发票、提货、出库、凭证一个完整的流程怎么办呢？怎么来用业务流管理起来。业务流系统的特点是根据规则系统自动分配任务，参与流程的人来完成任务。这个特点要求业务流的规则是可以定义和预见的。但是实际业务又要求，后续的业务只有在业务发生之时才能决定。这里面就存在一个矛盾，怎么解决这个矛盾呢。</p>
<p>&nbsp;&nbsp; 首先想到的是业务流的流程实例的拆分和合并，流程是跟业务对象实例一一对应的，业务流中的业务对象有很多种，每种业务对象的实例之间存在拆分和合并的可能。如果对象实例数据合并了，则流程实例也需要合并；如果对象实例数据拆分了，流程实例也需要拆分。</p>
<p>&nbsp;&nbsp; 第二个想到的办法是，将实例的明细数据启动一个流程实例，这里仍需要解决一个问题，那就是各个环节的处理是以一个业务实例为单位的，将明细数据对应一个流程实例，需要提供组处理的功能，即一组任务项合并为一个任务，处理这个任务就完成一批任务。</p>
<p>&nbsp;&nbsp; 第三个办法就是不使用业务流的原理来处理。即一个单据的完整流程使用业务流系统，几个单据之间使用的是集成流，利用集成的方式来处理几个单据之间的流转。</p>
<p>&nbsp; 虽然办法有很多，但是那种是最好的方式呢？</p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/764045.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2007-05-29 15:53 <a href="http://www.cnblogs.com/ipointer/archive/2007/05/29/764045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>维护旧版本项目的一些方法</title><link>http://www.cnblogs.com/ipointer/archive/2007/03/28/690612.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Tue, 27 Mar 2007 16:45:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2007/03/28/690612.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/690612.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2007/03/28/690612.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/690612.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/690612.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天碰到一个比较棘手的问题，一个做了2年多的项目上反映了一个问题，问题比较简单，但是涉及改动的dll引用的dll非常多，而且项目上的版本已经很旧了，这一处的改动会影响到几乎所有的dll的更新。单独更新这个dll是不可能了，也不能做完面的版本升级（公司的规定，可能升级是要花钱的，呵呵），而且vss中也清过了，没有留当时的代码。如果dll也能像asp页面一样直接修改，保存后就运行就好了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查了下资料，发现两种方法：（1）使用ildasm和ilasm两个自带的工具，加上IL（2）使用.NET Reflector插件FileDisassembler还原代码，重新编译。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先说一下第一种方法，使用ildasm打开项目上发过来的dll，在file下有dump菜单（如果是中文版就是文件下的转储菜单），弹出新窗口确定即可，生成后缀为.il的文件。下面就需要懂一点il语言，以前一直认为学习这个il语言没什么用，今天只能现学一把，因为问题比较小，4、5行就搞定了。保存之后，使用ilasm重新编译这个il文件。使用命令如ilasm.exe GSP_WorkflowEngine.il /dll /output=GSP_WorkflowEngine.dll，就OK了。不过在写il的时候还是碰到了很多问题，一直编译出错，还是il没有写好，看来学习il还是很多好处的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二种就是使用.NET Reflector插件FileDisassembler，先把这个插件下好挂上，菜单中就会出现FileDisassembler这个菜单项，打开要反编译的dll，就可以生成出源码，即使用了混淆器，要修改的问题也很容易找到，毕竟我们对自己的代码还是很熟悉的。重新建解决方案，添加需要引用的dll，重新编译就OK了。<br></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 写在最后，这两种方法本质上原理是一致的，我个人觉得，如果对il掌握的非常好的话，第一种方法是非常爽的，即使是在项目现场，对一些小问题修改都是相当轻易的。由此还想到.net的安全性，对于非强命名的dll来说，这种il级别的修改都是有效的，但对于软件的保护是相当不利的，我们是很容易从il中找到验证正版的代码信息，直接去掉，重新编译就破解了；对于入侵者来说，也是很容易修改系统上.net程序的运行方式的。</p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/690612.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2007-03-28 00:45 <a href="http://www.cnblogs.com/ipointer/archive/2007/03/28/690612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OutLook解析邮件头的问题</title><link>http://www.cnblogs.com/ipointer/archive/2007/03/13/673721.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Tue, 13 Mar 2007 15:33:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2007/03/13/673721.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/673721.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2007/03/13/673721.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/673721.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/673721.html</trackback:ping><description><![CDATA[客户反映我们的邮件提醒中，显示的发送时间不对，而且相差的非常的大，如下图：<img src="http://www.cnblogs.com/images/cnblogs_com/ipointer/ee.JPG" border=0><br>左下角是用DateTime.Now打出来的正确时间，而右上角是OutLook解析邮件头显示出来的时间。<br>看到这个问题，觉得相当的奇怪，因为邮件头里我也是用WriteString(ns, "Date: " + DateTime.Now);往流里面写的呀，怎么会出来这么一个奇怪的时间呢？<br>开始是怀疑客户那里的应用服务器的时间出了问题，可几经确认，发现确实不是这个问题。<br>难道是邮件头里还隐藏着什么时间吗，可拿OutLook正常收到的邮件头和我们自己发的多次比较也没有发现什么问题，这个问题真是太奇怪了。<br>转而求助Google，也没有发现相关的文章；求助微软的老马，他只是指点可能时区出了问题。反复检查服务器上的时区，也没有问题。<br>郁闷之时，用FoxMail收了一下我们发的邮件，竟然正常，开始怀疑是微软小小的bug。<br>但还是定位不出问题，情急之下，胡搞乱搞，改了一下系统日期，调成了2006年，发现那个错误的日期也变成了2006-1-3。再观察邮件头，发现Date字段也变成了2006，于是问题还是出在了这个Data字段上。<br>再仔细比较我们的邮件头和正常的邮件头，发现了一点区别：<br>正常的是：Date: Tue, 13 Mar 2007 23:09:10 +0800<br>我们的是：Date: 2007-3-13 23:08:22<br>hoho，原来是OutLook解释不了这样的时间格式呀，于是修改代码成：<br>WriteString(ns, "Date: " + DateTime.Now.ToString("r"));<br>问题搞定！<br>这个被客户骂死的小问题拖了一两个月（嘻嘻，因为觉得不是大问题，也确实不知道怎么弄），终于找到原因了，庆祝一下。
<img src ="http://www.cnblogs.com/ipointer/aggbug/673721.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2007-03-13 23:33 <a href="http://www.cnblogs.com/ipointer/archive/2007/03/13/673721.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MS DTC简述</title><link>http://www.cnblogs.com/ipointer/archive/2006/09/29/518490.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Fri, 29 Sep 2006 09:38:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2006/09/29/518490.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/518490.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2006/09/29/518490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/518490.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/518490.html</trackback:ping><description><![CDATA[<p>刚刚看了关于MS DTC的文章，明白了一点。下面摘录一点。<br>MS DTC即为Microsoft Distributed Transaction Coordinator (MS&#174; DTC) 。</p>
<p><span class=90v>在 MS DTC 术语中，执行者被称为事务管理器。在执行事务保护资源的事务中，其参与者（如关系数据库）被称为资源管理器。<br><br><span class=90v>应用程序对每个资源管理器的第一次调用确定应用程序的当前事务。例如，如果应用程序在使用关系数据库，它会调用 ODBC 接口，此接口将事务对象与 ODBC 连接关联起来。在此之后，所有通过此连接的数据库调用都会代表该事务执行，直到该事务结束为止。<br></p>
<p><span class=90v>当某个资源管理器首先代表某个事务工作时，会通过调用事务管理器&#8220;登记&#8221;到该事务中。随着事务的发展，事务管理器会跟踪每个登记到该事务中的资源管理器。</span></p>
<p><span class=90v>通常，应用程序用 Commit 事务方法来完成事务。如果应用程序无法完成，则调用 Abort 事务方法，该方法可以撤消事务的操作。如果应用程序失败，MS DTC 就会放弃此事务。<br></p>
<p><span class=90v>当应用程序成功地完成事务的工作后，它会调用 MS DTC 来&#8220;提交&#8221;事务。然后 MS DTC 会仔细检查&#8220;两阶段&#8221; &#8220;提交协议&#8221;，使所有已登记的资源管理器都提交。两阶段提交协议可确保所有的资源管理器提交此事务，或全都放弃此事务。在第一阶段，MS DTC 询问每个资源管理器是否&#8220;准备&#8221;提交。如果所有参与者都回答&#8220;是&#8221;，那么在第二阶段 MS DTC 将向所有参与者广播提交信息。如果事务的任何部分失败，或资源管理器响应准备请求失败，或资源管理器响应&#8220;否&#8221;，那么 MS DTC 将通知所有资源管理器该事务已被放弃。</span></p>
</span></span></span>
<img src ="http://www.cnblogs.com/ipointer/aggbug/518490.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2006-09-29 17:38 <a href="http://www.cnblogs.com/ipointer/archive/2006/09/29/518490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图中跳转问题</title><link>http://www.cnblogs.com/ipointer/archive/2006/04/03/365394.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Mon, 03 Apr 2006 03:02:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2006/04/03/365394.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/365394.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2006/04/03/365394.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/365394.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/365394.html</trackback:ping><description><![CDATA[<p>问题描述：在有向图中，有唯一的开始节点和结束节点。图中节点的分叉和汇合有两种类型AND和XOR，分叉的时候为AND时，流程会流入下面所有的分支，为XOR只留向其中一条分支；汇合的时候，AND表示所有汇入的分支都已汇入流程才能继续，XOR表示一条汇入流程就继续。如果能从开始节点出发，正确的到达结束节点，那么这个流程就是正确的。<br>现在的问题是流程的节点之间需要跳转，即流程不按正常的流向进行，而是跳向指定的节点，先如何通过算法算出有向图中从某节点可以向的节点集合。<br><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/ipointer/jumptest.JPG" border=0><br>解决思路：<br>1、使用有向图的化简，有两种局部可以化简，从一个节点到另一个节点间没有分叉和汇合，那么这两个节点可以化简为直接连接；如果从一个节点到另一个节点间经过m个分叉和n个汇合，假设m&gt;n,那么局部可以化简为m-n个分叉和一条直接的连线。将图化到最简，最后比较容易判断节点间是否可跳。<br>2、通过模拟运行的方式，将要跳出的节点的迁移从图中去掉，加上从跳出节点到跳入节点的迁移，模拟让流程运行一下。看流程是否正确。<br>存在的问题：方法一碰到及其复杂的流程无法处理，不能判断是否能化简；方法二，无法判断流程没有运行下去的原因，是上面有节点未完成，还是流程确实存在问题，无法运行下去。<br>请教各位有没有更好的办法，或是成型的算法来解决这个问题。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/ipointer/aggbug/365394.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2006-04-03 11:02 <a href="http://www.cnblogs.com/ipointer/archive/2006/04/03/365394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我们也要毕业了</title><link>http://www.cnblogs.com/ipointer/archive/2006/01/05/311769.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Thu, 05 Jan 2006 10:22:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2006/01/05/311769.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/311769.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2006/01/05/311769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/311769.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/311769.html</trackback:ping><description><![CDATA[<DIV>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">昨晚，</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">k</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">一本叫&#8220;理工大风流史&#8221;的校园小说到两点，终于</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">k</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">完。</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">我不是一个矫情的人，但不由要写下下面一段矫情的文字。</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">小说前面都是风平浪静，如同所有校园小说一样，笑料</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">+</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">爱情</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">+</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">暴力</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">+</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">边缘性描写，怀疑现在的大学校园怎么都在走&#8220;蛊惑仔&#8221;的路线。</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">但最后毕业告别和无言的结局，还是在我心里搅和一下。&#8220;窗外，一张破旧的床单上几个大字，一起走过，在夏雨里浸开了墨迹&#8221;、&#8220;临行，为了逃避送站的痛苦，趁兄弟们熟睡时就悄悄地走了，只在美女墙画上留下，保重，和歪歪扭扭的签名&#8221;，联想到的就是网上颇为流行的毕业图组，此时，另一更强烈的念头滑过，&#8220;我们也要毕业了&#8221;，顿时酸楚。</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">黑暗中，胡乱的从桌上抓起</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">zippo</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">，让醇香的烟气走过喉咙，填补此刻的苍白。寂静的夜里，谁会在意一个大男孩的心声。</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">思绪不由飘到了千里之外的丁香校园，那里恐怕已是白雪皑皑了，而哥们们已是散落在天涯，我的大学生活好像也是刚刚开场就荒诞的谢幕了。可爱的超超估计还在为考研忙得焦头烂额；婆婆妈妈的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">ken</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">还能在珠海沐浴和煦的海风；油光满面的睿睿在伟大首都孕育做官的美梦；老鼠估计还在骗人的中兴软件煎熬度日；红过脖子的</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">DKF</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">，差不多能满足当上他外国新娘的愿望；当然不能忘怀的还有那份已经飘散的爱情。</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><FONT size=3><SPAN style="FONT-FAMILY: 宋体">小说自然是高于生活，我们的大学生活也可以拿出来试比高。我们的寝室翻不出</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">c cup</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">和</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">taotao</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">，却也有成堆的臭袜子和肥硕的小强；我们没有方桌上成宿的扑克麻将，却也有水房洗衣机上熬夜赶程序，贩卖机里驮来夜宵，兄弟们共饮；我们没有草丛树林的风流韵事，却也有</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">99</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">多青涩的玫瑰；我们没有打架斗殴，却也有众志成城拿下篮球赛；我们没有网吧里数以月计的传奇奇迹，却也有</SPAN><SPAN lang=EN-US><FONT face="Times New Roman">KTV</FONT></SPAN><SPAN style="FONT-FAMILY: 宋体">里的烂醉如泥&#8230;&#8230;</SPAN><SPAN lang=EN-US></SPAN></FONT></P>
<P style="TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体"><FONT size=3>回首过去，我们一起走过，我小心翼翼的将记忆收起；而面对未来，没有了朝夕相处的兄弟，该往哪里去，我无言以对。</FONT></SPAN></P></DIV><img src ="http://www.cnblogs.com/ipointer/aggbug/311769.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2006-01-05 18:22 <a href="http://www.cnblogs.com/ipointer/archive/2006/01/05/311769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>逻辑设计的例子</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/29/307405.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Thu, 29 Dec 2005 06:24:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/29/307405.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/307405.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/29/307405.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/307405.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/307405.html</trackback:ping><description><![CDATA[&nbsp; 
<P class=MsoBodyText2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">开发团队使用前期的使用场景定义对象和之间的关系、行为和属性（</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">attribute</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">）。团队要做以下的任务：</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<OL style="MARGIN-TOP: 0cm" type=1>
<LI class=MsoNormal style="COLOR: blue; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">定义场景中的用户、业务逻辑和数据对象。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></LI></OL>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<OL style="MARGIN-TOP: 0cm" type=1 start=2>
<LI class=MsoNormal style="COLOR: blue; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">定义对象的行为。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></LI></OL>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<OL style="MARGIN-TOP: 0cm" type=1 start=3>
<LI class=MsoNormal style="COLOR: blue; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">定义对象的属性（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">attribute</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">）或属性。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></LI></OL>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<OL style="MARGIN-TOP: 0cm" type=1 start=4>
<LI class=MsoNormal style="COLOR: blue; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">定义对象之间的逻辑关系。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></LI></OL>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoHeading8><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">统一建模语言</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoBodyText2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">统一建模语言</SPAN><SPAN lang=EN-US>(UML) </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">是阐述解决方案如何工作的工具。在图形化描述解决方案方面，它对于更完全分析解决方案非常有用。使用</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">UML</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">是一种容易的方法来画出组件、交互、关系和更多其他信息。通常，</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">UML</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">被用来方便的分析逻辑设计。</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoHeading8><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">对象</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">当分析使用场景的时候，首要的任务就是确定其中的对象。一个对象通常是出现在场景中的一个业务实体或过程。例如，在下面的一段话中，粗体字就是对象</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">:<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 36pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">用户</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(User)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">选择一个<B style="mso-bidi-font-weight: normal">目录</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(Catalog)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">来浏览。<B style="mso-bidi-font-weight: normal">分类</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"> (Categories)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">和<B style="mso-bidi-font-weight: normal">产品</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"> (Products)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">被展现在已选的根<B style="mso-bidi-font-weight: normal">目录</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(Catalog)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">中。<B style="mso-bidi-font-weight: normal">用户</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(User)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">之后选择一个<B style="mso-bidi-font-weight: normal">产品</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(Product)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">来查看它的细节或选择一个<B style="mso-bidi-font-weight: normal">分类</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(Categories)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">来查看其中的<B style="mso-bidi-font-weight: normal">产品</B></SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">(Product)</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">和子分类。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoBodyText2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">在这个场景中，下列对象被使用到：</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"> <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<UL style="MARGIN-TOP: 0cm" type=disc>
<LI class=MsoNormal style="COLOR: blue; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">User <o:p></o:p></SPAN>
<LI class=MsoNormal style="COLOR: blue; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Catalog <o:p></o:p></SPAN>
<LI class=MsoNormal style="COLOR: blue; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Categories <o:p></o:p></SPAN>
<LI class=MsoNormal style="COLOR: blue; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Product <o:p></o:p></SPAN>
<LI class=MsoNormal style="COLOR: blue; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt">Products <o:p></o:p></SPAN></LI></UL>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">下面的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">UML</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">图阐述了在本例中的对象。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;<IMG height=73 hspace=0 src="http://www.cnblogs.com/images/cnblogs_com/ipointer/object.JPG" width=400></o:p></SPAN></P>
<P class=fig><SPAN lang=EN-US><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">在这个场景中有五个基础的对象；然而，为了实现场景的功能还可能需要一些附属的的对象，即使他们没有被特别的列入这个基础对象列表。你可以在检查动作的时候定义这些附属的对象。你首先要定义出动作，才能发现并定义这些附属的对象。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><I style="mso-bidi-font-style: normal"><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></I></P>
<P class=MsoHeading8><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">行为</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">在定义完明显的对象集合之后，下一步的工作就是定义他们各自的行为，以方法和服务的方式表现。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">为了定义对象的行为，你必须首先估计场景中要做什么。例如，在下面的一段话中，动作备用粗体标识：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 36pt"><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">用户<B style="mso-bidi-font-weight: normal">选择</B>一个目录来浏览。分类和产品被<B style="mso-bidi-font-weight: normal">展现</B>在已选的根目录中。用户之后<B style="mso-bidi-font-weight: normal">选择</B>一个产品来<B style="mso-bidi-font-weight: normal">查看</B>它的细节或选择一个分类来<B style="mso-bidi-font-weight: normal">查看</B>其中的产品和子分类。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">发生的第一件事是用户选择了一个目录。下面的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">UML</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">图阐述了用户对象包含了一个选择目录的行为。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p><IMG height=88 hspace=0 src="http://www.cnblogs.com/images/cnblogs_com/ipointer/activity.JPG" width=100>&nbsp;</o:p></SPAN></P>
<P class=fig><I style="mso-bidi-font-style: normal"><SPAN lang=EN-US><o:p></o:p></SPAN></I></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">不能关联到明显对象的行为必须从场景中派生。如下面的情况，用户要选择一个目录，那么必须有一些机制使得一个目录可以从一个目录列表中被选中。你可以从逻辑上假定一个目录集合对象，他管理目录的集合。因此，你就可以在对象的列表中添加一个新的对象。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">在定义完目录集合对象之后，你可以添加属于这个对象的第一个方法</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt; mso-bidi-font-style: italic">Select Catalog</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"> </SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">之后，你需要继续估计场景中的每一句话，直到你定义出所的对象和相关的行为。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoHeading8><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">属性</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">定义完行为之后的下一步工作是定义对象的属性（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">attribute</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">，或称为</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">property</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">）。属性是解决方案需要跟踪的元素。它们是数据保存和持续化的位置。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoBodyText2><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">通过分析场景中的行为来定义属性（</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">attribute</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">），抽取出场景中需要跟踪或持续化的元素。例如，在前面一块中，场景指定用户需要查看产品。当产品被查看时，展现给用户的那些元素就是产品的属性（</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">attribute</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">）。例如，如果业务需要产品的描述和价格被展示给用户，这些元素就成为属性被添加到对象中去。</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">下面的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">UML</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">图中阐述了包含</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">Name</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">属性的</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">User</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">对象。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;<IMG height=100 hspace=0 src="http://www.cnblogs.com/images/cnblogs_com/ipointer/attribute.JPG" width=100></o:p></SPAN></P>
<P class=fig><I style="mso-bidi-font-style: normal"><SPAN lang=EN-US><o:p></o:p></SPAN></I></P>
<P class=MsoToc1><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoHeading8><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">关系</SPAN></P>
<P class=MsoNormal><B><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></B></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">在定义完对象、行为和属性（</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt">attribute</SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">）之后，下一步是定义关系。关系是对象间的逻辑关联。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial">为了定义关系，需要分析对象间是如何交互的。例如，目录集合对象跟目录对象有一个关系，因为目录集合对象管理目录对象。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 12.0pt"><o:p>&nbsp;</o:p></SPAN></P><SPAN style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-bidi-language: AR-SA">另一个关系的类型是继承，处理一个对象定义另一个对象的特定情况。例如，解决方案中设计要卖出食物和书，但设计者向在逻辑上区分两者，结果是定义出一中关系书和食物对象都是产品类型的一类。它们都继承自产品对象。</SPAN> <img src ="http://www.cnblogs.com/ipointer/aggbug/307405.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2005-12-29 14:24 <a href="http://www.cnblogs.com/ipointer/archive/2005/12/29/307405.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>entlib2.0研究（五）--缓存组件的设计</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/13/296289.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Tue, 13 Dec 2005 07:08:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/13/296289.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/296289.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/13/296289.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/296289.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/296289.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; 3缓存组件的设计缓存组件被设计实现下面的目标：l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 提供一定的APIsl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是开发者在不了解内部工作原理的情况下，使用组件。l&nbsp;&nbsp;&nbsp;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.cnblogs.com/ipointer/archive/2005/12/13/296289.html'>阅读全文</a><img src ="http://www.cnblogs.com/ipointer/aggbug/296289.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2005-12-13 15:08 <a href="http://www.cnblogs.com/ipointer/archive/2005/12/13/296289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>entlib2.0的研究（四）--使用缓存组件开发应用程序</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/12/295458.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Mon, 12 Dec 2005 03:54:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/12/295458.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/295458.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/12/295458.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/295458.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/295458.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; 2使用缓存组件进行开发首先，解释如何配置，添加到你的解决方案中去，选择后端的存储器。接着，显示如何在特定场景中使用缓存组件。2.1添加配置信息&nbsp;注意: 这个版本的配制工具还没有发布，所以要改变配置，只能编辑XML文件，参考QuickStart和单元测试的配置文件。&nbsp;2.2添加程序代码完成由以下的几个步骤：...&nbsp;&nbsp;<a href='http://www.cnblogs.com/ipointer/archive/2005/12/12/295458.html'>阅读全文</a><img src ="http://www.cnblogs.com/ipointer/aggbug/295458.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2005-12-12 11:54 <a href="http://www.cnblogs.com/ipointer/archive/2005/12/12/295458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>国际化组件的设计</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/09/293874.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Fri, 09 Dec 2005 07:52:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/09/293874.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/293874.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/09/293874.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/293874.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/293874.html</trackback:ping><description><![CDATA[&nbsp; 
<H3><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore">1.1.1<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-fareast-language: ZH-CN">国际化组件</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></H3>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<TABLE style="MARGIN-LEFT: 5.25pt; WIDTH: 450pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellSpacing=0 cellPadding=0 width=600 border=0>
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<TD style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BACKGROUND: #00ccff; PADDING-BOTTOM: 0cm; WIDTH: 283pt; PADDING-TOP: 0cm" vAlign=top width=377>
<P class=MsoBodyText><SPAN class=BodyTextBold><SPAN lang=EN-US style="mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN">Author<o:p></o:p></SPAN></SPAN></P></TD>
<TD style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BACKGROUND: #00ccff; PADDING-BOTTOM: 0cm; WIDTH: 167pt; PADDING-TOP: 0cm" vAlign=top width=223>
<P class=MsoBodyText><SPAN class=BodyTextBold><SPAN lang=EN-US style="mso-bidi-font-family: 'Times New Roman'">Contact<o:p></o:p></SPAN></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<TD style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 283pt; PADDING-TOP: 0cm" vAlign=top width=377>
<P class=MsoBodyText><SPAN lang=FR style="mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN; mso-ansi-language: FR">Jin-Chen Zhu,LangChao</SPAN><SPAN lang=FR style="mso-ansi-language: FR"><o:p></o:p></SPAN></P></TD>
<TD style="PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; WIDTH: 167pt; PADDING-TOP: 0cm" vAlign=top width=223>
<P class=MsoBodyText><SPAN lang=EN-GB style="mso-fareast-language: ZH-CN; mso-ansi-language: EN-GB">zhujch@langchao.com</SPAN><SPAN lang=EN-GB style="mso-ansi-language: EN-GB"><o:p></o:p></SPAN></P></TD></TR></TBODY></TABLE>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<H4><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore">1.1.1.1<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">Goal<o:p></o:p></SPAN></H4>
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-fareast-language: ZH-CN">国际化组件可以将非特定语言的字符串转化成特定语言的字符串，还可以通过反射的方式将某一界面上控件的文字换成特定语言的文字。</SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<H4><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore">1.1.1.2<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">Context<o:p></o:p></SPAN></H4>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><o:p></o:p></SPAN></P>
<H4><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore"><IMG height=357 hspace=0 src="http://www.cnblogs.com/images/cnblogs_com/ipointer/global1.JPG" width=505><BR>1.1.1.3<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">Behavior View<o:p></o:p></SPAN></H4>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<H4><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore">1.1.1.4<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">Structure View<BR><IMG height=344 hspace=0 src="http://www.cnblogs.com/images/cnblogs_com/ipointer/global2.JPG" width=637><BR><o:p></o:p></SPAN></H4>
<P class=MsoNormal style="MARGIN-LEFT: 0cm; TEXT-INDENT: -54pt; mso-char-indent-count: -5.4; mso-para-margin-left: -5.4gd"><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 0cm; TEXT-INDENT: -36pt; mso-char-indent-count: -3.6; mso-para-margin-left: -3.6gd"><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 0cm; TEXT-INDENT: -36pt; mso-char-indent-count: -3.6; mso-para-margin-left: -3.6gd"><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 72pt; mso-char-indent-count: 7.2"><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p></o:p></SPAN></P>
<H4><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore"><IMG height=432 hspace=0 src="http://www.cnblogs.com/images/cnblogs_com/ipointer/global3.JPG" width=401><BR>1.1.1.5<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">Other Specification<o:p></o:p></SPAN></H4>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="mso-fareast-language: ZH-CN"><o:p>&nbsp;</o:p></SPAN></P>
<H4><SPAN lang=EN-US style="mso-bidi-font-family: Verdana; mso-fareast-font-family: Verdana; mso-fareast-language: ZH-CN"><SPAN style="mso-list: Ignore">1.1.1.6<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="mso-fareast-language: ZH-CN">Best Practice <o:p></o:p></SPAN></H4>
<P class=MsoNormal style="TEXT-INDENT: 54pt; mso-char-indent-count: 6.0; mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; COLOR: teal; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; mso-no-proof: yes">ResourceFactory</SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; mso-no-proof: yes"> fa = <SPAN style="COLOR: teal">ResourceFactory</SPAN>.GetInstance();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">GspRM</SPAN> resourceManager = <SPAN style="COLOR: blue">null</SPAN>;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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">if</SPAN> (comboBox1.Text == <SPAN style="COLOR: maroon">"</SPAN></SPAN><SPAN style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; COLOR: maroon; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; mso-no-proof: yes">中文<SPAN lang=EN-US>"</SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; mso-no-proof: yes">)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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>resourceManager = fa.GetRM(<SPAN style="COLOR: maroon">"formui"</SPAN>, <SPAN style="COLOR: maroon">"zh-cn"</SPAN>);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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: green">//resourceManager = fa.GetRM("aa","zh-cn");<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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: teal">FormLanguageSwitchSingleton</SPAN> change = <SPAN style="COLOR: teal">FormLanguageSwitchSingleton</SPAN>.Instance;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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>change.ChangeLanguage(<SPAN style="COLOR: blue">this</SPAN>, <SPAN style="COLOR: blue">new</SPAN> System.Globalization.<SPAN style="COLOR: teal">CultureInfo</SPAN>(<SPAN style="COLOR: maroon">"zh-chs"</SPAN>));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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">else<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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>resourceManager = fa.GetRM(<SPAN style="COLOR: maroon">"formui"</SPAN>, <SPAN style="COLOR: maroon">"en-us"</SPAN>);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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: teal">FormLanguageSwitchSingleton</SPAN> change = <SPAN style="COLOR: teal">FormLanguageSwitchSingleton</SPAN>.Instance;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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>change.ChangeLanguage(<SPAN style="COLOR: blue">this</SPAN>, <SPAN style="COLOR: blue">new</SPAN> System.Globalization.<SPAN style="COLOR: teal">CultureInfo</SPAN>(<SPAN style="COLOR: maroon">"en-us"</SPAN>));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: none; mso-layout-grid-align: none"><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; 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><SPAN lang=EN-US style="FONT-SIZE: 9pt; BACKGROUND: #d9d9d9; FONT-FAMILY: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">MessageBox</SPAN>.Show(resourceManager.GetLocalizeToken(<SPAN style="COLOR: maroon">"result"</SPAN>, <SPAN style="COLOR: maroon">"jane"</SPAN>));</SPAN><SPAN lang=EN-US style="BACKGROUND: #d9d9d9; mso-fareast-language: ZH-CN; mso-shading: white; mso-pattern: gray-15 auto"><o:p></o:p></SPAN></P><img src ="http://www.cnblogs.com/ipointer/aggbug/293874.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2005-12-09 15:52 <a href="http://www.cnblogs.com/ipointer/archive/2005/12/09/293874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>entlib2.0研究（三）缓存组件的介绍</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/09/293839.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Fri, 09 Dec 2005 07:34:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/09/293839.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/293839.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/09/293839.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/293839.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/293839.html</trackback:ping><description><![CDATA[&nbsp; 
<P class=MsoNormal><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">缓存组件</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US>1</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">介绍</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">缓存组件可以使开发者将本地的缓存机制加到应用程序中。它支持内存中缓存和可选的后端的存储（数据库方式和隔离存储方式）。缓存组件提供</SPAN><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">retrieve, add, and remove cached data</SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">等功能。过期和自我清除策略也是给组件的一部分。<SPAN lang=EN-US><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">缓存可以克服一些风险：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo1; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">性能。采用一种更为密切的方式，为数据的消费者存储相关的数据；以避免重复性的数据创建、处理和传输。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo1; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">可度量性。在缓存中存储信息可以节省资源，并随着应用程序的需求量增加，而增加可度量性<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l3 level1 lfo1; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">可用性。使用缓存，您的应用能够在网络的的延时、<SPAN lang=EN-US>WEB</SPAN>服务和硬件的问题中减小损失。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">常用场景<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">缓存组件适用于一下情况：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">你必须重复的访问静态的或是很少变动的数据<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">数据访问在创建、访问和传输上花费很大<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo2; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">即使数据源是不可用的，数据也必须是可用的<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt">你可以在下面的应用程序类型中使用缓存组件：<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Windows Forms <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Console application <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Windows service <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">COM+ server <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 42pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo3; tab-stops: list 42.0pt" align=left><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ASP.NET Web application or Web service if you need features not included in the ASP.NET cache<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">你必须为每一个应用程序块部署一个缓存组件。每一个应用程序块可以由一个或多个缓存，可以有或没有后端存储。不支持，也不应该支持多个由多个</SPAN><SPAN lang=EN-US>Cache manager</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共享存储或分区</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">缓存组件在性能和线程、异常安全方面作了优化。你可以扩展你自己的过期策略和后端存储。</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">缓存组件的特性</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用配制工具配制</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">你可以配制持久存储位置，使用隔离存储器或数据访问组件，他们的状态与内存中的缓存保持同步。</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt; TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">你可以扩展你自己的过期策略和后端存储。</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">确保线程安全。</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统依赖</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Microsoft.Practices.EnterpriseLibrary.Common.dll</SPAN></B></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B><SPAN lang=EN-US style="FONT-SIZE: 8.5pt; COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Microsoft.Practices.ObjectBuilder.dl</SPAN></B></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l4 level1 lfo4; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-bidi-font-weight: bold">数据访问组件</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">推荐的修改配置的方式是使用配制管理工具。</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US>1.1</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">场景和目标</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></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">选择和配置缓存存储器</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">加一项到缓存中，设置它的过期数据</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">移出一项</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">取出一项</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l5 level1 lfo5; tab-stops: list 42.0pt"><SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">刷新缓存</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">决定何时使用缓存组件</SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l2 level1 lfo6; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">需要在不同的应用中有一致的缓存形式。例如，开发者可以写出相似的代码来实现缓存。在所有环境中的相同配置项。</SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l2 level1 lfo6; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">当需要可配的持久的后端存储。创建附加的后端存储，使用配置项来添加到缓存组件中。在持久化到后端存储前，用对称加密算法进行加密。</SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l2 level1 lfo6; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">不改变代码的情况下，改变缓存配置项。</SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -21pt; mso-list: l2 level1 lfo6; tab-stops: list 42.0pt"><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Wingdings"><SPAN style="mso-list: Ignore">l<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">需要下面的过期策略：绝对时间、变化的时间、扩展时间格式、文件依赖或永不过期。</SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">安全性</SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt; mso-char-indent-count: 2.0"><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt; mso-bidi-font-size: 10.5pt">虽然你可以对后端的数据进行加密，但日志组件不提供对内存中的数据加密。所以如果安全性会威胁到你的程序，请不要将账户和密码等敏感信息放到缓存中。</SPAN><SPAN lang=EN-US style="mso-bidi-font-size: 10.5pt"><o:p>&nbsp;</o:p></SPAN></P><img src ="http://www.cnblogs.com/ipointer/aggbug/293839.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2005-12-09 15:34 <a href="http://www.cnblogs.com/ipointer/archive/2005/12/09/293839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Enterprise Library2.0研究（二）日志组件的开发说明</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/06/291825.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Tue, 06 Dec 2005 07:35:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/06/291825.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/291825.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/06/291825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/291825.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/291825.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; 2使用日志组件进行开发2.1添加配置信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 待添加&nbsp;2.2增加准备的工作&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先，是使用日志组件的准备。（1）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加对Microsoft...&nbsp;&nbsp;<a href='http://www.cnblogs.com/ipointer/archive/2005/12/06/291825.html'>阅读全文</a><img src ="http://www.cnblogs.com/ipointer/aggbug/291825.html?type=1" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://ipointer.cnblogs.com/" target="_blank">栖息的熊</a> 2005-12-06 15:35 <a href="http://www.cnblogs.com/ipointer/archive/2005/12/06/291825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Enterprise Library2.0研究（一）日志组件的使用场景</title><link>http://www.cnblogs.com/ipointer/archive/2005/12/05/291116.html</link><dc:creator>栖息的熊</dc:creator><author>栖息的熊</author><pubDate>Mon, 05 Dec 2005 09:56:00 GMT</pubDate><guid>http://www.cnblogs.com/ipointer/archive/2005/12/05/291116.html</guid><wfw:comment>http://www.cnblogs.com/ipointer/comments/291116.html</wfw:comment><comments>http://www.cnblogs.com/ipointer/archive/2005/12/05/291116.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/ipointer/comments/commentRss/291116.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ipointer/services/trackbacks/291116.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'"><FONT face="Times New Roman">Enterprise Library2.0刚刚发布了December 2005的release，多了configuration的工具，真是及时，就不用自己做了。被安排看日志这一块，就开始翻译官方的doc，贴出来大家看看。翻得比较粗糙，大家包涵。<BR><BR><BR>1</FONT>日志组件的介绍</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>sinks:</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">An e-mail message <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">A database <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">A message queue <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">A text file <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">A WMI event<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">The event log<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 2.25pt 24pt; TEXT-INDENT: -6pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-list: l0 level1 lfo2; tab-stops: list 30.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Symbol; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-font-kerning: 0pt"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">客户自定义的<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-BOTTOM: 2.25pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-BOTTOM: 2.25pt; TEXT-INDENT: 18pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN style="COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">日志组件提供了日志信息终端的一致界面。程序代码不用指定信息的目的地。配置设定决定是否写日志和日志写到何处。这意味着程序员不用修改改变程序就可以修改日志记录的行为。<SPAN lang=EN-US><o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-BOTTOM: 2.25pt; TEXT-INDENT: 17.95pt; TEXT-ALIGN: left; mso-pagination: wi