﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-coollzh</title><link>http://www.cnblogs.com/coollzh/</link><description>.NET Oriented</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 02:49:47 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 02:49:47 GMT</pubDate><ttl>60</ttl><item><title>关于.NET VS JavaEE平台争论的沉思录</title><link>http://www.cnblogs.com/coollzh/archive/2009/09/06/1561124.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Sat, 05 Sep 2009 16:19:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2009/09/06/1561124.html</guid><description><![CDATA[<p>阅读: 4601 评论: 79 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2009-09-06 00:19 <a href="http://www.cnblogs.com/coollzh/archive/2009/09/06/1561124.html" target="_blank">原文链接</a></p><div align="left">最近关于.NET和java平台之间的争论似乎又热起来了，就我关注的两个社区，先是老赵的《<a title="事理越辩越明，那么就来详细说说为啥老赵不喜欢Java-语言-" href="http://www.cnblogs.com/JeffreyZhao/archive/2009/04/19/why-i-do-not-like-java.html"><font color="#3d81ee">为啥老赵不喜欢Java*语言*</font></a>》。引发了博客园的大讨论，最近csdn又有人发博<a title=".Net与J2EE的快餐型比较" href="http://blog.csdn.net/gongfs/archive/2009/08/26/4487278.aspx" target="_blank">.Net与J2EE的快餐型比较</a>,引发了空前的大讨论。从论调来说感觉对java不利。虽然csdn得那个篇博文深度不够，但确实引发了大量了讨论，虽然很多人都说，这个话题没啥好讨论的，既然引发了大讨论，自认有其内在原因在驱动，所谓空穴来风。。。。<br />&nbsp; 关于两个平台的优劣已经讨论的够多了，我在这里就不多说了，我在这里提个现实的问题供大家思考：<br /><br />&nbsp;国内外用.NET做的大型系统确实java的要比.NET的要多，这是客观的事实，我们研究.NET的专家们有没有反思过，为什么？<br />我大致总结了几点<span style="color: red">或许可能</span>的原因，请.NET的同仁评判(.NET比java好的地方就不多说了：）<br /><br /><strong>1）是因为linux unix系列的操作系统更加稳定安全？通常java的程序都是部署在unix家族的服务器上</strong><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unix系列的服务器（大，中，小型机）发展这么多年，确实口碑很多好，有sun,ibm,hp等大公司全力推动，甚至垄断。基于unix的HPC服务器也是很多年前就有了，而微软的HPC也就这两年的事，还没有怎么有大型的应用，据说有些HPC已经部署在华尔街的投行了，亚洲最快的服务器&#8220;魔方&#8221;也是用的微软的HPC。希望微软的HPC一路走好。<br />&nbsp; 但unix是需要大把银子的，动辄几百上千万的，不过，能用的起的机构也不在乎这点钱。。。。<br />&nbsp; 至于说linux，稳定性&nbsp; 安全性比最新版的Windows server高，我认为未必，关键看用的人的水平。。。。<br /><br /><strong>2）java跨平台？ <br /></strong>&nbsp;&nbsp; 我个人认为这个理由在大多数公司都是不成立的，一个系统一但选定了一个平台，再换平台的可能性微乎其微<br /><br /><strong>3）linux操作系统免费？</strong><br />&nbsp;&nbsp; 这个在某些情况下确实，但Windows server却也不贵，只有在很大规模部署的时候，liunx才能显示出成本优势来<br /><br /><strong>4) java的开源项目多？ SSH,Jboss,Seam,tomcat,OpenJMS, ActiveMQ,HDIV,......</strong><br />&nbsp;&nbsp; 这个,做.NET的同仁不得不承认，但现在.NET上没有一个被广泛使用的开源MVC框架，虽然我觉得WebForm也不错，但是看了ROR,Grails这些框架后，还是觉得ASP.NET还有很多东西需要完善，需要追赶。祝愿ASP.NET MVC2.0可以全面赶超......<br />&nbsp; 消息系统，.NET似乎只有MSMQ一个，据说ActiveMQ也出.NET版了，但谁在用呢？<br />&nbsp; 至于ORM，.NET确实也有NH,iBatis.NET等产品，但最新的版本总是java得优先出来，.NET的版本都是感觉是没妈的孩子，话又说回来，真正把HN，iBatis.NET的用的好的有多少呢？但是Linq to Sql出来的时候大家那个热情啊，微软出品，一定要好好研究，要不然就落伍了，兄弟们，睁开眼吧，我们要向java学习，要自己创造，不要什么都等微软做好了，才去研究。.NET圈内好像有个不成文的约定，所有的技术或组件，优先使用微软提供的，微软只要有，那就是最好的，就一定要用。我个人觉得这不利于.NET平台的大发展。。。<br /><br /><strong>5）java起步早，有些系统已经用java在做了，同时精通java的人才多？</strong><br />&nbsp;&nbsp;&nbsp; 这是我个人的感觉，算是一个因素，从我招人的经历来看，java的高级人才确实比.NET好招，难道国内.NET的高级人才这么抢手。。。。，或许吧，恭喜大家了。<br />&nbsp;&nbsp;&nbsp; 希望做.NET的哥们，都尽快成长起来，成为一方高手！！<br /><br /><strong>6) java的商业化工作做得好？</strong><br />&nbsp;&nbsp; 个人感觉，SUM,IBM,ORACLE。。。等公司借助其平台产品和品牌的优势，在一些mission critical的系统上投入了很大的公关力度，如电信，银行，金融，能源等。<br />&nbsp;&nbsp; 微软在这么方面起步比较晚，产品线还在OA，Exchange上，他的HPC，SQL Server,包括分布式组件WCF,WF等企业产品线需要大力提高。我不是说.NET不能用在Mission Critical的系统上，而是目前采用.NET的公司相对较少，需要有个发展的过程。<br />&nbsp;<br />以上是我个人的观点，这里主要想总结一下java比.NET的可能优势，或者说.NET那些地方还需要追赶，有些东西的发展不是我们能左右的，但希望我们能认清形势，尽量弥补，也许不久的将来，事情已经不是今天这个样子了。<br /><br /><br /></div><img src="http://www.cnblogs.com/coollzh/aggbug/1561124.html?type=1" width="1" height="1" alt=""/><p>评论: 79　<a href="http://www.cnblogs.com/coollzh/archive/2009/09/06/1561124.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2009/09/06/1561124.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>不要使用Microsoft Project的理由</title><link>http://www.cnblogs.com/coollzh/archive/2006/01/03/310106.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Tue, 03 Jan 2006 02:32:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2006/01/03/310106.html</guid><description><![CDATA[<p>阅读: 2202 评论: 4 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2006-01-03 10:32 <a href="http://www.cnblogs.com/coollzh/archive/2006/01/03/310106.html" target="_blank">原文链接</a></p><DIV><BR>Microsoft Project是为了建造办公大楼设计的，而不是为了开发软件而设计的。 <BR>
<DIV>&nbsp;</DIV>
<DIV>Microsoft Project 的毛病在于，它认定你想花费大量的时间去关注依赖性，以至于完全不值得而正式个总他们而做出努力。</DIV>
<DIV>&nbsp;</DIV>
<DIV>Microsoft Project的另一个问题是，他认定你以后会希望能够通过按一个小按钮来&#8220;重新调整&#8221;进度表。这意味着他要重新安排任务并定重新交给不同的人去完成。对于软件而言，这没什么意义。程序员是不可互换的，如果试图让UI程序员去解决类似Winsock的问题，他会在原地踏步并浪费一周时间才能达到Winsock程序设计的速度。</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --- 摘自《Joel on Software》 <BR><BR>--- <SPAN style="COLOR: #0000ff"><font color=blue>本文不能完全代表本人观点，但是从敏捷开发的角度来说，用Microsoft Excel的效率和方便性胜过Project</font></SPAN></DIV></DIV><img src="http://www.cnblogs.com/coollzh/aggbug/310106.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/coollzh/archive/2006/01/03/310106.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2006/01/03/310106.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Using distributed transactions in .Net 1.x without deriving from ServicedComponent </title><link>http://www.cnblogs.com/coollzh/archive/2005/03/09/115813.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Wed, 09 Mar 2005 15:43:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2005/03/09/115813.html</guid><description><![CDATA[<p>阅读: 1343 评论: 0 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2005-03-09 23:43 <a href="http://www.cnblogs.com/coollzh/archive/2005/03/09/115813.html" target="_blank">原文链接</a></p><h2><a id="viewpost.ascx_TitleUrl" href="http://blogs.msdn.com/florinlazar/archive/2004/07/24/194199.aspx">Using distributed transactions in .Net 1.x without deriving from ServicedComponent</a> </h2>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><font size="2">The most used feature of System.EnterpriseServices or COM+ is the distributed transaction support. And the automatic transaction programming model in ES using attributes ([Transaction] and [AutoComplete]) is great and nice but (it is always a but!)... you need to inherit from ServicedComponent and the Transaction attribute is only available at class level, and you need to register your component in the COM+ repository and the list can continue.<o:p></o:p></font>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><o:p><font size="2">&#160;</font></o:p>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><font size="2">If doing this seems overkill to you, because all you need is a distributed transaction to protect your code/actions and you don&#39;t care of any of the others ES features (which are great ones nevertheless) then there is a solution for you: System.EnterpriseServices.ServiceDomain. Here is some sample code:<o:p></o:p></font>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><span style="COLOR: black; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p><font size="2">&#160;</font></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;">using</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> System;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;">using</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> System<span style="COLOR: aqua">.</span>EnterpriseServices;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;">namespace</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> SDSample<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;">{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: blue">class</span> Class1<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>[MTAThread]<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> <st1:place w:st="on">Main</st1:place>(<span style="COLOR: blue">string</span>[] args)<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>ServiceConfig config = <span style="COLOR: blue">new</span> ServiceConfig(); <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;</span><span style="mso-spacerun: yes">&#160; </span>config.Transaction = TransactionOption<span style="COLOR: aqua">.</span>Required; <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>ServiceDomain<span style="COLOR: aqua">.</span>Enter(config);<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: blue">try<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>MyTxCode(); <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: blue">catch</span>(Exception e)<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: green">// we got an exception<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>Console.WriteLine(e<span style="COLOR: aqua">.</span>Message);<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: green">// so, we should abort the transaction<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>ContextUtil.SetAbort();<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: blue">finally<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>ServiceDomain.Leave(); <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: green">// The code that I want to be transactional<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> MyTxCode() <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>{ <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>Console.WriteLine(ContextUtil.TransactionId);<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: green">// Open connection to database 1<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: green">// Execute update in database 1<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: green">// Open connection to database 2<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: green">// Execute update in database 2<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>} <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><span style="FONT-FAMILY: &#39;Lucida Console&#39;"><font size="2">}<o:p></o:p></font></span>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><span style="FONT-FAMILY: &#39;Lucida Console&#39;"><o:p><font size="2">&#160;</font></o:p></span>
</p><font size="2">
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt">Of course, you can go further and create a helper class, let&#8217;s call it ESTransactionScope (similar to <a href="http://blogs.msdn.com/florinlazar/archive/2004/07/23/192239.aspx">System.Transactions.TransactionScope</a> that will arrive in Whidbey) that will be very easy to use:<o:p></o:p>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><o:p>&#160;</o:p>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;">using</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> System;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;">using</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> System<span style="COLOR: green">.</span>EnterpriseServices;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;">namespace</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> SDSample2<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;">{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: blue">class</span> Class1<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>[MTAThread]<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>static</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> <span style="COLOR: blue">void</span> <st1:place w:st="on">Main</st1:place>(<span style="COLOR: blue">string</span>[] args)<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>using</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;">( ESTransactionScope ts <span style="COLOR: green">=</span> <span style="COLOR: blue">new</span> ESTransactionScope())<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>MyTxCode();<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span><span style="COLOR: green">// Everything went well, no exception thrown<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// so let&#8217;s vote for Commit<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>ts.Complete();<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>static</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> <span style="COLOR: blue">void</span> MyTxCode() <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>{ <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>Console.WriteLine(ContextUtil<span style="COLOR: aqua">.</span>TransactionId);<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>// Open connection to database 1<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>// Execute update in database 1<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>// Open connection to database 2<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>// Execute update in database 2</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160;&#160;</span>} <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>// Used to create transactional code blocks</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>class</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"> ESTransactionScope : IDisposable<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>// Dispose must be called to exit the transactional block</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">public</span> <span style="COLOR: blue">void</span> Dispose()<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>{<span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span><span style="COLOR: blue">if</span>(!<span style="COLOR: blue">this</span>.Consistent)<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;</span><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ContextUtil.SetAbort();<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>ServiceDomain.Leave();<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>}</span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"></span>&#160;
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;">&#160;&#160;&#160;&#160;&#160;&#160;<font color="#008000">// by calling this method, you mark the scope as being consistent</font></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><font color="#008000">&#160;&#160;&#160;&#160;&#160;&#160;// and ready to for commit</font></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><font color="#008000">&#160;&#160;&#160;&#160;&#160;&#160;// if the method is never called, upon dispose, the scope will abort the transaction</font>&#160;</span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;&#160;&#160;&#160;&#160;&#160;<span style="COLOR: blue">public</span> <span style="COLOR: blue">void</span> Complete()</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;&#160;&#160;&#160;&#160;&#160;{</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;this.Consistent = <font color="#0000ff">true</font>;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;&#160;&#160;&#160;&#160;&#160;}&#160;&#160;&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">public</span> ESTransactionScope()<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>{<span style="mso-tab-count: 3">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>EnterTxContext(TransactionOption<span style="COLOR: aqua">.</span>Required);<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">public</span> ESTransactionScope(TransactionOption txOption)<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>EnterTxContext(txOption);<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">private</span> <span style="COLOR: blue">void</span> EnterTxContext(TransactionOption txOption)<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>{<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>ServiceConfig config = <span style="COLOR: blue">new</span> ServiceConfig(); <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>config<span style="COLOR: aqua">.</span>Transaction = txOption; <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes">&#160;&#160; </span>ServiceDomain.Enter(config);<span style="mso-tab-count: 2">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><o:p>&#160;</o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: green">// By default, the scope is inconsistent;<o:p></o:p></span></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span>// To Commit the transaction on exit, the Consistent flag <o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;</span><span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>// must be set to true before Dispose is called<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-tab-count: 1">&#160;&#160;&#160;&#160;&#160; </span><span style="COLOR: blue">private </span><span style="COLOR: blue">bool</span> Consistent = <span style="COLOR: blue">false</span>;<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;"><span style="mso-spacerun: yes">&#160;&#160; </span>}<o:p></o:p></span>
</p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &#39;Lucida Console&#39;">}<o:p></o:p></span>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><o:p>&#160;</o:p>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><font size="2">System.EnterpriseServices.ServiceDomain is available only on XP SP2 (or higher) and Windows Server 2003 and only in .Net 1.1.<o:p></o:p></font>
</p></font>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><font size="2"><span style="mso-spacerun: yes">&#160;</span><o:p></o:p></font>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><font size="2">If you need your app to work with .Net 1.0 or on Windows 2000 or XP pre-SP2, you can use the trick that Don Box posted at </font><a href="http://www.gotdotnet.com/team/dbox/default.aspx?key=2004-07-12T08:40:44Z"><font size="2">http://www.gotdotnet.com/team/dbox/default.aspx?key=2004-07-12T08:40:44Z</font></a><font size="2"> <span style="mso-spacerun: yes">&#160;</span>It uses exactly one transactional ServicedComponent based class and a DoCallback method to which you pass the delegate to your MyTxCode function that needs to execute in a transaction.<o:p></o:p></font>
</p>
<p class="MsoPlainText" style="MARGIN: 0in 0in 0pt"><o:p><font size="2">&#160;</font></o:p>
</p><img src="http://www.cnblogs.com/coollzh/aggbug/115813.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/coollzh/archive/2005/03/09/115813.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2005/03/09/115813.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.NET下的开发者们正在继承计算机早期时代伟大的黑客精神</title><link>http://www.cnblogs.com/coollzh/archive/2005/01/08/88722.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Sat, 08 Jan 2005 10:13:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2005/01/08/88722.html</guid><description><![CDATA[<p>阅读: 1237 评论: 5 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2005-01-08 18:13 <a href="http://www.cnblogs.com/coollzh/archive/2005/01/08/88722.html" target="_blank">原文链接</a></p><p>以下来自《程序员》2005第一期 
<br/>&#160;&#160;&#160; &#8220;纵观整个.NET阵营，给人留下最深刻印象的，也许不是它在技术上的具体成就，而是它的活力本身。身为C++元老的Stan Lippman说过这样一段话：&#39;......只有少数几个人在努力进行技术创新，努力向人们提供更具有创新性的计算环境，让人们更加自由自在。微软就是这少数人中的一个。我在微软工作，那气氛让我似乎回到了十多年前。&#39;, 这段话并非有没有道理。.NET 2.0的探索，C++/CLI的创新，Delphhi for .NET的勇敢尝试，Avalon/Indigo的宏伟蓝图，似乎都能令人产生这样的一个印象： 
<br/>.NET下的开发者们正在继承计算机早期时代伟大的黑客精神。 &quot; 
<br/>
<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; -- 文 / 左轻候 
<br/>这段从某个角度可以做为.NET技术在2004总结的，2005的展望。。。 
</p><img src="http://www.cnblogs.com/coollzh/aggbug/88722.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/coollzh/archive/2005/01/08/88722.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2005/01/08/88722.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>上海著名网络公司招聘高级软件工程师</title><link>http://www.cnblogs.com/coollzh/archive/2005/01/06/87605.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Thu, 06 Jan 2005 12:13:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2005/01/06/87605.html</guid><description><![CDATA[<p>阅读: 3760 评论: 12 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2005-01-06 20:13 <a href="http://www.cnblogs.com/coollzh/archive/2005/01/06/87605.html" target="_blank">原文链接</a></p><p>.net高级软件工程师&#160; 2人 
<br/>岗位职责： 
<br/>负责项目的总体架构设计、分层详细设计，代码编写；负责项目的管理，对于软件工程师提供技术指导。 
<br/>任职要求： 
<br/>1、大学本科及以上学历，计算机及相关专业，三年以上工作经验 
<br/>2、精通面向对象分析设计，具有大型企业级系统设计、开发、调优经验 
<br/>3、精通.NET Framework, C#，熟练使用Visual Studio.NET开发工具，精通ASP.NET编程模型，精通ADO.NET编程模型 
<br/>4、熟悉SQL Server或Oracle大型数据库系统，熟悉SQL存储过程的编写 
<br/>5、具有完整的应用开发周期经验，熟悉设计、编码、测试、实施等各阶段工作，有丰富的项目管理经验 
<br/>6、具有适当领导和组织才能，能够带领技术团队创造核心技术，引导团队的技术发展 
<br/>7、具有熟练的英语听说读写能力 
<br/>
</p>
<p>.net软件工程师 4人 
<br/>任职要求： 
<br/>1、大学本科以上学历，计算机及相关专业毕业，2年以上工作经验 
<br/>2、精通Windows平台下的Web技术开发，具有丰富的项目经验，熟悉ASP.NET，Javascript，熟悉ADO.NET编程模型，熟练掌握NET Framework, C#，熟练使用Visual Studio.NET开发工具 
<br/>3、具有良好的代码编写风格，熟悉Web程序代码安全 
<br/>4、善于与他人沟通、合作，具有团队精神，良好的自学能力 
<br/>5、熟悉数据库设计，了解数据库性能调优者优先 
<br/>6、熟悉企业设计模式，具有大型企业级系统设计、开发、调优经验者优先 
<br/>7、具有一定的项目管理经验者优先 
<br/>8、能熟练阅读英文技术文献 
<br/>
<br/>
</p>
<p>C/C++软件工程师 1人 
<br/>任职要求： 
<br/>1、&#160;大学本科以上学历，计算机及相关专业毕业，2年以上工作经验 
<br/>2、&#160;熟练掌握C/C++，熟练使用VC++等开发工具，精通Windows编程 
<br/>3、&#160;善于与他人沟通、合作，具有团队精神，良好的自学能力 
<br/>4、&#160;熟悉计费相关业务者优先 
<br/>5、&#160;熟悉.net技术架构者优先 
<br/>6、&#160;具有一定的项目管理经验者优先 
<br/>
</p>
<p>7、能熟练阅读英文技术文献 
<br/>
<br/>SQL Server数据库管理员 1人 
<br/>任职要求： 
<br/>1、&#160;大学本科以上学历，计算机及相关专业毕业，2年以上工作经验 
<br/>2、&#160;精通SQL Server2000，有1年或以上大型数据库维护管理经验 
<br/>3、&#160;熟悉数据库设计、性能调优和查错，精通存储过程编写 
<br/>4、&#160;有数据库相关应用程序开发经验者优先 
<br/>5、能熟练阅读英文技术文献 
<br/>熟悉asp.net或者.net者优先 
</p><img src="http://www.cnblogs.com/coollzh/aggbug/87605.html?type=1" width="1" height="1" alt=""/><p>评论: 12　<a href="http://www.cnblogs.com/coollzh/archive/2005/01/06/87605.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2005/01/06/87605.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>即将过的2004</title><link>http://www.cnblogs.com/coollzh/archive/2004/12/20/79476.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Mon, 20 Dec 2004 04:37:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2004/12/20/79476.html</guid><description><![CDATA[<p>阅读: 1157 评论: 7 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2004-12-20 12:37 <a href="http://www.cnblogs.com/coollzh/archive/2004/12/20/79476.html" target="_blank">原文链接</a></p><p>看到别人在总结即将过的2004,感觉非常惭愧，2004我都做了什么？
<br/>
<br/>1.年初辞职，再次投入到.net的怀抱，决定不再三心二意
<br/>2.为了工作方便，搬到浦东一个偏僻的地方
<br/>3.在博客园开始写blog,感谢dudu,认识了一批朋友
<br/>4.今年技术上没有太大长进，惭愧，关注软件工程和项目管理
<br/>5. 因电子商务的需要，对网络加密，签名，证书有了一个深刻的认识，算是一个小小收获
<br/>6.第一次实施一个企业级网络负载均衡的电子商务系统
<br/>7.2年多没回老家，惭愧的很。。。。
<br/>
<br/>每天碌碌，不知道在忙些什么......,惭愧得很呀。
<br/>
</p>
<p></p><img src="http://www.cnblogs.com/coollzh/aggbug/79476.html?type=1" width="1" height="1" alt=""/><p>评论: 7　<a href="http://www.cnblogs.com/coollzh/archive/2004/12/20/79476.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2004/12/20/79476.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>URLRewriting的问题</title><link>http://www.cnblogs.com/coollzh/archive/2004/12/11/75471.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Fri, 10 Dec 2004 17:28:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2004/12/11/75471.html</guid><description><![CDATA[<p>阅读: 1961 评论: 5 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2004-12-11 01:28 <a href="http://www.cnblogs.com/coollzh/archive/2004/12/11/75471.html" target="_blank">原文链接</a></p>本来以为URLRewriting的一般应用实现起来应该比较简单，但今天遇到了一个其中的一些限制，贴出来给大家共享： 
<br/>假设用户可以看得虚页面时A.aspx,实际转向的物理页面是B.aspx 
<br/>
<br/>分一下几种情况： 
<br/>1.从A过来的请求不带任何QueryString和post参数，则可以成功的转向B 
<br/>
<br/>2.如果A过来的请求带post参数，也可以成功的转向B，B也可以成功接受post参数 
<br/>
<br/>3.如果A过来的参数带QueryString参数，可以成功转向B,但B不能接收到A的QueryStriing参数 
<br/>
<br/>好了，现在如果你的A页面传递给B,怎么办呢？ 
<br/>
<br/>方式是在Rewrite的时候，通过HttpContext.Current.Request.QueryString取到这些参数，然后把这些参数副到B上即可。 
<br/>
<br/>可是现在问题出来了，如果A页面没有传递QueryString参数，而你却不知道，仍旧用上面的方法来处理，在转向的时候就会出现FileNotFoundException.告诉你找不到A页面<img height="19" src="http://www.cnblogs.com/Emoticons/emdgust.gif" width="19" align="absMiddle" border="0" />。 
<br/>
<br/>我们在进行URLRewriting的时候，并不一定知道那些请求是否会带参数，在进行统一处理的时候，该怎么办呢？ 
<br/>还好，我的这个项目，我是知道那些url带参数，那些不带<img height="19" src="http://www.cnblogs.com/Emoticons/emwink.gif" width="19" align="absMiddle" border="0" /><img src="http://www.cnblogs.com/coollzh/aggbug/75471.html?type=1" width="1" height="1" alt=""/><p>评论: 5　<a href="http://www.cnblogs.com/coollzh/archive/2004/12/11/75471.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2004/12/11/75471.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title> 谁知道c++中的char ** 在C#中一般用什么类型</title><link>http://www.cnblogs.com/coollzh/archive/2004/10/27/57529.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Wed, 27 Oct 2004 15:48:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2004/10/27/57529.html</guid><description><![CDATA[<p>阅读: 2950 评论: 8 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2004-10-27 23:48 <a href="http://www.cnblogs.com/coollzh/archive/2004/10/27/57529.html" target="_blank">原文链接</a></p>类似这样这样的 int GetData(char ** pBuffer)<BR>我用public externa static int GetData(StringBuilder pBuffer),得到的好象不对<BR><BR>Google也没搜到这样的例子,不知道谁做过没有<img src="http://www.cnblogs.com/coollzh/aggbug/57529.html?type=1" width="1" height="1" alt=""/><p>评论: 8　<a href="http://www.cnblogs.com/coollzh/archive/2004/10/27/57529.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2004/10/27/57529.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Indigo Untyped Channel </title><link>http://www.cnblogs.com/coollzh/archive/2004/10/18/53962.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Mon, 18 Oct 2004 15:38:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2004/10/18/53962.html</guid><description><![CDATA[<p>阅读: 1263 评论: 1 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2004-10-18 23:38 <a href="http://www.cnblogs.com/coollzh/archive/2004/10/18/53962.html" target="_blank">原文链接</a></p><P>有两种通道来使用最新的网络通讯组件Indigo:typeed 和untyped,typed channel是通过Server端的WSDL,即通过自动自动生成的interface,很明显，我们要遵守一个契约。另一个方面，我们可以使用untyped channel,在这个通道里，我们只是从一端到另一端传递最基本的Message(Indigo中的最基本单元)，没有协议需要遵守，通常基于一个action URI.<BR>看一个sample:<BR></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">using</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> System;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">using</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> System.MessageBus;</SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p>&nbsp;</o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><I style="mso-bidi-font-style: normal">The client:<o:p></o:p></I></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p>&nbsp;</o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">class</SPAN> Client<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>[<SPAN style="COLOR: teal">STAThread</SPAN>]<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">void</SPAN> <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:place w:st="on">Main</st1:place>(<SPAN style="COLOR: blue">string</SPAN>[] args)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.5in; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Uri client = <SPAN style="COLOR: blue">new</SPAN> Uri(<SPAN style="COLOR: teal">String</SPAN>.Format(<SPAN style="COLOR: maroon">"soap.tcp://{0}:6000/Client"</SPAN>, System.<SPAN style="COLOR: teal">Environment</SPAN>.MachineName));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.5in; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Uri server = <SPAN style="COLOR: blue">new</SPAN> Uri(<SPAN style="COLOR: teal">String</SPAN>.Format(<SPAN style="COLOR: maroon">"soap.tcp://{0}:6001/Server"</SPAN>, System.<SPAN style="COLOR: teal">Environment</SPAN>.MachineName));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">Console</SPAN>.WriteLine(<SPAN style="COLOR: maroon">"Client - {0}"</SPAN>, client.ToString());<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Uri action = <SPAN style="COLOR: blue">new</SPAN> Uri(<SPAN style="COLOR: maroon">"http://tempuri.org/action1"</SPAN>);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Message message = <SPAN style="COLOR: blue">new</SPAN> Message(action, <SPAN style="COLOR: maroon">"Hello"</SPAN>);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>message.Headers.Add(<SPAN style="COLOR: blue">new</SPAN> PathHeader(server));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>message.Headers.Add(<SPAN style="COLOR: blue">new</SPAN> ToHeader(server));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>message.Headers.Add(<SPAN style="COLOR: blue">new</SPAN> ReplyInfoHeader(client));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Port port = <SPAN style="COLOR: blue">new</SPAN> Port(client);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>port.Open();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>port.SendChannel.Send(message);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>port.Close();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><I style="mso-bidi-font-style: normal">The Server:<o:p></o:p></I></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p>&nbsp;</o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">class</SPAN> Server<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>[<SPAN style="COLOR: teal">STAThread</SPAN>]<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">void</SPAN> <st1:place w:st="on">Main</st1:place>(<SPAN style="COLOR: blue">string</SPAN>[] args)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.5in; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Uri server = <SPAN style="COLOR: blue">new</SPAN> Uri(<SPAN style="COLOR: teal">String</SPAN>.Format(<SPAN style="COLOR: maroon">"soap.tcp://{0}:6001/Server"</SPAN>, System.<SPAN style="COLOR: teal">Environment</SPAN>.MachineName));<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Port port = <SPAN style="COLOR: blue">new</SPAN> Port(server);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>ServerMessageHandler handler = <SPAN style="COLOR: blue">new</SPAN> ServerMessageHandler();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>port.ReceiveChannel.Handler = handler;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>port.CloseTimeout = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: teal">TimeSpan</SPAN>(1, 0, 0, 0);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>port.Open();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">Console</SPAN>.WriteLine(<SPAN style="COLOR: maroon">"Server - {0}"</SPAN>, server.ToString());<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">Console</SPAN>.ReadLine();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">class</SPAN> ServerMessageHandler : SyncMessageHandler<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">override</SPAN> <SPAN style="COLOR: blue">bool</SPAN> ProcessMessage(Message message)<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt 1.5in; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">string</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> content = message.Content.GetObject(<SPAN style="COLOR: blue">typeof</SPAN>(<SPAN style="COLOR: blue">string</SPAN>)) <SPAN style="COLOR: blue">as</SPAN> <SPAN style="COLOR: blue">string</SPAN>;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">Console</SPAN>.WriteLine(content);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: teal">Console</SPAN>.ReadLine();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">true</SPAN>;<SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<BR></SPAN><FONT face="Courier New" size=2>看上去和remoting有点类似，其实编程方式更加简洁，更好理解。</FONT><BR></P><img src="http://www.cnblogs.com/coollzh/aggbug/53962.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/coollzh/archive/2004/10/18/53962.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2004/10/18/53962.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>VC#2005 最新技术预览版下周发布</title><link>http://www.cnblogs.com/coollzh/archive/2004/10/18/53938.html</link><dc:creator>coollzh</dc:creator><author>coollzh</author><pubDate>Mon, 18 Oct 2004 14:50:00 GMT</pubDate><guid>http://www.cnblogs.com/coollzh/archive/2004/10/18/53938.html</guid><description><![CDATA[<p>阅读: 1212 评论: 0 作者: <a href="http://www.cnblogs.com/coollzh/" target="_blank">coollzh</a> 发表于 2004-10-18 22:50 <a href="http://www.cnblogs.com/coollzh/archive/2004/10/18/53938.html" target="_blank">原文链接</a></p>来自<A class=headermaintitle id=Header1_HeaderTitle href="http://blogs.msdn.com/somasegar/">Somasegar's WebLog</A>的消息，微软下周将发布最新技术预览版的<FONT face=Arial size=2>Visual Studio 2005，该版最激动人心的功能是VC#也支持Edit &amp; Continue&#8217; (E&amp;C).<SPAN style="mso-spacerun: yes">&nbsp;了，说可以显著提高C#开发人员的开发条是效率<IMG src="http://www.cnblogs.com/Emoticons/teeth_smile.gif"><BR>最新消息请参考<A href="http://msdn.microsoft.com/vs2005/">http://msdn.microsoft.com/vs2005/</A></SPAN>&nbsp;</FONT><img src="http://www.cnblogs.com/coollzh/aggbug/53938.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/coollzh/archive/2004/10/18/53938.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/coollzh/archive/2004/10/18/53938.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56809/" target="_blank">《魔兽世界》有望春节后合法运营</a><span style="color:gray">(2010-02-10 10:47)</span><br/>· <a href="http://news.cnblogs.com/n/56808/" target="_blank">1月必应搜索市场份额破10% 一年内可赶上雅虎</a><span style="color:gray">(2010-02-10 10:42)</span><br/>· <a href="http://news.cnblogs.com/n/56807/" target="_blank">周鸿祎：马化腾的成功在于打动人心</a><span style="color:gray">(2010-02-10 10:39)</span><br/>· <a href="http://news.cnblogs.com/n/56806/" target="_blank">充分保护用户隐私：Adobe Flash Player 10.1beta版本中已加入私密浏览模式</a><span style="color:gray">(2010-02-10 10:34)</span><br/>· <a href="http://news.cnblogs.com/n/56805/" target="_blank">Google 将 Street View 设备放到雪橇上让你看遍冬奥会的雪景</a><span style="color:gray">(2010-02-10 10:29)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>