<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_学习园地</title><subtitle type="text">以迂为直，以患为利</subtitle><id>http://feed.cnblogs.com/blog/u/9266/rss</id><updated>2012-01-30T00:54:33Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/9266/rss"/><entry><id>http://www.cnblogs.com/neozhu/archive/2012/01/30/2331566.html</id><title type="text">SQL 2008 r2 安装提示 visual studio 2008 版本错误解决方法</title><summary type="text">HKLM\SOFTWARE\Wow6432Node\Microsoft\DevDiv\VS\Servicing\9.0\IDE\1033In that key I noticed the suspicious values:&amp;quot;SP&amp;quot;=dword:00000000 &amp;quot;SPIndex&amp;quot;=dword:00000000 &amp;quot;SPName&amp;quot;=&amp;quot;RTM&amp;quot; Without quitting the SQL server installer validaton screen, I changed these values to wh</summary><published>2012-01-30T00:55:00Z</published><updated>2012-01-30T00:55:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2012/01/30/2331566.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2012/01/30/2331566.html"/><content type="html">&lt;div&gt;&lt;pre style="color: #333333; font-size: 13px; line-height: 18px; background-color: #ffffff; "&gt;HKLM\SOFTWARE\Wow6432Node\Microsoft\DevDiv\VS\Servicing\9.0\IDE\1033&lt;/pre&gt;&lt;p style="color: #333333; font-family: Georgia; font-size: 13px; line-height: 18px; background-color: #ffffff; "&gt;In that key I noticed the suspicious values:&lt;/p&gt;&lt;pre style="color: #333333; font-size: 13px; line-height: 18px; background-color: #ffffff; "&gt;"SP"=dword:00000000 "SPIndex"=dword:00000000 "SPName"="RTM" &lt;/pre&gt;&lt;p style="color: #333333; font-family: Georgia; font-size: 13px; line-height: 18px; background-color: #ffffff; "&gt;Without quitting the SQL server installer validaton screen, I changed these values to what you see below, crossed my fingers and rerun the installer validation,&amp;nbsp;&lt;strong&gt;which passed!&lt;/strong&gt;&lt;/p&gt;&lt;pre style="color: #333333; font-size: 13px; line-height: 18px; background-color: #ffffff; "&gt;"SP"=dword:00000001 "SPIndex"=dword:00000001 "SPName"="SP1"&lt;/pre&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2331566.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2012/01/30/2331566.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/12/21/2295982.html</id><title type="text">BizTalk开发小技巧-分拆和组装消息实例</title><summary type="text">BizTalk开发小技巧-分拆和组装消息实例 场景 对方发出的报文（XML）文件带一个消息头（MessageHeader）对于业务本身只需要消息体的内容（&amp;lt;BodyConent&amp;gt;节点下的内容）。 发给对方的报文同样需要加这个消息头，业务消息放在消息体（&amp;lt;BodyConent&amp;gt;）里面） 下面通过简单Schema定义和Mapping实现对XML消息的分拆和组装。不需要额外开发自定义管道组件或代码。 分拆消息 1定义带消息头的Schema，也可以称是一个Envelope Schema，注意BodyConent下面需要加一个Any Element节点用于表示封装的消息体内容。 </summary><published>2011-12-21T08:13:00Z</published><updated>2011-12-21T08:13:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/12/21/2295982.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/12/21/2295982.html"/><content type="html">&lt;p style="text-align: justify"&gt;&lt;p&gt;&lt;strong&gt;BizTalk开发小技巧-分拆和组装消息实例 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: justify"&gt;&lt;p&gt;&lt;strong&gt;场景 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;对方发出的报文（XML）文件带一个消息头（MessageHeader）对于业务本身只需要消息体的内容（&amp;lt;BodyConent&amp;gt;节点下的内容）。 &lt;/p&gt;&#xD;
&lt;p&gt;发给对方的报文同样需要加这个消息头，业务消息放在消息体（&amp;lt;BodyConent&amp;gt;）里面） &lt;/p&gt;&#xD;
&lt;p&gt;下面通过简单Schema定义和Mapping实现对XML消息的分拆和组装。不需要额外开发自定义管道组件或代码。 &lt;/p&gt;&#xD;
&lt;p style="text-align: justify"&gt;&lt;p&gt;&lt;strong&gt;分拆消息 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1定义带消息头的Schema，也可以称是一个Envelope Schema，注意BodyConent下面需要加一个Any Element节点用于表示封装的消息体内容。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112211612466984.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;2设置Schema的Envlope 属性为true。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112211612489101.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;3设置Body XPath属性，拆分获取消息体的节点 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/20111221161248563.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;4定义一个业务报文，BodyConent下内容的Schema &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112211612481119.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;4设定完这些就可以实现报文的分拆了，配置接收，发送端口就不在这里写了。 &lt;/p&gt;&#xD;
&lt;p&gt;输入的实例报文如下 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112211612491709.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;输出的将2个BodyMsg的报文。 &lt;/p&gt;&#xD;
&lt;p style="text-align: justify"&gt;&lt;p&gt;&lt;strong&gt;封装消息 &lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里就是将输入BodyMsg报文输出时加上报文头。 &lt;/p&gt;&#xD;
&lt;p&gt;这样的封装消息在BizTalk并没有现成的配置可以实现，一般的解决方案是通过自定义管道组件来实现或在流程里面通过代码写消息赋值表达式来实现。 &lt;/p&gt;&#xD;
&lt;p&gt;下面我要演示的是通过自定义MAP实现，不用写代码。 &lt;/p&gt;&#xD;
&lt;p&gt;1新建map，比如还需要将业务报文的这段map到消息头的某个字段上。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112211612493693.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;2通过编辑XSL mapping脚本文件，这里的XSL语法就不再这里说明了。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/20111221161249138.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;xsl:copy-of &lt;/p&gt;&#xD;
&lt;p&gt;Used to copy a result-tree fragment or node-set into the result tree. This performs a "deep copy," meaning that all descendants of the current node are copied to the result tree. &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3配置接收发送端口，在接收端口上选择这个部署上去的MAP1 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112211612494839.png" /&gt; &lt;/p&gt;&#xD;
&lt;p&gt;4输入一个BodyMsg报文 输出的就是这个Header报文，这里并不能将多个BodyMsg报文组合到一个Header报文中 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;当你对XML，XPath，XSL越是深入了解越会发现BizTalk真的越发强大，而且开发越是简单高效。 &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;希望对BizTalk开发人员有所帮助。 &lt;/p&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2295982.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/12/21/2295982.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/12/09/2281658.html</id><title type="text">make Entity Framework revert empty strings to null!</title><summary type="text">publicoverrideintSaveChanges(SaveOptionsoptions){foreach(EntityObjectentityinthis.ObjectStateManager.GetObjectStateEntries(EntityState.Added|EntityState.Modified).Select(entry=&amp;gt;entry.Entity)){//if(entity==null||entityisUser)continue;stringstr=typeof(string).Name;varprops=entity.GetType().GetPrope</summary><published>2011-12-09T02:43:00Z</published><updated>2011-12-09T02:43:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/12/09/2281658.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/12/09/2281658.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&lt;div&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&amp;nbsp;SaveChanges(SaveOptions&amp;nbsp;options)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&amp;nbsp;(EntityObject&amp;nbsp;entity&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.ObjectStateManager.GetObjectStateEntries(EntityState.Added&amp;nbsp;|&amp;nbsp;EntityState.Modified).Select(entry&amp;nbsp;=&amp;gt;&amp;nbsp;entry.Entity))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;if&amp;nbsp;(entity&amp;nbsp;==&amp;nbsp;null&amp;nbsp;||&amp;nbsp;entity&amp;nbsp;is&amp;nbsp;User)&amp;nbsp;continue;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;str&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;).Name;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;props&amp;nbsp;=&amp;nbsp;entity.GetType().GetProperties();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;properties&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;p&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;entity.GetType().GetProperties()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.PropertyType.Name&amp;nbsp;==&amp;nbsp;str&amp;nbsp;&amp;amp;&amp;amp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.IsDefined(&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;(EdmScalarPropertyAttribute),&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;)&amp;nbsp;&amp;amp;&amp;amp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;p.IsDefined(&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;(DataMemberAttribute),&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;select&lt;/span&gt;&amp;nbsp;p;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;properties)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;value&amp;nbsp;=&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;)item.GetValue(entity,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(value&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;value.Trim().Length&amp;nbsp;==&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.GetType().GetField(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;_&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;+&amp;nbsp;item.Name,&amp;nbsp;System.Reflection.BindingFlags.NonPublic&amp;nbsp;|&amp;nbsp;System.Reflection.BindingFlags.Instance).SetValue(entity,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;base&lt;/span&gt;.SaveChanges(options);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2281658.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/12/09/2281658.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/12/05/2276634.html</id><title type="text">BizTalk 开发小技巧-Custom XSLT复杂mapping的简单实现</title><summary type="text">BizTalk最强大的就是消息的订阅/发布和消息转换（transform-mapping），与不同的业务系统做对接势必会用到mapping这个强大的工具。BizTalk提供了非常丰富的mapping函数（Functoids），满足你对业务的不同需要，实在不行可以用万能的Scripting这个工具。但是处理XML消息的真正胸器是XPath和XSLT如果你精通这2种语言那么对于开发XML将事半功倍，当然也是必须要掌握的。下面用2个小例子说明一下如何在BizTalk mapping过程中使用自定义的XSLT脚本实现复杂mapping。其实通过BizTalk Mapper编辑器拉线的mapping本质</summary><published>2011-12-05T04:16:00Z</published><updated>2011-12-05T04:16:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/12/05/2276634.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/12/05/2276634.html"/><content type="html">&lt;p&gt;BizTalk最强大的就是消息的订阅/发布和消息转换（&lt;a href="app:ds:transform" target=""&gt;&lt;span style="font-size:10pt"&gt;transform&lt;/span&gt;&lt;/a&gt;-mapping），与不同的业务系统做对接势必会用到mapping这个强大的工具。BizTalk提供了非常丰富的mapping函数（Functoids），满足你对业务的不同需要，实在不行可以用万能的Scripting这个工具。&#xD;
&lt;/p&gt;&lt;p&gt;但是处理XML消息的真正胸器是XPath和XSLT如果你精通这2种语言那么对于开发XML将事半功倍，当然也是必须要掌握的。&#xD;
&lt;/p&gt;&lt;p&gt;下面用2个小例子说明一下如何在BizTalk mapping过程中使用自定义的XSLT脚本实现复杂mapping。其实通过BizTalk Mapper编辑器拉线的mapping本质也是生产一个XSLT脚本。&#xD;
&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;第一个例子比较常见&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;多行记录mapping成一行多列，需要使用2个函数，一个是Equal，一个是Value Mapping,具体功能就不说了&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112051215377308.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;源记录&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;lt;&lt;span style="color:maroon"&gt;ns0:ComplexSource&lt;span style="color:red"&gt; xmlns:ns0&lt;span style="color:blue"&gt;="&lt;span style="color:black"&gt;http://XSLT_Mapping.ComplexSource&lt;span style="color:blue"&gt;"&amp;gt;&lt;span style="color:black"&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;FistName&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Steve&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;LastName&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Jobs&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Email&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Steve@Apple.com&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Phone&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Code&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;1396008000&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Value&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  &lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Item&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black"&gt;&lt;span style="font-family:宋体; font-size:10pt; background-color:white"&gt;&#xD;
				&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;ns0:ComplexSource&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&#xD;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Mapping后结果&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;lt;&lt;span style="color:maroon"&gt;ns0:SimpleTarget&lt;span style="color:red"&gt; xmlns:ns0&lt;span style="color:blue"&gt;="&lt;span style="color:black"&gt;http://XSLT_Mapping.SimpleTarget&lt;span style="color:blue"&gt;"&amp;gt;&lt;span style="color:black"&gt;&#xD;
								&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Contact&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;FistName&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Steve&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;FistName&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;LastName&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Jobs&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;LastName&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue"&gt;&amp;lt;&lt;span style="color:maroon"&gt;Email&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;Steve@Apple.com&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Email&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
										&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;Contact&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
						&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:宋体; font-size:10pt; background-color:white"&gt;&amp;lt;/&lt;span style="color:maroon"&gt;ns0:SimpleTarget&lt;span style="color:blue"&gt;&amp;gt;&lt;span style="color:black"&gt;&#xD;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;当你单击Map Validate，会生产一个XSLT脚本&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112051215372815.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;自定义XSLT脚本文件&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;新建一个map，生产一个简单XSLT脚本模板&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112051215378114.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;打开XSLTMapping.xsl，加载到项目下&#xD;
&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;?&lt;span style="color:#a31515"&gt;xml&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;version&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
							&lt;span style="color:red"&gt;encoding&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;UTF-16&lt;/span&gt;"&lt;span style="color:blue"&gt;?&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;&lt;span style="color:#2b91af"&gt;xsl:stylesheet&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;xmlns:xsl&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://www.w3.org/1999/XSL/Transform&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
							&lt;span style="color:red"&gt;xmlns:msxsl&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;urn:schemas-microsoft-com:xslt&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
									&lt;span style="color:red"&gt;xmlns:var&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://schemas.microsoft.com/BizTalk/2003/var&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
											&lt;span style="color:red"&gt;exclude-result-prefixes&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;msxsl var s0&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
													&lt;span style="color:red"&gt;version&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
															&lt;span style="color:red"&gt;xmlns:s0&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://XSLT_Mapping.ComplexSource&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
																	&lt;span style="color:red"&gt;xmlns:ns0&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;http://XSLT_Mapping.SimpleTarget&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:output&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;omit-xml-declaration&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;yes&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
							&lt;span style="color:red"&gt;method&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;xml&lt;/span&gt;"&lt;span style="color:blue"&gt;&#xD;
									&lt;span style="color:red"&gt;version&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;1.0&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;match&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;/&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;    &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:apply-templates&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;/s0:ComplexSource&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;match&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;/s0:ComplexSource&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;    &amp;lt;&lt;span style="color:#a31515"&gt;ns0:SimpleTarget&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;      &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:for-each&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;Item&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;        &amp;lt;&lt;span style="color:#a31515"&gt;Contact&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;          &amp;lt;&lt;span style="color:#a31515"&gt;FistName&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;            &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:value-of&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;Code/text()&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;          &amp;lt;/&lt;span style="color:#a31515"&gt;FistName&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;        &amp;lt;/&lt;span style="color:#a31515"&gt;Contact&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;      &amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:for-each&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;    &amp;lt;/&lt;span style="color:#a31515"&gt;ns0:SimpleTarget&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue"&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:stylesheet&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&#xD;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;在map文件中添加XSLT脚本文件路径&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112051215372782.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;有了模板接下来就直接修改脚本即可&#xD;
&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;lt;&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;match&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;/&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;    &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:apply-templates&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;/s0:ComplexSource&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;match&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;/s0:ComplexSource&lt;/span&gt;"&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;    &amp;lt;&lt;span style="color:#a31515"&gt;ns0:SimpleTarget&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;      &amp;lt;!--&lt;span style="color:green"&gt;xsl:for-each select="Item"&lt;span style="color:blue"&gt;--&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;        &amp;lt;&lt;span style="color:#a31515"&gt;Contact&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;          &amp;lt;&lt;span style="color:#a31515"&gt;FistName&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color:#2b91af"&gt;xsl:value-of&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;Item[Code='FirstName']/Value/text()&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;          &amp;lt;/&lt;span style="color:#a31515"&gt;FistName&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color:#a31515"&gt;LastName&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color:#2b91af"&gt;xsl:value-of&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;Item[Code='LastName']/Value/text()&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;span style="color:#a31515"&gt;LastName&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color:#a31515"&gt;Email&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style="color:#2b91af"&gt;xsl:value-of&lt;span style="color:blue"&gt;&#xD;
					&lt;span style="color:red"&gt;select&lt;span style="color:blue"&gt;=&lt;/span&gt;"&lt;span style="color:blue"&gt;Item[Code='Email']/Value/text()&lt;/span&gt;"&lt;span style="color:blue"&gt; /&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;span style="color:#a31515"&gt;Email&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;        &amp;lt;/&lt;span style="color:#a31515"&gt;Contact&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;!--&lt;span style="color:green"&gt;/xsl:for-each&lt;span style="color:blue"&gt;--&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;    &amp;lt;/&lt;span style="color:#a31515"&gt;ns0:SimpleTarget&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:新宋体; font-size:9pt"&gt;  &amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:template&lt;span style="color:blue"&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue"&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&amp;lt;/&lt;span style="color:#2b91af"&gt;xsl:stylesheet&lt;span style="color:blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&#xD;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;以上XPath表达式非常简单就不做说明了&#xD;
&lt;/p&gt;&lt;p&gt;Debug调试功能&#xD;
&lt;/p&gt;&lt;p&gt;这个功能非常强大可以单步调试&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/20111205121537589.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;调试执行情况&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112051215384701.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;对比使用biztalk mapper产生的XSLT和自定义XSLT脚本你会发现系统自动生成的脚本有非常多的冗余脚本，而直接利用XSLT编写的脚本非常简洁，自然执行效率会高出不少。&#xD;
&lt;/p&gt;&lt;p&gt;自定义XSLT脚本对于开发EDI数据对接是最有用的，也是最能体现效率的地方。如果你的项目中有用到EDI的数据交换那么不妨试一下通过自定义XSLT脚本来实现mapping。&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2276634.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/12/05/2276634.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/12/03/2274466.html</id><title type="text">BizTalk开发小技巧-.Net 调用BizTalk Business Rule Engine</title><summary type="text">BizTalk开发小技巧-.Net 调用BizTalk Business Rule EngineBizTalk Business Rule Engine：BizTalk业务规则引擎，它的主要功能和特点是在不改变流程,不重新部署工程的情况下,动态的配置策略信息,修改策略逻辑.达到动态的业务配置目的。类似WF的工作原理类似。这次就是讲在.net windows form的应用程序中调用BizTalk Business Rule Engine配置好业务规则。实验的场景： 模拟报销审批的简单示例，报销金额&amp;lt;多少，审批通过。	源代码private void button1_Click(object</summary><published>2011-12-03T01:51:00Z</published><updated>2011-12-03T01:51:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/12/03/2274466.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/12/03/2274466.html"/><content type="html">&lt;p style="text-align: justify"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;BizTalk开发小技巧-.Net 调用BizTalk Business Rule Engine&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;BizTalk Business Rule Engine：BizTalk业务规则引擎，它的主要功能和特点是在不改变流程,不重新部署工程的情况下,动态的配置策略信息,修改策略逻辑.达到动态的业务配置目的。类似WF的工作原理类似。&#xD;
&lt;/p&gt;&lt;p&gt;这次就是讲在.net windows form的应用程序中调用BizTalk Business Rule Engine配置好业务规则。&#xD;
&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;实验的场景：&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;模拟报销审批的简单示例，报销金额&amp;lt;多少，审批通过。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112030950562849.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;源代码&#xD;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&lt;span style="color:blue"&gt;private&lt;/span&gt;&#xD;
			&lt;span style="color:blue"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af"&gt;RoutedEventArgs&lt;/span&gt; e)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            BizTalkRules.Expenses.&lt;span style="color:#2b91af"&gt;ExpenseClaim&lt;/span&gt; claim = &lt;span style="color:blue"&gt;new&lt;/span&gt; BizTalkRules.Expenses.&lt;span style="color:#2b91af"&gt;ExpenseClaim&lt;/span&gt;()&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Amount = &lt;span style="color:#2b91af"&gt;Convert&lt;/span&gt;.ToInt32( &lt;span style="color:blue"&gt;this&lt;/span&gt;.textAmount.Text),&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Category = &lt;span style="color:blue"&gt;this&lt;/span&gt;.cobCategory.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Department = &lt;span style="color:blue"&gt;this&lt;/span&gt;.cboDepartment.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Description = &lt;span style="color:blue"&gt;this&lt;/span&gt;.textDescription.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Name = &lt;span style="color:blue"&gt;this&lt;/span&gt;.textName.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Project = &lt;span style="color:blue"&gt;this&lt;/span&gt;.textProject.Text&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            };&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:blue"&gt;if&lt;/span&gt; (claim.Category == &lt;span style="color:#a31515"&gt;"Software"&lt;/span&gt; &amp;amp;&amp;amp; claim.Amount &amp;lt;= 500)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                claim.Status = &lt;span style="color:#a31515"&gt;"Approved"&lt;/span&gt;;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:blue"&gt;else&lt;/span&gt;&#xD;
			&lt;span style="color:blue"&gt;if&lt;/span&gt; (claim.Category == &lt;span style="color:#a31515"&gt;"Book"&lt;/span&gt; &amp;amp;&amp;amp; claim.Amount &amp;lt;= 300)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                    claim.Status = &lt;span style="color:#a31515"&gt;"Approved"&lt;/span&gt;;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:blue"&gt;else&lt;/span&gt;&#xD;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                    claim.Status = &lt;span style="color:#a31515"&gt;"Require Approval"&lt;/span&gt;;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:green"&gt;//Microsoft.RuleEngine.Policy policy = new Microsoft.RuleEngine.Policy("ExpensesApproval");&lt;/span&gt;&#xD;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:green"&gt;//policy.Execute(claim);&lt;/span&gt;&#xD;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:blue"&gt;this&lt;/span&gt;.textStatus.Text = claim.Status;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;使用.net无非就是写几行IF Else IF Else 搞定的事情，但如果修改修改审批金额那就必须重新编译发布。&#xD;
&lt;/p&gt;&lt;p&gt;为了达到这个目的，简化代码，作为一个BizTalk开发人员。就想到了类似的简单判断可以通过BizTalk业务规则引擎来实现。&#xD;
&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;如何集成和调用BizTalk业务规则引擎&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;1新建一个业务实体对象&lt;span style="font-family:新宋体; font-size:9pt"&gt;BizTalkRules.Expenses.&lt;span style="color:#2b91af"&gt;ExpenseClaim&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt"&gt;在BizTalk业务规则引擎中称&lt;/span&gt;Facts（事实类型）判断的依据。因为这个Dll需要配置到GAC中才会被BizTalk 业务规则引擎获取因此需要签名&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112030950572227.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;2编译BizTalkRules.Expenses 将Dll部署到GAC中 运行 gacutil &amp;#8211;i BizTalkRules.Expenses.dll&#xD;
&lt;/p&gt;&lt;p&gt;3配置BizTalk Business Rule Engine 打开Business Rule Composer开始配置&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112030950596630.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;配置（Conditions）条件和(Actions)步骤&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112030951025843.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;span style="color:red"&gt;说明一下Priority这个属性如果这值越大就优先执行。&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;4.net中调用此规则。引用Microsoft.RuleEngine.dll,这个文件在C:\Program Files (x86)\Common Files\Microsoft BizTalk或C:\Program Files (x86)\Microsoft BizTalk Server 2010&#xD;
&lt;/p&gt;&lt;p&gt;代码如下&#xD;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&lt;span style="color:blue"&gt;private&lt;/span&gt;&#xD;
			&lt;span style="color:blue"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af"&gt;RoutedEventArgs&lt;/span&gt; e)&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            BizTalkRules.Expenses.&lt;span style="color:#2b91af"&gt;ExpenseClaim&lt;/span&gt; claim = &lt;span style="color:blue"&gt;new&lt;/span&gt; BizTalkRules.Expenses.&lt;span style="color:#2b91af"&gt;ExpenseClaim&lt;/span&gt;()&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            {&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Amount = &lt;span style="color:#2b91af"&gt;Convert&lt;/span&gt;.ToInt32( &lt;span style="color:blue"&gt;this&lt;/span&gt;.textAmount.Text),&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Category = &lt;span style="color:blue"&gt;this&lt;/span&gt;.cobCategory.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Department = &lt;span style="color:blue"&gt;this&lt;/span&gt;.cboDepartment.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Description = &lt;span style="color:blue"&gt;this&lt;/span&gt;.textDescription.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Name = &lt;span style="color:blue"&gt;this&lt;/span&gt;.textName.Text,&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;                Project = &lt;span style="color:blue"&gt;this&lt;/span&gt;.textProject.Text&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            };&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&lt;span style="color:blue"&gt;&#xD;
			&lt;/span&gt;Microsoft.RuleEngine.&lt;span style="color:#2b91af"&gt;Policy&lt;/span&gt; policy = &lt;span style="color:blue"&gt;new&lt;/span&gt; Microsoft.RuleEngine.&lt;span style="color:#2b91af"&gt;Policy&lt;/span&gt;(&lt;span style="color:#a31515"&gt;"ExpensesApproval"&lt;/span&gt;);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;            policy.Execute(claim);&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;&#xD;
			&lt;span style="color:blue"&gt;this&lt;/span&gt;.textStatus.Text = claim.Status;&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:新宋体; font-size:9pt"&gt;        }&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201112/201112030951032156.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;功能就是这样，如果需要修改规则直接发布和部署新的Policies和Rules,而前端应用程序不需要重新便宜&#xD;
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;扩展&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;可以对Microsoft.RuleEngine进行封装后发布webService或WCF这样就可以给更多的应用使用。&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2274466.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/12/03/2274466.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/10/19/2217221.html</id><title type="text">LightSwitch 2011 数据字段唯一性验证方案</title><summary type="text"/><published>2011-10-19T01:41:00Z</published><updated>2011-10-19T01:41:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/10/19/2217221.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/10/19/2217221.html"/><content type="html">&lt;p style="text-align: justify"&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;LightSwitch 2011 数据字段唯一性验证方案&#xD;
&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/lightswitch.png" width="910" height="258" alt="" /&gt;&lt;br /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="text-align: justify"&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;验证单表数据的某个字段不能输入重复值&#xD;
&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;设置实体字段唯一索引&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110190940582370.png" alt="" /&gt;&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;如果不写代码，那么验证只会在用户提交[保存]数据后，会提示错误，很明显这样的用户体验并不好，因此还需要做以下步骤&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;添加自定义验证&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110190941001455.png" alt="" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="font-family: 'Courier New'; font-size: 13px; line-height: 19px; background-color: #f5f5f5; "&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('6390e16e-e458-441f-bde6-eddd3972a07d')"&gt;&lt;span &gt;&amp;nbsp;&lt;br /&gt;&#xD;
&lt;/span&gt;&#xD;
&lt;div id="cnblogs_code_open_6390e16e-e458-441f-bde6-eddd3972a07d" &gt;&#xD;
&lt;div&gt;&lt;span style="color: #0000FF;"&gt;partial&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;UserName_Validate(EntityValidationResultsBuilder&amp;nbsp;results)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;nbsp;results.AddPropertyError("&amp;lt;错误消息&amp;gt;");&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&amp;nbsp;duplicateExists&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;switch&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.Details.EntityState)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;case&lt;/span&gt;&amp;nbsp;EntityState.Added:&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;基于页面未提交数据的验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duplicateExists&amp;nbsp;=&amp;nbsp;(from&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;DataWorkspace.ApplicationData.Details.GetChanges().AddedEntities.OfType&amp;lt;Employee&amp;gt;()&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;item.UserName&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;!&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;item).Count()&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;?&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;基于数据库的验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&#xD;
&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(!duplicateExists)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duplicateExists&amp;nbsp;=&amp;nbsp;(from&amp;nbsp;Employee&amp;nbsp;emp&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;DataWorkspace.ApplicationData.Employees.Cast&amp;lt;Employee&amp;gt;()&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;.Compare(emp.UserName,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName.Trim(),&amp;nbsp;StringComparison.InvariantCultureIgnoreCase)&amp;nbsp;==&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;emp).Any();&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;case&lt;/span&gt;&amp;nbsp;EntityState.Modified:&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duplicateExists&amp;nbsp;=&amp;nbsp;(from&amp;nbsp;item&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;DataWorkspace.ApplicationData.Details.GetChanges().ModifiedEntities.OfType&amp;lt;Employee&amp;gt;()&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;item.UserName&amp;nbsp;==&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;!&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;item).Count()&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;?&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(!duplicateExists)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duplicateExists&amp;nbsp;=&amp;nbsp;(from&amp;nbsp;Employee&amp;nbsp;emp&amp;nbsp;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&amp;nbsp;DataWorkspace.ApplicationData.Employees.Cast&amp;lt;Employee&amp;gt;()&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&amp;nbsp;&amp;amp;&amp;amp;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;.Compare(emp.UserName,&amp;nbsp;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.UserName.Trim(),&amp;nbsp;StringComparison.InvariantCultureIgnoreCase)&amp;nbsp;==&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;emp).Any();&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;break&lt;/span&gt;;&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;(duplicateExists)&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;results.AddPropertyError(&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;该用户[{0}]已经存在。&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;,&amp;nbsp;UserName));&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;运行结果如下&#xD;
&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110190941012983.png" alt="" /&gt;&#xD;
&lt;/p&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2217221.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/10/19/2217221.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/10/06/2199798.html</id><title type="text">LightSwitch Sliverlight应用系统开发入门</title><summary type="text">LightSwitch 开发入门什么是LightSwitch简单的说LightSwitch就是一个基于模板的自动化开发Silverlight应用程序的工具，不同于一般的基于数据字典，配置生成的应用程序的工具，因为LightSwtich提供的所有模板都是可以扩展的，自定义开发的，包括页面布局，数据源，使用的控件。非常方便植入.net的代码。LightSwitch是一个被裁剪后的VS产品，用来更容易地进行业务处理（Line of Business，LoB）应用程序的开发。有点类似Access。LightSwitch 提供最简单的方法创建面向云和桌面的商业应用程序。LightSwitch 提供了多种</summary><published>2011-10-06T02:43:00Z</published><updated>2011-10-06T02:43:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/10/06/2199798.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/10/06/2199798.html"/><content type="html">&lt;p&gt;&lt;span style="color:#17365d; font-size:26pt"&gt;LightSwitch 开发入门&#xD;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;什么是LightSwitch&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;简单的说LightSwitch就是一个基于模板的自动化开发Silverlight应用程序的工具，不同于一般的基于数据字典，配置生成的应用程序的工具，因为LightSwtich提供的所有模板都是可以扩展的，自定义开发的，包括页面布局，数据源，使用的控件。非常方便植入.net的代码。&#xD;
&lt;/p&gt;&lt;p&gt;LightSwitch是一个被裁剪后的VS产品，用来更容易地进行业务处理（Line of Business，LoB）应用程序的开发。有点类似Access。LightSwitch 提供最简单的方法创建面向云和桌面的商业应用程序。&#xD;
&lt;/p&gt;&lt;p&gt;LightSwitch 提供了多种预先创建的模板和工具来创建面向Windows客户端和Windows Azure的商业应用程序，并且使你所需要编写的代码尽可能的少。 随着LightSwitch的诞生， 我们现在终于有了一种工具能够更好的使业务领域专家轻松的创建具有专业质量级别的商业应用程序(LOB)，而不需要将很多精力放在代码编写上。这是非常关键的，因为这些商业应用程序，有些也许是为了短期需求而创建的，经常需要扩展和IT支持。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;LightSwitch的功能&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;LightSwitch生成的是Silverlight应用程序&#xD;
&lt;/li&gt;&lt;li&gt;它具有好几个内置的模板&#xD;
&lt;/li&gt;&lt;li&gt;编程语言支持C#和VB.NET&#xD;
&lt;/li&gt;&lt;li&gt;支持SQL Server、SQL Azure、SharePoint和Office&#xD;
&lt;/li&gt;&lt;li&gt;应用程序可以运行在浏览器中、脱离浏览器模式（OfB）下或云中&#xD;
&lt;/li&gt;&lt;li&gt;LightSwitch完成很多基础性的工作，包括了大量的拖拽特性，不过也允许开发人员在需要的时候访问.NET Framework&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;在实践中去体验这些功能&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;最近真好有个客户说需要给他做一个考勤管理的小工具。导入电子考勤机采集的打卡记录，打印出一张报表，显示哪些人考勤异常，迟到/早退/加班，未打卡记录，做一下简单的统计。&#xD;
&lt;/p&gt;&lt;p&gt;下面就开始LightSwitch开发。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;开发环境需求&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Visual Studio.net 2010 sp1&#xD;
&lt;/p&gt;&lt;p&gt;LightSwitch 2011&#xD;
&lt;/p&gt;&lt;p&gt;Silverlight 4 SDK（Silverlight 4 tools）&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;LightSwitch应用程序布局&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;下面是一个默认的LightSwitch应用程序的组界面，当然这个主界面也是可以自定义扩展的&#xD;
&lt;/p&gt;&lt;p&gt;以下是关于如何扩展的一些文章&#xD;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/28/Running-a-LightSwitch-Application-With-A-Blank-Shell.aspx"&gt;http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/28/Running-a-LightSwitch-Application-With-A-Blank-Shell.aspx&lt;/a&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043199693.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Visual studio.net 2010开发视图&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043196313.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;ApplicationData下面就是数据实体(Entity)，当然数据源可以是SQL数据库，也可以WebService/WCF/RIA，和Sharepoint 一个文档库或列表。&#xD;
&lt;/p&gt;&lt;p&gt;Screens 下面就是操作界面，默认提供5种操作界面（CRUD）&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043207708.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;实现CRUD功能&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;下面是维护假期的功能页面，&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;新建数据表实体&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;新建一个国家法定假日维护实体，ApplicationData，下AddTable。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043208788.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;Holiday日期，CalWeek是一个计算类型的字段，通过Holiday返回星期，IsWork是放假还是调休的。&#xD;
&lt;/p&gt;&lt;p&gt;将字段转换成可计算的&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043204644.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;选中 Is Computed , 单击Edit Method通过Code实现计算功能&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043204087.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;返回星期几的功能&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;新建一个编辑页面&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;单击Screens 新建一个操作界面 Add Screen，选择你要模板，这里我们需要一个CRUD维护，所以选择[Editable Grid Screen]。选择对应操作数据表（实体）&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043209071.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;新建后，Debug运行的界面&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043207642.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;新增一条记录，单击"+"号&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043206214.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;编辑&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043201197.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;新增，编辑，删除后需要点[保存]才能提交的数据&#xD;
&lt;/p&gt;&lt;p&gt;类似的简单的操作不需要写任何代码就可以完成。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;新建一个查询&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;查询界面如下，根据部门，员工性名，考勤日期，状态进行查询。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043214545.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;做这样一个查询同样不用写一行代码。&#xD;
&lt;/p&gt;&lt;p&gt;让我们回到设置界面&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043212036.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;设计你的查询条件&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043215068.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;在页面布局中把这些控件拖拽到页面上&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201110/201110061043216463.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;简单的演示就到这里。&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;后续课程&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;下面我将准备详细的说明如何完成一个具体业务应用系统。&#xD;
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;数据源相关的，如何连接现有的和创建新的数据库，WCF，RIA。&#xD;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;如何定义一个数据源。&#xD;
&lt;/li&gt;&lt;li&gt;数据格式化显示，验证。&#xD;
&lt;/li&gt;&lt;li&gt;数据源查询排序。&#xD;
&lt;/li&gt;&lt;li&gt;关系数据的定义，一对多，多对多。&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Screen相关，用户界面设计&#xD;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;如何创建一个查询，编辑，新增界面&#xD;
&lt;/li&gt;&lt;li&gt;如何创建一个一对多的操作界面&#xD;
&lt;/li&gt;&lt;li&gt;界面之际如何传递参数&#xD;
&lt;/li&gt;&lt;li&gt;修改导航菜单&#xD;
&lt;/li&gt;&lt;li&gt;新增CommandButton,自定义输入控件&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;代码相关，在Screen中加入代码实现逻辑&#xD;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;如何初始化输入的值，或计算子段值。&#xD;
&lt;/li&gt;&lt;li&gt;通过代码访问数据源，操作数据表。&#xD;
&lt;/li&gt;&lt;li&gt;通过代码处理对数据的事件操作比如Saved，Seleting，Click,Execute，CanDo&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;权限管理&#xD;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;如何设置认证方式，Form，windows，&#xD;
&lt;/li&gt;&lt;li&gt;新增用户，组，权限&#xD;
&lt;/li&gt;&lt;li&gt;如何授权，根据权限控制Screnn,button的执行&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Office的互操作&#xD;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Excel导入导出。&#xD;
&lt;/li&gt;&lt;li&gt;Word导入导出。&#xD;
&lt;/li&gt;&lt;li&gt;outlook整合&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;部署操作&#xD;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;web部署&#xD;
&lt;/li&gt;&lt;li&gt;桌面部署&#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;自定义控件开发&#xD;
&lt;/div&gt;&lt;p style="margin-left: 21pt"&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2199798.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/10/06/2199798.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/10/04/2199041.html</id><title type="text">lightswitch conditional formatting change color</title><summary type="text">BTW, the best way to do a conditional color setting in LS beta 2 is to use the new SetBinding method.For example: Me.FindControl(&amp;quot;MyControl&amp;quot;).SetBinding(TextBox.BackgroundProperty, &amp;quot;Value&amp;quot;, New ColorConverter(), BindingMode.OneWay) Public Class ColorConverter Implements IValueCon</summary><published>2011-10-04T10:41:00Z</published><updated>2011-10-04T10:41:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/10/04/2199041.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/10/04/2199041.html"/><content type="html">&lt;span  style="color: #333333; font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; background-color: #ffffff; "&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt;BTW, the best way to do a conditional color setting in LS beta 2 is to use the new SetBinding method.&amp;nbsp;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt;For example:&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt;&lt;/p&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: black; background-color: white; "&gt;&lt;pre style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; word-wrap: break-word; text-align: left; "&gt;&lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Me&lt;/span&gt;.FindControl(&lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #a31515; "&gt;"MyControl"&lt;/span&gt;).SetBinding(TextBox.BackgroundProperty, &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #a31515; "&gt;"Value"&lt;/span&gt;, &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;New&lt;/span&gt; ColorConverter(), BindingMode.OneWay)&#xD;
&#xD;
  &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Public&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Class&lt;/span&gt; ColorConverter&#xD;
    &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Implements&lt;/span&gt; IValueConverter&#xD;
&#xD;
    &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Public&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Function&lt;/span&gt; Convert(value &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Object&lt;/span&gt;, targetType &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; System.Type, parameter &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Object&lt;/span&gt;, culture &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; System.Globalization.CultureInfo) &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Object&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Implements&lt;/span&gt; System.Windows.Data.IValueConverter.Convert&#xD;
      &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;If&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;CType&lt;/span&gt;(value, &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Integer&lt;/span&gt;) &amp;gt; 20 &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Then&lt;/span&gt;&#xD;
        &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Return&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;New&lt;/span&gt; SolidColorBrush(Colors.Orange)&#xD;
      &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;End&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;If&lt;/span&gt;&#xD;
      &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Return&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;New&lt;/span&gt; SolidColorBrush(Colors.Yellow)&#xD;
    &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;End&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Function&lt;/span&gt;&#xD;
&#xD;
    &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Public&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Function&lt;/span&gt; ConvertBack(value &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Object&lt;/span&gt;, targetType &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; System.Type, parameter &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Object&lt;/span&gt;, culture &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; System.Globalization.CultureInfo) &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;As&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Object&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Implements&lt;/span&gt; System.Windows.Data.IValueConverter.ConvertBack&#xD;
&#xD;
      &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Throw&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;New&lt;/span&gt; NotImplementedException()&#xD;
    &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;End&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Function&lt;/span&gt;&#xD;
  &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;End&lt;/span&gt; &lt;span style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: blue; "&gt;Class&lt;/span&gt;&#xD;
&#xD;
&lt;/pre&gt;&lt;/div&gt;&amp;nbsp;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt;&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt;This will assign the background color to Orange when the value is great than 20.&amp;nbsp; With this code, we don't have to write extra code to monitor when the value is changed, and change the color again.&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2199041.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/10/04/2199041.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/09/09/2172057.html</id><title type="text">如果乔布斯生在中国会怎样？想想都觉得可怕</title><summary type="text">如果乔布斯生在中国会怎样？想想都觉得可怕北京时间8月25日，苹果CEO乔布斯辞职COO库克接任，乔布斯时代结束，库克将带领苹果开启后乔布斯时代。我在想如果乔布斯出生在中国会怎么样？史蒂夫&amp;#183;乔布斯(SteveJobs)生于1955年，一个私生子，到现在为止都不知道他们父母是who!他像一个被上帝抛弃的婴儿，这也许注定他一生的不平凡，收养他的乔布斯夫妇是一对普通的蓝领夫妇。如果乔布斯出生在中国，因为他是私生子，所以他特别的自卑，同学们经常嘲笑他，小乔布斯特别的要强。几乎每天都和同学打架。老师对他是头痛不已，隔三差五的让他带家长，但这并没有改善情况。最后实在是没办法，乔布斯夫妇只能给他转学</summary><published>2011-09-09T00:42:00Z</published><updated>2011-09-09T00:42:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/09/09/2172057.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/09/09/2172057.html"/><content type="html">&lt;span  style="font-family: Simsun; font-size: 12px; line-height: normal; background-color: #ffffff; "&gt;&lt;div id="topic_title"  style="word-wrap: break-word; margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; zoom: 1; font-size: 1.5em; line-height: 30px; width: 880px; "&gt;&lt;h1 style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; float: left; "&gt;如果乔布斯生在中国会怎样？想想都觉得可怕&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 35px; height: 35px; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #e1e2e6; width: 1030px; "&gt;&lt;font  color="#777777"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/div&gt;&lt;div  style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div  style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div  style="word-wrap: break-word; margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #999999; "&gt;&lt;/div&gt;&lt;div  style="word-wrap: break-word; margin-top: 15px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: auto !important; min-height: 335px; color: black; font-size: 1.16em; "&gt;&lt;table cellspacing="0" cellpadding="0" style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; empty-cells: show; width: 1046px; "&gt;&lt;tbody style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;tr style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;td  style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.92em; "&gt;&lt;div  style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 985px; overflow-x: hidden; overflow-y: hidden; "&gt;北京时间8月25日，苹果CEO乔布斯辞职&amp;nbsp;COO库克接任，乔布斯时代结束，库克将带领苹果开启后乔布斯时代。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;我在想如果乔布斯出生在中国会怎么样？&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;史蒂夫&amp;#183;乔布斯(Steve&amp;nbsp;Jobs)生于1955年，一个私生子，到现在为止都不知道他们父母是who!他像一个被上帝抛弃的婴儿，这也许注定他一生的不平凡，收养他的乔布斯夫妇是一对普通的蓝领夫妇。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;如果乔布斯出生在中国，因为他是私生子，所以他特别的自卑，同学们经常嘲笑他，小乔布斯特别的要强。几乎每天都和同学打架。老师对他是头痛不已，隔三差五的让他带家长，但这并没有改善情况。最后实在是没办法，乔布斯夫妇只能给他转学。转学的后乔布斯变得沉默寡言，不和同学交流，每天独来独往。但他天资聪明，所以成绩一直都不错，考上一所不错的中学。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;中学的乔布斯对课本上那些死记硬背的东西不感兴趣，而且他也不喜欢他所读的中学。他告诉他的养父母，他决定不再上学，老乔布斯对儿子的决定非常生气，在谈了两次未果后，狠狠的把他揍了一顿。为此乔布斯离家出走好长一段时间，乔布斯夫妇怕儿子出事，历经千辛万苦好不容易才把他们的儿子找回来，也不敢再打他，请他的老师，朋友轮流找他谈心，乔布斯最后实在没办法就只好继续上学，因为对学习不感兴趣，乔布斯的成绩从此一落千丈，中考考的不好，只进了一所三流高中。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;在这里面乔布斯认识了他的合作伙伴斯蒂夫&amp;#183;沃兹尼亚克，两个人都对电子产品非常感兴趣，在全国的发明大赛上，他们产品，获得全国电子产品竞赛的一等奖，但因为英语，语文，化学成绩都不好，乔布斯和沃兹尼亚克两个人都只考了一所电子系的大专。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;大学里面乔布斯和沃兹尼亚克如鱼得水，每天几乎都呆在实验室里面捣鼓他们的产品，但他们实验的次数太过频繁再加上学校买的都是三流的产品，经常把学校的设备搞坏，所以学校决定不再让他们两个人继续在实验室搞研究。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;两个人的刻苦专研，也捣鼓出一些产品，其中的一项发明被一家公司看上，他们的老师把他们两人的发明偷偷的拿去卖给公司，赚了一大笔钱。乔布斯二人不福，找老师评理，一直告到学校，结果学校站在老师这一边，乔布斯愤然退学。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;退学后的乔布斯到一家电子厂上班，因性格孤傲和不懂拍马屁，经常被领导故意找茬，乔布斯在公司呆了一段时间以后觉得再这样带下去，没有前途，所以就选择了自己创业。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;乔布斯对电脑特别痴迷，所以他选择北漂到北京的中关村，开了一家电脑组装公司。他特别注重客户体验，所以他组装的电脑非常好卖，但其他的店很快就复制了他的产品，而且价格更低，他的生意捉襟见肘。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;产品被别人山寨，他的生意一落千丈，昂贵的房租费使乔布斯机会难以经营下去。在一次城管收保护费，乔布斯因为没交，结果发生了冲突，乔布斯店面被砸，人被打住进医院。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;北京高额的医疗费用让乔布斯无力承担，医保又不能异地报销，他只能回老家看病。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;病好以后乔布斯到一家电子厂上班，每天在流水线上工作超过12个小时，每天累得回来以后倒头就睡。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;通过别人的介绍他认识了一位外地的姑娘，很快他们陷入了热恋，然后就同居了，不久姑娘就怀孕了，乔布斯觉得房价太高，他又不想贷款买房，就让女孩把孩子打掉，但女孩坚持把孩子生下来。最后没办法只能和女孩结婚。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;他们买了一套房子，房价太高他们只能分期付款，从此以后乔布斯每天过上班族的生活。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;突然有一天乔布斯觉得自己身体不舒服，去医院检查，结果发现是胰腺癌晚期，家人拿出所有的积蓄，辗转在北京，上海各大医院治疗，但因发现的太晚，已经回天乏力，在发现癌症6个月之后，乔布斯离开了人世。&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;56岁的乔布斯走完了他平凡的一生。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2172057.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/09/09/2172057.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/neozhu/archive/2011/08/22/2149370.html</id><title type="text">BizTalk高可用配置方法（故障转移集群+负载均衡）</title><summary type="text">非常感谢[chnking]写的两篇Biztalk 2009在Windows 2008 R2环境中的High Availability(Cluster群集)部署 的文章，写的非常详细，只要按照步骤一步一做一般不会有会问题。最近我也根据[chnking]的文章自己做了一下也成了我的环境是主机CPUI5-2300RAM 8GHD500G主板Asus H67P系统Windows 7 professional 64bit虚拟机VMware Station 7.1.4虚拟机环境4台Windows server 2003 R2（sp2）SQL 2005 Enterprise Edition（sp2）Bi..</summary><published>2011-08-22T06:29:00Z</published><updated>2011-08-22T06:29:00Z</updated><author><name>阿新</name><uri>http://www.cnblogs.com/neozhu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/neozhu/archive/2011/08/22/2149370.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/neozhu/archive/2011/08/22/2149370.html"/><content type="html">&lt;p&gt;非常感谢[chnking]写的两篇&lt;a href="http://www.cnblogs.com/chnking/archive/2010/07/17/1779813.html"&gt;&lt;span style="color:navy; font-size:10pt"&gt;&lt;strong&gt;&lt;span style="font-family:Verdana; background-color:whitesmoke"&gt;Biztalk 2009&lt;/span&gt;&lt;span style="font-family:宋体; background-color:whitesmoke"&gt;在&lt;/span&gt;&lt;span style="font-family:Verdana; background-color:whitesmoke"&gt;Windows 2008 R2&lt;/span&gt;&lt;span style="font-family:宋体; background-color:whitesmoke"&gt;环境中的&lt;/span&gt;&lt;span style="font-family:Verdana; background-color:whitesmoke"&gt;High Availability(Cluster&lt;/span&gt;&lt;span style="font-family:宋体; background-color:whitesmoke"&gt;群集&lt;/span&gt;&lt;span style="font-family:Verdana; background-color:whitesmoke"&gt;)&lt;/span&gt;&lt;span style="font-family:宋体; background-color:whitesmoke"&gt;部署&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black; font-family:Verdana; font-size:10pt; background-color:whitesmoke"&gt;&lt;strong&gt;&#xD;
			&lt;/strong&gt;&lt;/span&gt;的文章，写的非常详细，只要按照步骤一步一做一般不会有会问题。&#xD;
&lt;/p&gt;&lt;p&gt;最近我也根据[chnking]的文章自己做了一下也成了&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;我的环境是主机&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:112px"&gt;&lt;col style="width:336px"&gt;&lt;col style="width:142px"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;CPU&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;I5-2300&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid 0.5pt; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;RAM &lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;8G&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;HD&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;500G&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;主板&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;Asus H67P&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;系统&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;Windows 7 professional 64bit&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid 0.5pt; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;虚拟机&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&lt;p&gt;VMware Station 7.1.4&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid 0.5pt; border-right:  solid 0.5pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;虚拟机环境4台&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Windows server 2003 R2（sp2）&#xD;
&lt;/p&gt;&lt;p&gt;SQL 2005 Enterprise Edition（sp2）&#xD;
&lt;/p&gt;&lt;p&gt;BizTalk 2006 R2&#xD;
&lt;/p&gt;&lt;p&gt;一台域控，两台虚拟SQL+BizTalk集群，单独一台安装BizTalk，扩展加入到BizTalk Group中&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;配置集群IP&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:45px"&gt;&lt;col style="width:113px"&gt;&lt;col style="width:198px"&gt;&lt;col style="width:113px"&gt;&lt;col style="width:120px"&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 2.25pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;NO&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  none; border-bottom:  solid #4f81bd 2.25pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;主机&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  none; border-bottom:  solid #4f81bd 2.25pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;IP&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  none; border-bottom:  solid #4f81bd 2.25pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  none; border-bottom:  solid #4f81bd 2.25pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;说明&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background: #d3dfee"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;1&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;adser&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.254&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;域控&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan="2" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;Svr1&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.2.100&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;心跳&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background: #d3dfee"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;3&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.100&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;主机节点IP&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;4&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td rowspan="2" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;Svr2&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.2.101&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;心跳&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background: #d3dfee"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;5&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.101&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;主机节点IP&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;6&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;BizCluster&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.99&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;BizTalk集群IP&lt;/p&gt;&lt;/td&gt;&lt;td rowspan="4" style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;windows集群里可以使用同一个IP&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background: #d3dfee"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;7&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;DTCCluster&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.99&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;DTC集群IP&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;8&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;MSMQCluter&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.99&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;MSMQ集群IP&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background: #d3dfee"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;9&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;SQLCluster&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;192.168.1.99&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;SQL集群IP&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;SSOCluster&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;a name="OLE_LINK3"&gt;BizTalk集群共用&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background: #d3dfee"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;11&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;BizTalk Host&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;BizTalk集群共用&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;BizTalk故障转移集群&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;根据[chnking]提供的方法很容易就把BizTalk集群配置成功，如图&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429242738.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429254243.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;这个就是BizTalk AP模式当一个节点出现问题时系统自动转移至另一个节点&#xD;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;BizTalk负载均衡模式&#xD;
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;BizTalk负载均衡模式有2种，&#xD;
&lt;/p&gt;&lt;p&gt;一种是完全系统自动实现也就是AA模式，一个BizTalk Host对应多个主机实例同时运行，负载会自动评分到每个物理主机上 。&#xD;
&lt;/p&gt;&lt;p&gt;还有一种是对处理进行分工，一台主机负责接收，一台负责发送，一台负责流程处理；当然所谓的一台也可以多台&#xD;
&lt;/p&gt;&lt;p&gt;从上面2台做了故障转移集群的BizTalk Group加入第三台服务器（节点），自然也可以加N 台。&#xD;
&lt;/p&gt;&lt;p&gt;安装一台新的虚拟机，安装好BizTalk，加入到域，配置BizTalk和集群中的第二台一样。配置成功后（需要把原来2台BizTalk从集群中退出），&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429284817.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;新建一个主机发送和接收主机&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429289801.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429284784.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429285308.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;有了主机你在创建发送端口和接收端口时就可以选将负载转移到选定的服务上处理&#xD;
&lt;/p&gt;&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/neozhu/201108/201108221429295831.png" alt="" /&gt;&#xD;
	&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/neozhu/aggbug/2149370.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/neozhu/archive/2011/08/22/2149370.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
