以文本方式查看主题

-  曙海教育集团论坛  (http://www.sun4.cn/bbs/index.asp)
--  Microsoft.NET Framework  (http://www.sun4.cn/bbs/list.asp?boardid=68)
----  Microsoft.NET Framework 开放代码可读权限  (http://www.sun4.cn/bbs/dispbbs.asp?boardid=68&id=2537)

--  作者:wangxinxin
--  发布时间:2010-12-13 14:22:22
--  Microsoft.NET Framework 开放代码可读权限

期待已久的.NET Framework终于在本周开放代码可读权限了,微软在MS-RL协议下终于公开了.NET Framework源代码,我们只可以自由查看,不允许直接进行修改。具体来说,你现在可以查看和调试下面的.NET框架库的源代码:

 

 

  • .NET 基类库(包括 System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading等)
  • ASP.NET (System.Web, System.Web.Extensions)
  • Windows Forms (System.Windows.Forms)
  • Windows Presentation Foundation (System.Windows)
  • ADO.NET and XML (System.Data 和 System.Xml)

正在向上面的类库列表中添加其他的框架库(包括LINQ, WCF和Workflow)过程之中。在接下来的几周或者几个月之内它们将可用。

 

在Visual Studio 2008中启用参考源代码访问

 

在Visual Studio 2008中启用.NET框架库源代码访问只要几分钟就可以配置完成。Shawn Burke在这里有一篇很详细的博客,说明了如何启用源码支持的具体步骤。

如果你在配置时遇到了麻烦或者有问题的话,请在MSDN这里Reference Source Forum论坛提问。

 

调试进入.NET框架库源代码

 

在按Shawn上面的博客中的步骤配置完成之后,你就可以动态地加载.NET框架库的调试符号并且调试进入到源码之中。在你调试框架库代码的过程中,VS 2008将会从MSDN源码服务器上按需下载符号和源码文件:

图片点击可在新窗口打开查看

开发者的注释也包括在源文件中。在上面的例子中,你可以看到Control基类中的Dispose方法的注释例子。

有时,你会看到一些注释引用了我们的缺陷/工作项跟踪数据库(bug/work-item tracking database)中以前的缺陷跟踪号码,这些号码提供了关于某个特定编码决定的额外历史信息。例如,上面的注释指出,某个特定的成员变量,为保持与框架的一个老版本的向后兼容性,不该设置成null,并且指出了因此而修正的一个向后兼容性缺陷。

 

参考许可(Reference License)

 

.NET 框架源码是在一个只读参考许可(read-only reference license)下发布的。去年十月份我们宣布将要公布源码的时候,一些人对他们查看源码的的潜在影响有些顾虑。为了澄清和对这些顾虑作一个说明,我们对许可作了一个小小的改动,特别指出这个许可不适用于在拥有和.NET框架“相同或者本质上相同的特性或者功能(the same or substantially the same features or functionality)”的非Windows平台下开发软件的开发者。如果你开发的软件是针对Windows平台的,那么你就可以查看这些源码,即使那些软件拥有和.NET框架“相同或者本质上相同的特性或者功能”。

结语

我们认为,提供源码访问和.NET框架库的调试集成对.NET开发者来说是非常有价值的。能够单步调试和查看源码对.NET框架库是如何实现的应该会提供一个更好的认识,然后使你开发出更好的应用程序,更好地应用.NET框架。