摘要:公佈.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中的整合偵錯支援。
希望本文對你有所幫助,
Scott