<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>CLR &amp; Silverlight上海研发团队的Blog : CLR新闻</title><link>http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx</link><description>Tags: CLR新闻</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>MSDN Webcast预告 - .NET 4.0中的新特性系列课程(4)：.NET 4.0 安全模型介绍(Level 200)</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/07/06/msdn-webcast-net-4-0-4-net-4-0-level-200.aspx</link><pubDate>Mon, 06 Jul 2009 04:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9818414</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9818414.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9818414</wfw:commentRss><description>&lt;P&gt;在最新一期的.NET 4.0新特性系列课程中，我们将继续给大家介绍CLR 4.0中的一些新特性，具体信息如下：&lt;/P&gt;
&lt;P&gt;&lt;SPAN id=lblEventTitle&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032420505&amp;amp;EventCategory=4&amp;amp;culture=zh-CN&amp;amp;CountryCode=CN" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032420505&amp;amp;EventCategory=4&amp;amp;culture=zh-CN&amp;amp;CountryCode=CN"&gt;MSDN Webcast - .NET 4.0中的新特性系列课程(4)：.NET 4.0 安全模型介绍(Level 200)&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;讲 师：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/B&gt;朱永泰&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;开始日期：&lt;/STRONG&gt;&amp;nbsp; 2009年7月21日 14:30中国 &lt;/P&gt;
&lt;P&gt;&lt;B&gt;课程简介：&lt;/B&gt;CLR 4在安全领域的主要工作室简化安全模型，以便让用户可以更方便的使用。本次讲座会从CLR对自身在整个安全架构的定位谈起，介绍如何提供一个安全沙箱(SandBox)，来构筑应用程序。 &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9818414" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR+4.0/default.aspx">CLR 4.0</category></item><item><title>CLR 4 新特性 ------ 概览</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/06/06/clr-4.aspx</link><pubDate>Sat, 06 Jun 2009 17:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9704409</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9704409.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9704409</wfw:commentRss><description>&lt;P&gt;.NET 4中发布了最新版本的公共语言运行时，简称CLR (Common Language Runtime) 。这个版本是CLR 2.0之后又一个新的版本，包含着CLR小组几年以来的辛勤工作。&lt;/P&gt;
&lt;P&gt;CLR上海团队计划在未来的几个月内陆续介绍其中的一些特性，本文作为一个概览，先作蜻蜓点水，抛砖引玉。也欢迎大家回复本文，告诉我们你所感兴趣的话题，我们会进一步作深入的介绍。&lt;/P&gt;
&lt;H3&gt;CLR 简介&lt;/H3&gt;
&lt;P&gt;CLR作为.NET框架中最为底层的部件，扮演着运行托管代码虚拟机的角色，承担着诸如即时编译(Just In Time Compile)，垃圾回收(Garbage Collect)等任务。打一个比方，如果把操作系统看做是运行二进制程序的宿主，那么CLR就是托管世界的操作系统。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CLR4_14D7E/netframework_2.gif" mce_href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CLR4_14D7E/netframework_2.gif"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=netframework border=0 alt=netframework src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CLR4_14D7E/netframework_thumb.gif" width=272 height=157 mce_src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CLR4_14D7E/netframework_thumb.gif"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;图一 CLR 在.NET框架中所处的位置&lt;/P&gt;
&lt;P&gt;CLR作为.NET框架中的一部分，总是跟着.NET发行，但是近年来.NET的发行版本从2.0一直到3.5, 但是CLR却还一直保留在2.0，如下表所示： 
&lt;TABLE border=1 cellSpacing=0 cellPadding=0 width=397 bgColor=#cccccc&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=231&gt;
&lt;P&gt;&lt;B&gt;.NET&lt;/B&gt;&lt;B&gt;框架版本&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=97&gt;
&lt;P&gt;&lt;B&gt;时间&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=67&gt;
&lt;P&gt;&lt;B&gt;CLR &lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=230&gt;
&lt;P&gt;1.0&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=97&gt;
&lt;P&gt;2002.2&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68&gt;
&lt;P&gt;1.0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=230&gt;
&lt;P&gt;1.1&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=97&gt;
&lt;P&gt;2003.4&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68&gt;
&lt;P&gt;1.1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=230&gt;
&lt;P&gt;2.0 (Generics)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=97&gt;
&lt;P&gt;2006.1&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68&gt;
&lt;P&gt;2.0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=230&gt;
&lt;P&gt;3.0 (WPF/WCF/WF)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=97&gt;
&lt;P&gt;2006.11&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68&gt;
&lt;P&gt;2.0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=230&gt;
&lt;P&gt;3.5 (LINQ)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=97&gt;
&lt;P&gt;2007.11&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=68&gt;
&lt;P&gt;2.0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=230&gt;
&lt;P&gt;4.0 Beta&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=98&gt;
&lt;P&gt;2009.5&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=69&gt;
&lt;P&gt;4.0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;图二 CLR 版本&lt;/P&gt;
&lt;P&gt;大家可以看到，2.0的发行已经是三年之前的事情了，在这几年中，CLR小组的工作最后都汇集在了这次发行之中，可谓是众星云集，下面我们一一叙来。&lt;/P&gt;
&lt;H3&gt;托管与本地代码的互操作&lt;/H3&gt;
&lt;P&gt;托管代码与本地代码之间的互操作(interop)担负着.NET世界对外联系的责任。比如调用一个本地dll或者COM组件。在CLR 4中，我们作了以下工作，来提高互操作的易用性。&lt;/P&gt;
&lt;P&gt;网络广播：&lt;A href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417433&amp;amp;Culture=zh-CN"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417433&amp;amp;Culture=zh-CN&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;1. 自定义QI(Custom QI)&lt;/P&gt;
&lt;P&gt;当托管代码被COM调用的时候，它扮演着COM组件的角色。对于COM组件来说，IUnknown::QueryInerface(QI)是类型转化的关键。CLR4之前，为每个托管COM组件提供了一个QI实现; CLR4 允许用户自定义QI，大家可以从mscorlib中新增的interface，&lt;FONT color=#0080ff&gt;System.Runtime.InteropServices.ICustomQueryInterface&lt;/FONT&gt;着手了解这一新功能。&lt;/P&gt;
&lt;P&gt;2. TlbImp源代码以及自定义工具&lt;/P&gt;
&lt;P&gt;在托管代码中调用COM组件，需要这个COM组件用托管语言申明自己的接口，也就是Interop Assembly(IA)。在一般情况下，用户不需要自己动手撰写这些assembly，而可以使用TlbImp这个工具，根据TLB生成IA。在CLR 4的开发中，我们用托管代码把TlbImp重写了，并且把源代码公布在了&lt;A href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579" mce_href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579"&gt;codeplex&lt;/A&gt;上面。&lt;/P&gt;
&lt;P&gt;发布TlbImp的源代码的好处之一，是方便使用者根据自己的需求，通过修改源代码来自拓展TlbImp的功能。我们也收集了很多客户需要自定义TlbImp的要求，并且提取了一些呼声最高的自定义请求，制作了TlbImp自定义工具，也在&lt;A href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579" mce_href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579"&gt;codeplex&lt;/A&gt;发行。详见&lt;A href="http://blogs.msdn.com/silverlightshanghai/archive/2009/03/13/codeplex-tlbimp.aspx" mce_href="http://blogs.msdn.com/silverlightshanghai/archive/2009/03/13/codeplex-tlbimp.aspx"&gt;http://blogs.msdn.com/silverlightshanghai/archive/2009/03/13/codeplex-tlbimp.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;3. 等价类型&lt;/P&gt;
&lt;P&gt;前面提到，COM组件要为.NET所用，需要Interop Assembly。不同版本的COM组件，带来了部署上的问题。在CLR 4.0之中，我们通过等价类型的引入，就部署IA的问题，给出了更好的解决方案。&lt;/P&gt;
&lt;P&gt;4. &lt;A href="http://blogs.msdn.com/silverlightshanghai/archive/2009/06/17/clr-4-0-beta1-stub-method-redirection.aspx" mce_href="http://blogs.msdn.com/silverlightshanghai/archive/2009/06/17/clr-4-0-beta1-stub-method-redirection.aspx"&gt;StubMethodReditection&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;自定义Stub来处理Interop中的Marshalling和目标函数调用；&lt;/P&gt;
&lt;P&gt;5. 其他&lt;/P&gt;
&lt;P&gt;Interop其他方面的改动，使用COM取代了原先的远程对象访问；让用户自己决定清理RCW的时机等等，会有更为详细的博文作具体介绍。&lt;/P&gt;
&lt;H3&gt;垃圾回收&lt;/H3&gt;
&lt;P&gt;垃圾回收一直是CLR中的核心模块，对托管程序运行的性能至关重要。在这个版本中，CLR引入了background GC，和原来的Concurrent GC相比，在GC进行的过程中，会更少的阻断其他进程，从而提高整个CLR的运行效率。同时，此前在sp2中引入的&lt;FONT color=#0080ff&gt;GC::RegisterForFullGCNotification&lt;/FONT&gt;可以让 CLR4.0可以通知用户第二代GC发生，从而使服务器有机会处理负载平衡，使得整个服务器端的处理能力不至于因为GC的发生受到太大的影响。&lt;/P&gt;
&lt;H3&gt;代码约定&lt;/H3&gt;
&lt;P&gt;在CLR4.0中，引入了代码约定，更方便用户规范代码的行为，大家可以从&lt;FONT color=#0080ff&gt;System.Diagnostics.Contracts&lt;/FONT&gt;这一命名空间着手，进一步了解其内容。&lt;/P&gt;
&lt;H3&gt;Corrupted state exception&lt;/H3&gt;
&lt;P&gt;CLR 4.0中，对异常处理的哲学有了一个改进：在默认情况下，try/catch语句将不能捕获诸如AccessViolationException等异常。因为这些异常的损毁(Corrupt)了机器的状态(state)，即使用户捕获了它们，也无法继续执行代码，或者说，继续执行代码也会变得非常危险。&lt;/P&gt;
&lt;H3&gt;新的安全模型&lt;/H3&gt;
&lt;P&gt;用过CLR v2的安全模型的朋友们可能还会记得诸如Evidence，Policy以及Permission等概念，这些复杂的对象一起构筑了v2的安全模型的框架，CLR4.0中，安全模型被大大简化，&lt;FONT color=#0080ff&gt;SecurityCritical，SecurSafeCritical&lt;/FONT&gt;等一些安全级别构筑了新的安全模型的基础。&lt;/P&gt;
&lt;H3&gt;同一个进程，多个CLR&lt;/H3&gt;
&lt;P&gt;CLR4.0的出现，又添加了一个CLR的版本，尽管我们尽量保证各个不同版本之间的兼容性，但是还是可能出现一些已经开发的组件，需要特定的版本才能运行。为了确保用户过去编写的组件不会因为新的CLR版本而不能运行，CLR4.0中允许用户在一个进程中，运行不同的CLR版本，这样不同的组建就可以各取所需，运行在适合他们的CLR中了。&lt;/P&gt;
&lt;H3&gt;基本类库&lt;/H3&gt;
&lt;P&gt;基本类库，也就是mscorlib.dll，包括了诸如System.Object这样在整个类型系统中最为核心的类库。CLR4.0也包含了很多新功能：比如用于支持动态语言的&lt;FONT color=#0080ff&gt;System.Tuple&lt;/FONT&gt;,新的集合类型&lt;FONT color=#0080ff&gt;System.Collections.Generic.SortedSet&lt;/FONT&gt;，用于提高文件系统浏览性能的API，操作注册表的API，以及对内存映射文件的支持等等。&lt;/P&gt;
&lt;P&gt;总的来说，CLR4.0相较于CLR2.0，在保证了很高的兼容性的同时，做了大量的改进工作，在之后的一系列博客中，我们团队的成员会进一步作更为具体的介绍，敬请大家期待。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9704409" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR+Interop/default.aspx">CLR Interop</category><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR+4.0/default.aspx">CLR 4.0</category></item><item><title>Visual Studio 2010 + .NET 4.0Beta1发布!</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/05/19/visual-studio-2010-net-4-0beta1.aspx</link><pubDate>Tue, 19 May 2009 16:15:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9627857</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9627857.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9627857</wfw:commentRss><description>&lt;p&gt;Visual Studio 2010和.NET 4.0的Beta1版本终于发布了！目前Beta1还只是对MSDN的订阅者开放，到美国时间20日星期三，也就是我们的21日星期四的时候，Visual Studio 2010 / .NET 4.0 Beta1将公开对外发布。这个版本是可以安装的Setup，而非上次的虚拟机镜像，因此对于大家的机器要求会放松一些。想要观看安装图片的朋友们可以点击这篇Blog：&lt;a title="http://www.itsmywindows.com/visual-studio-2010-first-look-installation" href="http://www.itsmywindows.com/visual-studio-2010-first-look-installation"&gt;http://www.itsmywindows.com/visual-studio-2010-first-look-installation&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这一次发布距离上次的CTP发布过了大概半年的时间，这半年的时间有数量众多的新特性被开发出来，并被加入到Beta1版本之中。在接下来的几篇Blog和Webcast（具体请参看中文MSDN的相关预告），我们将主要介绍.NET 4.0 Beta1中的一些新特性，特别是我们上海CLR开发小组所负责开发的一些关于Interop的新功能，尽请期待！&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9627857" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>CodePlex上TlbImp新版本发布：基于规则的自定义功能</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/03/13/codeplex-tlbimp.aspx</link><pubDate>Fri, 13 Mar 2009 10:31:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9472815</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9472815.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9472815</wfw:commentRss><description>&lt;p&gt;大家好。距离上次我们发布在CodePlex上的新版本TlbImp已经过了快半年了。在这半年的时间内，除了主要进行.NET 4.0相关的新功能开发之外，我们上海CLR小组也没有忘记进行TlbImp相关功能的继续开发，于今年3月9日再次发布了TlbImp的一个新版本：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579"&gt;http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这次版本中我们引入了两个重要功能：&lt;/p&gt;  &lt;p&gt;1. 通过规则自定义互操作程序集以及规则自定义编辑器&lt;/p&gt;  &lt;p&gt;2. 回归测试工具&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;基于规则的自定义功能&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;我们先来看一下自定义功能。这个新版本的TlbImp允许用户通过自定义的一系列的规则来指定TlbImp如何生成最终的互操作程序集。之前有不少用户向我们提到在使用TlbImp的时候，经常需要对TlbImp生成的结果做一些修改，而且必须是自动化的修改。他们通常使用的方法是先使用ILDASM反汇编，使用Perl脚本修改反汇编代码，然后再使用ILASM重新生成互操作程序集。为了解决这个问题，我们引入了一个新功能，允许用户以非常自由的方式来定义他们最终想要看到的结果。&lt;/p&gt;  &lt;p&gt;让我们先来看一个简单的例子：假设我们希望改变互操作程序集中的某个类型的名称。先双击打开TlbImpConfigFileEditor.exe启动自定义文件的编辑器，然后打开我们需要自定义的Type Library，这里我们选择发布版本中Samples\ChangeManagedName\ChangeManagedNameSample.tlb文件，如下：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image002_thumb.jpg" width="578" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;左边显示的是我们需要自定义的Type Library，而右边，则是我们需要自定义的规则，这些规则可以告诉TlbImp如何修改最终生成的互操作程序集。首先，将我们需要修改的IComparable接口结点从左边拖到右边，松开鼠标，出现如下的对话框：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image004_thumb.jpg" width="561" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;上面这个对话框是用来创建一个新的规则，规则指定TlbImp对于哪些对象应用何种动作。在这个对话框中我们需要定义这个规则所对应的动作（Action），因此需要在Action下拉框中选择ChangeManagedName，然后点击OK即可。之后编辑器状态如下（需要自己展开结点）：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image006_thumb.jpg" width="741" height="347" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;大家可以看到右边已经出现了一个新的规则叫做Change interface name，对应的Category是Type，也就是说这个规则是针对互操作程序集中的类型设置的。Condition指定了规则所需要满足的条件，选中Condition节点（或者其子节点）可以在下面的Condition Expression中看到对应的规则表达式，也就是NativeName Equal ‘ICompareable’，意思是该规则是针对任何名字叫做IComparable的类型。注意因为我们是从IComparable节点直接拖到右边，因此这些条件是编辑器自动生成的。大家如果需要也可以自己通过点击Native Equal IComparable条件来修改，或者点击&amp;lt;Empty&amp;gt;来增加新的条件。现在我们可以点击&amp;lt;Empty&amp;gt;节点，在下拉框中选择TypeKind，第二个下拉框选择Equal，第三个下拉框选择Interface，最终的结果如下：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image008_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image008_thumb.jpg" width="865" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;注意表达式节点的组织方式是类似语法树的样子，也就是说And节点下面的互相之间是And关系，最终的结果总是可以在Condition Expression一栏看到：&lt;/p&gt;  &lt;p&gt;( NativeName Equal 'IComparable' ) And ( TypeKind Equal 'Interface')&lt;/p&gt;  &lt;p&gt;当编辑好了规则的时候，我们需要指定对应的具体动作的参数。因为我们需要修改对象类型的名称，双击Action下面的NewName子结点会弹出如下对话框：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image010_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image010_thumb.jpg" width="373" height="154" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;输入我们想修改成的名字，然后点击OK。&lt;/p&gt;  &lt;p&gt;这样一个规则就完成了：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image012_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image012_thumb.jpg" width="416" height="261" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;修改完毕之后存盘为ChangeInterfaceName.xml，然后在命令行下面调用TlbImp，使用/config参数引用之前存盘的Config文件（黄色加亮部分：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image014_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image014_thumb.jpg" width="244" height="42" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;之后通过ILDASM打开我们生成的结果：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image016_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image016_thumb.jpg" width="386" height="199" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;可以看到IComparable已经被改名成了IMyInterface。&lt;/p&gt;  &lt;p&gt;TlbImp总共支持下面几种动作（Action）：&lt;/p&gt;  &lt;p&gt;1. ChangeManagedName：修改类型、函数的名称&lt;/p&gt;  &lt;p&gt;2. ResolveTo：将一个类型替换为另外一个类型（可以是另外一个程序集的类型）。现在已经有用户在CodePlex上面提出这个功能需求了：&lt;a href="http://clrinterop.codeplex.com/WorkItem/View.aspx?WorkItemId=2565"&gt;http://clrinterop.codeplex.com/WorkItem/View.aspx?WorkItemId=2565&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. AddAttribute：为任意类型添加任意Attribute&lt;/p&gt;  &lt;p&gt;4. PreserveSig：为单个函数或者类型中的所有函数添加PreserveSigAttribute并相应修改函数的原型&lt;/p&gt;  &lt;p&gt;5. ConvertTo：修改函数中的参数类型&lt;/p&gt;  &lt;p&gt;每种对应的动作在Samples目录下面都有对应的例子，有兴趣的朋友可以参照文档自行实验。&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;回归测试工具&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;为了帮助用户在修改TlbImp代码的时候可以更容易保证自己的修改不会引起其他问题，我们引入了一个简单的回归测试工具，大家可以到这里下载：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://clrinterop.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=17579"&gt;http://clrinterop.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=17579&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;下载完毕之后打开Bin目录下面的TlbImpRegressionTestTool.exe，然后通过File菜单打开Testcase目录下面的testcases.xml文件：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image018_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image018" border="0" alt="clip_image018" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image018_thumb.jpg" width="752" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;可以看到所有的Testcase都被列出来了。下一步在Run菜单里面选择Settings，输入TlbImp2.exe和WinDiff.exe所在位置：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image020_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image020" border="0" alt="clip_image020" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image020_thumb.jpg" width="497" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;完毕之后，选择Run下面的Run All Testcases或者Run Selected Testcases，该工具便会调用TlbImp2.exe依次运行Testcase来检查TlbImp2的相应功能是否正确：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image022_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image022" border="0" alt="clip_image022" src="http://blogs.msdn.com/blogfiles/silverlightshanghai/WindowsLiveWriter/CodePlexTlbImp_D953/clip_image022_thumb.jpg" width="752" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;绿色为测试成功，红色为失败。如果有失败的情况，双击该行可以打开WinDiff比较TlbImp2当前生成的结果和应该生成的结果之间的区别。&lt;/p&gt;  &lt;p&gt;最后，希望大家能够积极试用TlbImp的新功能。如果有希望看到的TlbImp的新功能，或者对目前的TlbImp有哪些觉得做的不够好的地方，都可以到下面的地址提出你的宝贵意见: &lt;a href="http://clrinterop.codeplex.com/WorkItem/List.aspx"&gt;http://clrinterop.codeplex.com/WorkItem/List.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9472815" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR+Interop/default.aspx">CLR Interop</category></item><item><title>中国首届. N E T技术大会即将在上海召开</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/02/05/n-e-t.aspx</link><pubDate>Thu, 05 Feb 2009 07:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9397590</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9397590.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9397590</wfw:commentRss><description>&lt;P&gt;近些年来，中国的软件技术队伍一直在快速扩大中，而国内的技术交流论坛较之欧美一直较为匮乏，大型的技术会议与活动更是屈指可数。但随着中国软件技术的蓬勃发展，已经有越来越多的软件技术工作者被邀请到更多的技术活动中来。今年2月20日、21日，中国首届.NET技术大会将于上海召开。这对中国广大使用.NET技术的开发人员以及.NET技术爱好者来说无疑是一个好消息。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;该大会由SoftCompass（祝成科技）与微软共同主办，邀请了海内外.NET领域的著名技术专家、企业界人士、以及社群精英相聚一堂，与与会者共同探讨.NET技术的应用与发展。为了能和用户近距离的交流，深度的理解用户反馈与需求，以便更好的改进下一代产品，CLR / Silverlight上海研发团队也派出了几名代表，分别就.NET的发展方向、Silverlight的具体应用及发展进行演讲。研发团队所属的上海开发工具部的部门经理徐鹏阳还将分享微软的软件研发方法与过程。&lt;/P&gt;
&lt;P&gt;具体详情请查阅网站：&lt;A href="http://conference.softcompass.com/net2009/" mce_href="http://conference.softcompass.com/net2009/"&gt;http://conference.softcompass.com/net2009/&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;期待2月20日、21日与您相会在上海！&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9397590" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>CLR Inside Out: Best Practices for Managed and Native Code Interoperability （托管/非托管代码互通性最佳实践）</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/01/20/clr-inside-out-best-practices-for-managed-and-native-code-interoperability.aspx</link><pubDate>Tue, 20 Jan 2009 07:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9342816</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9342816.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9342816</wfw:commentRss><description>&lt;P&gt;不知道各位是否知道在每月发布的MSDN杂志上有一个CLR team负责的专栏，叫做CLR Inside Out。中文或许可以译作《CLR深入浅出》。在该专栏中，CLR team的各个研发人员深入探讨了CLR的各个方面，比如安全性、线程管理、性能管理等等。在最新的一期MSDN杂志中，CLR interop team在美国的PM发表了一篇名为《Best Practices&amp;nbsp;for Managed and Native Code Interoperability》的文章，根据不同情况介绍了托管/非托管代码互通性的最佳实践。大家可以通过&lt;A class="" href="http://msdn.microsoft.com/en-us/magazine/2009.01.clrinsideout.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/2009.01.clrinsideout.aspx"&gt;这里&lt;/A&gt;阅读该文章的网络版。&lt;/P&gt;
&lt;P&gt;以往几期CLR Inside Out的文章可以通过&lt;A class="" href="http://msdn.microsoft.com/en-us/magazine/cc501040.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc501040.aspx"&gt;这里&lt;/A&gt;看到。在此之前，发表的有关interop的文章还有如下几篇：&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0033cc&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/magazine/cc164193.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc164193.aspx"&gt;Marshaling between Managed and Unmanaged Code&lt;/A&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0033cc&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/magazine/cc163494.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc163494.aspx"&gt;Introduction to COM Interop&lt;/A&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;由于版权问题，我们无法在这里进行翻译。但是大家如果对什么话题有兴趣的话，欢迎在这里留言，给我们提出。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9342816" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>CLR Team blog （英文）正式启动</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2009/01/04/clr-team-blog.aspx</link><pubDate>Sun, 04 Jan 2009 06:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9270901</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9270901.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9270901</wfw:commentRss><description>&lt;P&gt;CLR team在微软算得上一个历史悠久的团队了。作为.NET框架的核心引擎，CLR伴随.NET Framework 1.0于2002年正式发布到现在刚发布的CTP版本，经过了几次重大的改进；而CLR开发团队从成立到现在也已有十载春秋。长久以来，CLR team 一直通过各种不同渠道（如论坛、反馈网站、客户等等）关注用户对CLR运行各个方面的反馈，如性能、兼容性等方面的改进都基于用户的大量反馈，而CLR团队中的成员也纷纷通过建立博客和广大用户，尤其是开发人员，交流开发心得、发现的问题及解决方法等。用户在这些博客中的反馈都直接或间接的影响到了CLR产品在下一个版本中的重点开发。但由于所有的博客均由个人维护和管理，对CLR Team的交流始终处于间接的方式。&lt;/P&gt;
&lt;P&gt;现在，CLR Team正式成立了网上博客（&lt;A href="http://blogs.msdn.com/clrteam/" mce_href="http://blogs.msdn.com/clrteam/"&gt;http://blogs.msdn.com/clrteam/&lt;/A&gt;），CLR Team以整个团队的方式来维护和管理该博客，并通过该博客与广大用户和开发人员交流，倾听各位的意见和建议，及时提供反馈。除了该博客的原创文章，博客还会转载那些CLR team中个人博客的最新文章。因此该博客将真正成为CLR相关文章的中心站点，方便用户的浏览和交流。&lt;/P&gt;
&lt;P&gt;为了方便中国用户的阅读，我们的CLR &amp;amp; Silverlight上海研发团队的Blog会对CLR Team blog上的文章进行有选择的翻译。希望能对大家有所帮助，也希望能听到更多来自你们的声音！&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9270901" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/_E2561F9645658B4E_/default.aspx">团队故事</category><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>.NET框架4.0中都有些什么？</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2008/11/14/net-4-0.aspx</link><pubDate>Fri, 14 Nov 2008 12:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9068908</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9068908.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9068908</wfw:commentRss><description>&lt;P&gt;前不久，在美国洛杉矶召开的Professional Developer Conference（PDC）上有一个讲座，介绍了有关.NET框架4.0中在CLR（公共语言运行时）方面的新功能。完整的视频可以在&lt;A href="http://channel9.msdn.com/pdc2008/PC49/" mce_href="http://channel9.msdn.com/pdc2008/PC49/"&gt;这里&lt;/A&gt;找到。这里做一个简单的总结：&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;.NET 4.0让不同组件之间工作的更好&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1. 兼容性一直是个令人很头疼的问题，在.NET 4.0中，在同一个进程中，不同运行时上的组件可以同时运行，我们称之为In process Side by Side。&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. 对于很多同时包含COM组件和托管代码的应用程序，Primary Interop Assembly (PIA) 一直程序在部署方面令人很头疼的问题。现在，.NET 4.0中加入了称为NO-PIA的新功能，使得Interop的版本类型匹配仅通过简单的属性（TypeIdentifierAttribute）和GUID就能实现，免去了繁杂的PIA部署，也减少了应用程序的部署大小。&lt;/P&gt;
&lt;P&gt;3. P/Invoke Interop Assistant，是一个能帮助使用Interop的开发人员快速转换C语言与.NET语言方法签名的工具，在&lt;A href="http://www.codeplex.com/clrinterop" mce_href="http://www.codeplex.com/clrinterop"&gt;http://www.codeplex.com/clrinterop&lt;/A&gt; 的网站上可以免费下载到。&lt;/P&gt;
&lt;P&gt;4. 此外，.NET 4.0也为引入动态语言与功能性语言做了相应的改进。包括一些新类型，如BigIntegers，Tuples，并对Tail recursion 的情况作了优化。&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;.NET 4.0在性能上做了进一步的提高&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1. .NET 4.0提高了并行计算的线程性能。&lt;/P&gt;
&lt;P&gt;2. .NET 4.0中加入了后台垃圾回收功能（Background GC），使得垃圾回收时发生的延迟现象明显减少。&lt;/P&gt;
&lt;P&gt;3. 此外，对于Profiler，.NET 4.0中的Profiler提供更好的CPU采样功能，实时的堆分析和对象引用图表。&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;.NET 4.0帮助开发人员减少程序中的bug&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1. .NET 4.0支持dump debugging，可以提供重现crash的信息，使开发人员对crash的情况的调试更有效。&lt;/P&gt;
&lt;P&gt;2. .NET 4.0支持64位的混合模式调试，使得托管代码和非托管代码之间的调试更方便。&lt;/P&gt;
&lt;P&gt;3. .NET 4.0提供Code Contracts，可以通过编程方式制定代码规则。&lt;/P&gt;
&lt;P&gt;4. .NET 4.0对一些常见异常，如除零计算、Access Violation等，作了一些特别处理，使得这些问题在新的运行时中更难出现。&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;除了CLR相关的改进，.NET 4.0在Data，WCF，Windows Client等等方面都有很多新的功能。大家有兴趣的话可以看看.NET 4.0的海报（&lt;A href="http://brad_abrams.members.winisp.net/Projects/PDC2008/DotNet4Poster/DotNetFramework4PosterDeepZoom.htm" mce_href="http://brad_abrams.members.winisp.net/Projects/PDC2008/DotNet4Poster/DotNetFramework4PosterDeepZoom.htm"&gt;在线查看版&lt;/A&gt;/&lt;A href="http://tinyurl.com/PDC2008-NETFX4PDF" mce_href="http://tinyurl.com/PDC2008-NETFX4PDF"&gt;张贴版&lt;/A&gt;），相信会给大家一个完整的概念。 : )&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9068908" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>CodePlex开源版Tlbimp.exe的两个新功能</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2008/10/15/codeplex-tlbimp-exe.aspx</link><pubDate>Wed, 15 Oct 2008 10:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9000436</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/9000436.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=9000436</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;昨天，我们开发团队在&lt;A href="http://www.codeplex.com/"&gt;CodePlex&lt;/A&gt;上发布了一个Tlbimp的新版本。关于Tlbimp的用途介绍这里就不多说了，大家有兴趣的话可以参看半个月前写的&lt;A class="" href="http://blogs.msdn.com/silverlightshanghai/archive/2008/09/25/tlbimp-exe-codeplex.aspx" mce_href="http://blogs.msdn.com/silverlightshanghai/archive/2008/09/25/tlbimp-exe-codeplex.aspx"&gt;《Tlbimp.exe在CodePlex上开源啦！》&lt;/A&gt;一文。半个月后，我们根据用户最迫切的需求，给Tlbimp的功能作了小小的改进，并将这个最新版本再次发布在CodePlex上。主要的新功能包含了两个新的选项：&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;/v2&lt;/STRONG&gt;：当用户在命令行中输入 &amp;gt;tlbimp.exe Foo.tlb /v2&amp;nbsp;开启/v2选项时，Tlbimp将会使用最新的规则来转换类型库。新的规则大多解决了老版本Tlbimp因为技术限制而对类型库进行的转换不够正确的问题。不直接应用这些新规则，主要是考虑到兼容性的问题，但我们建议用户能够尽量使用新的规则，以使生成的interop assembly尽可能正确，减少后续为得到正确行为而增加的开发开销。在这个版本中加入的一个新的规则是将类型库的struct中的VARIANT_BOOL转换成bool类型。而不用/v2，Tlbimp将按照老版本的规则，将VARIANT_BOOL转换成short。&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;&lt;STRONG&gt;/PreserveSig&lt;/STRONG&gt;：使用这个选项，Tlbimp将不会把标有[out, retval]参数类型转换成返回值，而是保留其参数性质，并为方法添加PreserveSig属性。&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;最新版的开源Tlbimp可以在其&lt;A href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579"&gt;网站&lt;/A&gt;上下载到。如果大家有什么问题、建议，也可以通过该网站向我们提出。&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9000436" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>Visual Studio 2010及.NET框架4.0前景瞻望</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2008/10/06/visual-studio-2010-net-4-0.aspx</link><pubDate>Mon, 06 Oct 2008 10:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8977539</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/8977539.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=8977539</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial&gt;这是国庆长假以后的第一篇博文。不知道大家这个国庆过得怎么样？近几个月，我们的开发团队一直在进行.NET框架4.0的设计开发，工作正在如火如荼的进行中。就在国庆期间，微软公布了我们在Visual Studio 2010及.NET框架4.0设计开发时的一些理念和规划想法。我想在这里和大家分享一下。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Arial&gt;&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;从一个较高的角度来讲，我们在&lt;/SPAN&gt;Visual Studio 2010&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;和&lt;/SPAN&gt;.NET&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;框架&lt;/SPAN&gt;4.0&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;中主要关注以下几个关键领域：&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;&lt;FONT size=3&gt;显著的改善开发人员在核心领域的开发体验&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;&lt;FONT size=3&gt;支持最新的平台，包括客户端、网络、服务器和各类设备&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;&lt;FONT size=3&gt;旨在简化开发人员对不同应用程序类型的开发体验&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;FONT color=#000000&gt;&lt;FONT face=Arial&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;·&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;&lt;FONT size=3&gt;对工具平台进行结构性的改进，以提供更好的调制性和扩展性&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: SimSun; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin"&gt;&lt;FONT face=Arial color=#000000 size=3&gt;以上这些关键领域主要针对在应用程序生命周期中将想法变成产品的开发人员和开发团队所产生的需求，也针对那些要求高质量的、跨多种平台的应用程序的客户而特别设计。&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=ZH-CN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;&lt;FONT face=Arial color=#000000&gt;用最简单的一句话来说，我们要在Visual Studio 2010及.NET框架4.0中，提供一种一致而简单的编程体验，而不管所构建的应用程序的类型是什么。&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=ZH-CN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;&lt;FONT face=Arial color=#000000&gt;至于Visual Studio 2010及.NET框架4.0中具体有什么新功能，我们会在接下来的几个月中逐一介绍。而部分新的功能，也能在即将发布的Visual Studio 2010 CTP版本中抢先体验到。&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=ZH-CN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: SimSun; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;&lt;FONT face=Arial color=#000000&gt;不管你对你手上的开发工具和技术有任何的抱怨或者建议，都欢迎在这里留下你的声音。无论怎样，更好的开发体验，始终是我们这几个月以及接下来的几个月中希望努力做得更好的。 : )&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8977539" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>Tlbimp.exe在Codeplex上开源啦！</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2008/09/25/tlbimp-exe-codeplex.aspx</link><pubDate>Thu, 25 Sep 2008 09:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8964716</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/8964716.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=8964716</wfw:commentRss><description>&lt;P&gt;这是我们这里的CLR Interop开发团队在开源网站&lt;A target=_blank href="http://www.codeplex.com/" mce_href="http://www.codeplex.com"&gt;codeplex.com&lt;/A&gt;上发布的第二个开源工具了。Tlbimp.exe，经常在COM与托管代码之间做编程开发的开发人员应该会对这个工具比较熟悉。它是一个将COM的type library转换生成托管的程序集（interop assembly），供托管代码进行调用的一个非常实用的工具。生成的Interop assembly中包含了与所转换的COM类型库相对应的元数据，这样托管代码的开发人员就可以把它当成一个普通的托管代码程序集来使用，并用与调用托管类型相同的方式在托管项目中调用COM的类型而不感觉到差异。&lt;/P&gt;
&lt;P&gt;由于现有的Tlbimp完成的是从输入到输出的“一步式”工作，内部许多默认的转换或许不能很好的满足所有开发人员的要求。因此，我们将Tlbimp的代码于开发团队在Codeplex上的&lt;A target=_blank href="http://www.codeplex.com/clrinterop" mce_href="http://www.codeplex.com/clrinterop"&gt;网站&lt;/A&gt;公布，供开发人员阅读和参考。开发人员更可以根据自己的需要修改并扩展代码。而且，这只是我们对开源的Tlbimp发布的第一个版本，其功能和.NET Framework 3.5 SDK中的Tlbimp.exe一致。我们还计划在不久的将来发布第二个版本，提供更多实用的新功能，方便开发人员对输出结果进行定制。如果你有任何的建议，欢迎通过这个blog或者Codeplex网站的留言告诉我们。&lt;/P&gt;
&lt;P&gt;现在就&lt;A target=_blank href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579" mce_href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=17579"&gt;点击这里&lt;/A&gt;下载Tlbimp的源代码吧！&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8964716" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item><item><title>现在就下载开源工具P/Invoke Interop Assistant -- 使用P/Invoke中进行签名转换的好帮手</title><link>http://blogs.msdn.com/silverlightshanghai/archive/2008/06/17/p-invoke-interop-assistant-p-invoke.aspx</link><pubDate>Tue, 17 Jun 2008 09:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8609555</guid><dc:creator>SilverlightShanghai</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/silverlightshanghai/comments/8609555.aspx</comments><wfw:commentRss>http://blogs.msdn.com/silverlightshanghai/commentrss.aspx?PostID=8609555</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120" mce_href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120"&gt;&lt;FONT color=#006bad&gt;P/Invoke Interop Assistant&lt;/FONT&gt;&lt;/A&gt;是一款帮助使用P/Invoke（及reverse P/Invoke）的开发人员进行托管代码与非托管代码之间签名转换的小工具。在一月份的&lt;A href="http://msdn.microsoft.com/en-us/magazine/cc164193.aspx" mce_href="http://msdn.microsoft.com/en-us/magazine/cc164193.aspx"&gt;&lt;FONT color=#006bad&gt;MSDN杂志的网站&lt;/FONT&gt;&lt;/A&gt;上，我们曾经发布过它的第一个版本。经过整个团队的努力，现在我们终于把它搬上微软的开源网站&lt;A href="http://www.codeplex.com/" mce_href="http://www.codeplex.com/"&gt;&lt;FONT color=#006bad&gt;CodePlex&lt;/FONT&gt;&lt;/A&gt;，和更多的开发人员共享它为开发工作带来的便捷，并提供全部的源代码，供大家参考和利用。&lt;/P&gt;
&lt;P&gt;经常接触Interop marshalling的开发人员一定深刻的体会到marshalling的属性及规则的复杂性，而这些属性和规则也让很多刚刚接触这块领域的开发人员望而却步。对于COM Interop，我们有tlbimp.exe以及tlbexp.exe这样实用的小工具来帮助开发人员进行自动的签名转换并生成相应的文件，而对于P/Invoke来说，在这块领域几乎是片空白。这也就是我们为什么萌生出了开发P/Invoke Interop Assistant的想法。&lt;/P&gt;
&lt;P&gt;P/Invoke Interop Assistant包含两个命令行的工具，分别对托管代码到非托管代码的签名转换进行文件批处理，以及其反向的批处理转换。它还包含了一个UI的工具，涵盖了所有的功能。使用者可以给工具指定一个有效的托管程序集文件，P/Invoke Interop Assistant就会把其中的托管代码的签名转换成非托管代码的签名显示出来，并对签名中可能出现问题的地方作出提示。对于反向转换，只要用户输入有效的非托管代码，或者在工具自带的数据库中进行选择，P/Invoke Interop Assistant就能将其转换成对应的托管代码签名。用户只要把转换后的结果进行复制，粘贴到自己的代码文件中就可以进行使用了。&lt;/P&gt;
&lt;P&gt;关于更多P/Invoke Interop Assistant的介绍和使用方法，可以参阅随工具附带的参考手册。&lt;/P&gt;
&lt;P&gt;要提一下的是，这个工具的开发在美国（由不同产品组的两个开发人员合作），测试及项目管理都在中国进行。这样的开发测试管理模型在我们的研发团队中其实并不多见，毕竟由于时空以及时区的不同，会给项目在交流上带来很多阻扰。好在团队成员之间默契的合作使这个工具顺利交付，并尽早的和开发社区共享。我们真切的希望可以得到更多开发人员的反馈，帮助我们对工具进行改进，使它在实际开发过程中能够发挥更大的作用！&lt;/P&gt;
&lt;P&gt;现在就去&lt;A href="http://www.codeplex.com/clrinterop" mce_href="http://www.codeplex.com/clrinterop"&gt;&lt;FONT color=#006bad&gt;我们的CodePlex主页&lt;/FONT&gt;&lt;/A&gt;下载&lt;A href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120" mce_href="http://www.codeplex.com/clrinterop/Release/ProjectReleases.aspx?ReleaseId=14120"&gt;&lt;FONT color=#006bad&gt;P/Invoke Interop Assistant&lt;/FONT&gt;&lt;/A&gt;吧！&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8609555" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/silverlightshanghai/archive/tags/CLR_B065FB95_/default.aspx">CLR新闻</category></item></channel></rss>