<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/ATField" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/ATField" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 17 Jun 2009 17:33:00 GMT</lastBuildDate><title>张羿的CSDN专栏</title><description>.NET/CLR 4.0开发中~~</description><link>http://blog.csdn.net/ATField/</link><item><title>MSDN Webcast预告：.NET 4.0中的新特性系列课程(3)：.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)</title><link>http://blog.csdn.net/ATField/archive/2009/06/17/4277171.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4277171.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4277171.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4277171</trackback:ping><description>在最新一期的.NET 4.0新特性系列课程中，我和我的同事将给大家介绍Beta1中的一些新特性，具体信息如下：  .NET 4.0中的新特性系列课程(3)：.NET 4.0 Beta1 Interop 新特性介绍 (Level 200)  讲 师：张羿、朱永泰    课程简介：.NET 4.0 Beta1在Interop，也就是互操作功能上有了较大的改进，主要是能够帮助开发者更自由的自定义互操作的行为，以及查找互操作中出现的错误。这次讲座我们主要介绍4个新特性：NOPIA、Customization of Com interop stubs、interop stub diagnostics, Custom QI。   Update：因为时间关系，我们只介绍Stub Method Redirection（也就是Customization of COM interop stubs), Custom QI, IL stub diagnostics。其中Stub Method Redirection我们已经有一篇文章提及，详情请点击这里。&lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4277171.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/233186280/ATField/csdn.net/s.gif?r=http://blog.csdn.net/ATField/archive/2009/06/17/4277171.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233186280/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233186280/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Jun 2009 01:33:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/06/17/4277171.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/06/17/4277171.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/06/17/4277171.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233186280/1080227</fs:itemid></item><item><title>CLR 4.0 Beta1新功能：Stub Method Redirection</title><link>http://blog.csdn.net/ATField/archive/2009/06/17/4276177.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4276177.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4276177.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4276177</trackback:ping><description>.NET Framework v4.0和VisualStudio 2010 Beta1已经出来有阵子了，估计有些喜欢尝鲜的朋友已经下载试用了。这一次发布包含了大量的新功能。我们上海CLR开发团队会编写一系列的文章介绍Interop的相关新功能。我来给大家简单介绍一下Stub Method Redirection功能。这个功能是CLR上海开发团队设计、开发并测试的新功能之一，这一次我们上海CLR小组共开发了下面几个功能  1. Managed TlbImp (Rewrite)  2. Stub Method Redirection  3. IL Stub ETW Diagnostics  4. Custom QueryInterface  而在CodePlex上面:  1. 发布了TlbImp的最新版本，包括基于规则的Customization（具体可以参考：这一篇）  2. 即将发布IL Stub Diagnostics Tool，可以方便大家直接观看IL Stub，内部使用IL Stub ETW Diagnostics新功能实现  除此之外，还有一些功能是由美国团队开发的：  1. &lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4276177.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/233093225/ATField/csdn.net/s.gif?r=http://blog.csdn.net/ATField/archive/2009/06/17/4276177.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093225/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093225/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 17 Jun 2009 21:28:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/06/17/4276177.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/06/17/4276177.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/06/17/4276177.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093225/1080227</fs:itemid></item><item><title>MSDN中文网络广播预告：公共语言运行库(CLR)开发系列课程(6)：.NET中间语言(IL)入门 (Level 200)</title><link>http://blog.csdn.net/ATField/archive/2009/05/19/4202281.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4202281.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4202281.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4202281</trackback:ping><description>这个星期三也就是5月19日下午2点半开始我将为大家带来CLR开发课程系列之六。这一次我打算讲一些.NET比较本质的内容：Metadata和IL代码。欢迎希望对.NET的运作机理和工作方式能够有进一步深入了解的朋友收听。本次讲座的具体信息如下：  公共语言运行库(CLR)开发系列课程(6)：.NET中间语言(IL)入门 (Level 200)  讲 师：张羿    课程简介：.NET本质上是一个执行中间语言(Intermediate Language) 代码的虚拟机，任何在.NET上运行的语言（如C#）都需要将本身翻译为IL代码，然后交给.NET执行。因此，理解IL代码对于理解.NET本身的工作方式、编写正确和高效的代码、查找和定位错误各种运行错误是非常有效的。本次讲座将介绍有关IL代码的基本知识，可以帮助大家理解大多数常见的IL代码。   推荐指数： &lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4202281.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/233093226/ATField/csdn.net/s.gif?r=http://blog.csdn.net/ATField/archive/2009/05/19/4202281.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093226/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093226/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 20 May 2009 05:22:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/05/19/4202281.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/05/19/4202281.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/05/19/4202281.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093226/1080227</fs:itemid></item><item><title>Visual Studio 2010 + .NET 4.0Beta1发布!</title><link>http://blog.csdn.net/ATField/archive/2009/05/19/4202048.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4202048.aspx</wfw:comment><slash:comments>26</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4202048.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4202048</trackback:ping><description>Visual Studio 2010和.NET 4.0的Beta1版本终于发布了！目前Beta1还只是对MSDN的订阅者开放，到美国时间20日星期三，也就是我们的21日星期四的时候，Visual Studio 2010 / .NET 4.0 Beta1将公开对外发布。这个版本是可以安装的Setup，而非上次的虚拟机镜像，因此对于大家的机器要求会放松一些。想要观看安装图片的朋友们可以点击这篇Blog：http://www.itsmywindows.com/visual-studio-2010-first-look-installation  这一次发布距离上次的CTP发布过了大概半年的时间，这半年的时间有数量众多的新特性被开发出来，并被加入到Beta1版本之中。在接下来的几篇Blog和Webcast（具体请参看中文MSDN的相关预告），我将主要介绍.NET 4.0 Beta1中的一些新特性，特别是我们上海CLR开发小组所负责开发的一些关于Interop的新功能，尽请期待！&lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4202048.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/233093227/ATField/csdn.net/s.gif?r=http://blog.csdn.net/ATField/archive/2009/05/19/4202048.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093227/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093227/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 20 May 2009 03:21:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/05/19/4202048.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/05/19/4202048.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/05/19/4202048.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093227/1080227</fs:itemid></item><item><title>Visual Studio Team System 2010 Architecture系列文章</title><link>http://blog.csdn.net/ATField/archive/2009/04/29/4137628.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4137628.aspx</wfw:comment><slash:comments>4</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4137628.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4137628</trackback:ping><description>微软上海VS TeamArch小组的中文Blog上面最近开始了一个系列文章，主要翻译Cameron Skinner的一系列介绍Visual Studio Team System 2010 Architecture CTP的一些新功能的Blog，目前有下面两篇：  VSTS 2010 Architecture 第一章:Modeling Project  Visual Studio Team System 2010 Architecture- 前言  建议对VS 2010 Architecture CTP有兴趣的朋友可以关注一下。  VS TeamArch小组的Blog主页是：http://blogs.technet.com/teamarchchina/&lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4137628.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093228/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093228/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 30 Apr 2009 03:47:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/04/29/4137628.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/04/29/4137628.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/04/29/4137628.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093228/1080227</fs:itemid></item><item><title>使用.NET/CLR的Stress Log功能寻找问题</title><link>http://blog.csdn.net/ATField/archive/2009/04/15/4077157.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4077157.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4077157.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4077157</trackback:ping><description>不知道各位使用.NET开发的朋友是否有遇到过一些非常奇怪的问题而不知道如何下手呢？这个时侯CLR本身提供的StressLog功能就非常有用了。这个StressLog可以在很多时候把CLR所做的事情记录下来，比如，对于一个很简单的最后抛出异常的.NET程序Log大致如下：                        STRESS LOG:          facilitiesToLog = 0x8000ffff          levelToLog = 16          MaxLogSizePerThread = 0x20000 (131072)          MaxTotalLogSize = 0x2000000 (33554432)          CurrentTotalLogChunk = 6          ThreadsWithLogs = 3          Clock frequency = 0.014 GHz          Start time 22:47:37          Last message time 22:47:44      &lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4077157.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093229/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093229/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 16 Apr 2009 05:28:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/04/15/4077157.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/04/15/4077157.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/04/15/4077157.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093229/1080227</fs:itemid></item><item><title>.NET 4.0新功能：Corrupted State Exceptions</title><link>http://blog.csdn.net/ATField/archive/2009/03/30/4037354.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4037354.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4037354.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4037354</trackback:ping><description>在.NET 4.0中引入了一个新功能：Corrupted State Exceptions。听上去名字很神秘，实际上这个功能主要是限制对Exception的错误用法：捕获AccessViolationException/SEHException等可能会造成程序状态错误而无法正确继续的种种异常，具体可以参看CLR程序经理Andrew Pardoe的这篇MSDN文章：http://msdn.microsoft.com/en-us/magazine/dd419661.aspx&lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4037354.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093230/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093230/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 31 Mar 2009 07:11:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/03/30/4037354.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/03/30/4037354.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/03/30/4037354.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093230/1080227</fs:itemid></item><item><title>调试Bug的神兵利器：通过WinDbg条件断点收集Log</title><link>http://blog.csdn.net/ATField/archive/2009/03/30/4037248.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/4037248.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/4037248.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4037248</trackback:ping><description>前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。这个Bug是C# Team那边发现的，他们的Testcase跑大概10分钟左右会出一个在CLR内部的ASSERT。比较难调试的主要原因在于ASSERT表明一个全局的数据结构出现了问题，本来不应该用完的数组却已经用完了（因为按照设计，这个数组是边使用边清理的，是不会用完的）。初步想到的有下面几种方案来调试：  1. 设置数据断点  2. 一步一步调试  3. 添加Log代码  设置数据断点的主要问题是不太好确定到底是因为什么原因导致的数据结构问题，而且因为是数组被用完，很难将是到底是哪一个数组元素的加入导致了数组被全部占用，因此无法通过设置数据断点的方法来调试。一步一步的调试显然也没法解决问题，因为这个Testcase本身要跑十分钟，可以想象单步调试运行十分钟的程序会花费多长时间。因此两个方案都被我否决。添加Log代码其实是可以的，只是需要修改代码，每次修改之后需要重新编译代码，然后需要在目标机器上安装，而且C#使用的CLR的Branch并非我们正在开发的Branch，需要重新下载源代码，相对比较麻烦。最后为了解决这个问题，我&lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/4037248.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093231/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093231/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 31 Mar 2009 06:22:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/03/30/4037248.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/03/30/4037248.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/03/30/4037248.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093231/1080227</fs:itemid></item><item><title>MSDN中文网络广播预告：.NET 4.0新特性系列课程(2)：契约式设计 (Level 200)</title><link>http://blog.csdn.net/ATField/archive/2009/03/16/3995972.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/3995972.aspx</wfw:comment><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/3995972.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3995972</trackback:ping><description>这次我将为大家讲解如何使用.NET 4.0中的契约式设计（也可以在.NET 2.0+中使用，需要额外下载安装包），欢迎有兴趣的朋友收听。  地址为：http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032406872&amp;Culture=zh-CN  .NET 4.0中的新特性系列课程(2)：契约式设计 (Level 200)  讲 师：张羿    课程简介：.NET 4.0中引入了契约式设计这一概念，允许程序员在函数体中按照固定的格式显式说明函数的入口，出口等地方所必须满足的条件。这一功能可以有效减少程序 Bug数量，让程序员更容易的理解现有代码，并提供静态检查、动态检查等功能。本次讲座将介绍契约式设计的概念，以及在.NET 4.0中的使用方法。   推荐指数： &lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/3995972.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093232/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093232/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 17 Mar 2009 06:31:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/03/16/3995972.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/03/16/3995972.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/03/16/3995972.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093232/1080227</fs:itemid></item><item><title>CodePlex上TlbImp新版本发布：基于规则的自定义功能</title><link>http://blog.csdn.net/ATField/archive/2009/03/13/3987889.aspx</link><wfw:comment>http://blog.csdn.net/ATField/comments/3987889.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/ATField/comments/commentRss/3987889.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3987889</trackback:ping><description>大家好。距离上次我们发布在CodePlex上的新版本TlbImp已经过了快半年了。在这半年的时间内，除了主要进行.NET 4.0相关的新功能开发之外，我们上海CLR小组也没有忘记进行TlbImp相关功能的继续开发，于今年3月9日再次发布了TlbImp的一个新版本：  http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579  这次版本中我们引入了两个重要功能：  1. 通过规则自定义互操作程序集以及规则自定义编辑器  2. 回归测试工具  基于规则的自定义功能  我们先来看一下自定义功能。这个新版本的TlbImp允许用户通过自定义的一系列的规则来指定TlbImp如何生成最终的互操作程序集。之前有不少用户向我们提到在使用TlbImp的时候，经常需要对TlbImp生成的结果做一些修改，而且必须是自动化的修改。他们通常使用的方法是先使用ILDASM反汇编，使用Perl脚本修改反汇编代码，然后再使用ILASM重新生成互操作程序集。为了解决这个问题，我们引入了一个新功能，允许用户以非常自由的方式&lt;img src =&quot;http://blog.csdn.net/ATField/aggbug/3987889.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/ATField/233093233/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/ATField/233093233/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 13 Mar 2009 23:53:00 +0800</pubDate><author>张羿</author><comments>http://blog.csdn.net/ATField/archive/2009/03/13/3987889.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/ATField/archive/2009/03/13/3987889.aspx</guid><dc:creator>张羿</dc:creator><fs:srclink>http://blog.csdn.net/ATField/archive/2009/03/13/3987889.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/ATField/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/ATField/~1203445/233093233/1080227</fs:itemid></item></channel></rss>