Microsoft cho phép tham khảo mã nguồn .NET Framework


Vừa qua, Microsoft đã cho phép các lập trình viên được tham khảo mã nguồn của bộ MS.NET Framework 3.5, và người dùng Visual Studio 2008 có thể debug từng bước vào các hàm của MS.NET. Đây là một quyết định tuyệt vời đối với các nhà phát triển trên nền Microsoft.NET, nó cho phép xem cách mà bộ nền tảng phần mềm này được phát triển, cũng như cách thức làm việc của các thư viện trong đó.
Hiện tại, người dùng VS 2008, ngoại trừ phiên bản Express đã có thể xem và debug các phần sau đây:
– Các lớp cơ sở (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 and System.Xml)
Microsoft cũng đang đưa thêm các gói thư viện khác như LINQ, WCF và Workflow.

Các bước cấu hình
1. Cài đặt
Visual Studio 2008 QFE. Bản cập nhật này cho phép bạn tải về các file mã nguồn của .NET Framework.
Trong trường cài đặt bị lỗi, hãy thử bỏ đĩa DVD cài đặt Visual Studio 2008 vào ổ rồi chạy lại file cập nhật.

2. Bật Visual Studio 2008, vào phần Tools > Options > Debugging > General, nếu đang chạy dưới profile Visual Basic, bạn sẽ phải đánh dấu vào ô Show All Settings ở góc dưới bên trái hộp thoại Options.
– Chọn ô Enable Source Server Support
– Bỏ chọn ô Enable Just My Code

 

3. Tiếp tục vào phần Symbols và đặt các giá trị như sau:
– Đặt symbol file locationhttp://referencesource.microsoft.com/symbols
– Đặt thư mục chứa file cache, thư mục này phải có thể đọc/ghi bởi người dùng
– Đánh dấu vào ô Search the above locations only when symbols are loaded manually

 

Ok, vậy là xong, bây giờ chúng ta sẽ thử dùng xem sao

Tạo một project dạng Windows Form bằng VB (hoặc C#, ASP.NET hay WPF), tạo một form đơn giản như sau: 
 

Nhấp đúp vào nút Button1 để thêm event handler, và bạn thêm vào giống như sau:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button1.Text = "Hello .NET source code"
    End Sub

Đặt breakpoint(nhấn F9) trong hàm:
 

Nhấn F5 để debug chương trình, nhấn vào Button1 để chạy hàm sự kiện, khi chương trình tạm dừng tại breakpoint, mở cửa sổ Call Stack, bạn sẽ thấy danh sách các thư viện đã được nạp, bấm phải chuột vào một dòng bắt đầu với System.Windows.Forms.dll! và chọn Load Symbols để bắt đầu tải mã nguồn.
Quá trình tải mã nguồn có thể nhanh hoặc chậm tùy thuộc vào thư viện bạn đang tải, với System.Windows.Forms thì nó có dung lượng khoảng 10MB. Khi đang tải bạn sẽ nhìn thấy dòng sau trên status bar:

Trong quá trình tải, bạn sẽ nhìn thấy cửa sổ license, bấm vào Accept để tiếp tục: 

 

Sau khi quá trình download hoàn tất, bạn sẽ có thể bắt đầu với việc tham khảo và debug vào mã nguồn của .NET Framework.
 

Danh sách các DLL đã có thể debug mã nguồn
Mscorlib.DLL
System.DLL
System.Data.DLL
System.Drawing.DLL
System.Web.DLL
System.Web.Extensions.DLL
System.Windows.Forms.DLL
System.XML.DLL
WPF (UIAutomation*.dll, System.Windows.DLL, System.Printing.DLL, System.Speech.DLL, WindowsBase.DLL, WindowsFormsIntegration.DLL, Presentation*.dll, some others)
Microsoft.VisualBasic.DLL

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s