Разкриване на изходния код на библиотеките
Автор: Скот
Едно от нещата, върху които моят екип работи, е възможността за .NET разработчиците да изтеглят и преглеждат изходния код на библиотеките на .NET Framework и лесно да използват отстраняване на грешки.
Днес имам удоволствието да съобщя, че ще предоставим тази възможност заедно с пускането на .NET 3.5 и VS 2008.



Интегрирана поддръжка за отстраняване на грешки в Visual Studio 2008
Окончателната версия на VS 2008 вече поддържа възможността за конфигуриране на дебъгера за динамично зареждане на символи за отстраняване на грешки на .NET Framework (и свързан изходен код) от уеб сървър на Microsoft. Можете да конфигурирате зареждането на символи на .NET Framework като еднократно изтегляне или като ръчно изтегляне при поискване.
Когато дебъгвате .NET приложения, като зададете точки на прекъсване във вашия код, можете да видите стека за извикване на дебъгера, който съдържа подробна информация за файла и номера на реда за класове и методи на .NET Framework във вашето приложение.
На снимката по-горе можете да видите точката на прекъсване на извикването GridView1.DataBind(). Преди това беше невъзможно да се задълбочим в метода DataBind() и да видим как е внедрен.
Сега, във VS 2008, можете да натиснете F11 (Step Into) и да се потопите в изходния код на .NET Framework с помощта на дебъгера (Фигура 3).
VS 2008 ще добави поддръжка за автоматично извличане на изходни файлове на .NET Framework от Microsoft при поискване. Това означава, че изходният код за класовете ASP.NET GridView и BaseDataBoundControl (вижте фигурата по-горе) не трябва да присъства на машината преди стартиранедебъгер. Вместо това, когато натиснете F11, VS може автоматично да изтегли изходните файлове от сайта на Microsoft и да ги отвори в IDE.

С динамичното зареждане на файлове можете също така да гарантирате, че съответните изходни файлове винаги съответстват на конкретната версия на .NET Framework, инсталирана на вашата машина (например, ако имате инсталиран GDR или Service Pack, съответните изходни файлове ще бъдат заредени).

В допълнение към гмуркането в кода на .NET Framework, можете да се върнете обратно в стека на повикванията, отново в източниците на .NET Framework. Например в скрипта по-горе мога да щракна двукратно върху стека на повикванията и да видя частния метод ProcessRequest в класа System.Web.UI.Page:
Можем да продължим и да преминем към внедряването на System.Threading.ThreadPool от mscorlib (което управлява нишката на нашата страница):
Обърнете внимание, че предишните две фигури показват, че прозорците „Locals“ и „Watch“ се поддържат напълно както за вашия код, така и за кода на .NET Framework.
Заключение
За да научите повече за нашите планове за издаване и как работи интеграцията на дебъгера, вижте подкаста http://www.hanselminutes.com/default.aspx?show >
Надявам се това да ви помогне.