公布.NET 框架库源代码
【原文地址】Releasing the Source Code for the .NET Framework Libraries
【原文发表日期】 Wednesday, October 03, 2007 9:27 AM
我的团队一直致力实现的一件事情是,能让.NET 开发人员下载和浏览.NET 框架库的源代码,并且轻松地促成对它们的调试支持。
今天我非常高兴地宣布,我们将在今年晚些时候发布.NET 3.5 和 VS 2008时,同时提供源代码。
我们将首先提供.NET 基本类库(System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), 和WPF (System.Windows)的源代码(内含源文件注释)。然后我们将在之后的几个月内公布其他库的代码,包括 WCF,Workflow,和 LINQ。这些源代码将在 Microsoft Reference License (MS-RL))许可下发布。
你可以通过一个单独的安装来下载.NET 框架库源代码,这允许你在本机上以任何文本编辑器来浏览。我们也将在VS 2008内提供源代码的集成调试支持。
Visual Studio 2008的集成调试支持
VS 2008的最终版将支持配置调试器从微软拥有的web服务器上动态下载.NET 框架库调试器字符以及相关的源代码的能力。你将能够配置一次性完全下载.NET 框架库调试器字符,或按需手工获取:
当你调试 .NET应用,触发你的代码中的断点时,你现在将能看到调试器call stack包含了你应用中所用的.NET 框架库类和方法的详细文件和行数信息:
在上面的截图中,你可以看到我们对GridView1.DataBind()设置了断点,之前,根本没有办法钻入这个DataBind()方法,看它是怎么实现的。
现在在VS 2008中,你将能够按F11(单步调试),在调试器中钻入.NET 框架源码实现:
VS 2008将包括按需从微软自动获取相关的.NET框架库源代码文件的支持。这意味着,在我们启动调试器之前,上面的ASP.NET GridView和 BaseDataBoundControl类的源代码可以还没有安装在当前机器上。在我们按F11,单步调试进它们的实现时,VS可以自动地从微软下载相关的源代码,然后在IDE中打开。
通过动态地下载源代码文件,我们还可以确保相关的源代码文件与你机器上的.NET框架的特定版本相一致。譬如,你在机器上安装了GDR或服务包补丁,我们将保证下载与之相应的源代码文件。
除了单步调试进入.NET框架的代码外,我们还可以在call stack上往回走进入.NET框架的源代码。譬如,在上面的场景中,我也可以在call stack上双击System.Web.UI.Page 类的私有ProcessRequest 方法来浏览其实现:
我们也可以再往回走,进入mscorlib 程序集中的System.Threading.ThreadPool实现(该类控制运行我们页面的线程):
注意,在前面的2个屏幕截图中, VS 调试器的 "Locals" 和 "Watch" 窗口的功能在你的代码以及.NET框架代码中是完全支持的。
结语
能够访问源代码,以及.NET框架库的调试器集成对.NET 开发人员来说是非常有价值的。能够单步调试和浏览源代码应该对.NET框架库是如何实现的提供深入的理解,转而允许开发人员打造更棒的应用,更好地利用它们。
想进一步了解我们的源代码发布计划以及了解调试器集成的工作原理,请去看一下Scott Hanselman和Shawn Burke最近录制的这个播客。主管我的团队里源代码项目的Shawn还将在本星期的稍后发布一个非常酷的Channel9录像,展示如何使用VS 2008中的集成调试支持。
希望本文对你有所帮助,