Продолжается подписка на наши издания! Вы не забыли подписаться?

Раскрытие исходного кода библиотек .NET Framework

Автор: Scott
Опубликовано: 22.10.2008

Одна из вещей, над которыми работала моя команда – возможность для .NET-разработчиков скачивать и просматривать исходный код библиотек .NET Framework, и легко использовать отладку.

Сегодня я рад сообщить, что мы предоставим эту возможность вместе с выпуском .NET 3.5 и VS 2008.

Мы начнем с предоставления исходного кода (с комментариями) .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text и т.д.), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml) и WPF (System.Windows). В ближайшие месяцы вслед за этим мы увеличим число доступных библиотек (включив в их число WCF, Workflow и LINQ). Исходный код будет открываться под Microsoft Reference License (MS-RL).


Рисунок 1.


Рисунок 2.


Рисунок 3.

Вы сможете скачать исходный код библиотек .NET Framework с помощью отдельного инсталлятора (позволяющего использовать любой текстовый редактор для локального просмотра кода). Кроме этого, мы предоставляем интегрированную поддержку отладки в VS 2008.

Интегрированная в Visual Studio 2008 поддержка отладки

Финальная версия VS 2008 уже поддерживает возможность сконфигурировать отладчик для динамической загрузки отладочных символов .NET Framework (и соответствующего исходного кода) с Web-сервера 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.


Рисунок 4.

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


Рисунок 5.

Кроме углубления в код .NET Framework, можно двинуться по стеку вызовов назад, опять же в исходники .NET Framework. Например, в приведенном выше сценарии я мог бы дважды щелкнуть по стеку вызовов и увидеть private-метод ProcessRequest в классе System.Web.UI.Page:

Можно двинуться дальше и перейти в реализацию System.Threading.ThreadPool из mscorlib (которая управляет потоком нашей страницы):

Обратите внимание, на двух предыдущих рисунках показано, что окна "Locals" и "Watch" полностью поддерживаются как для вашего кода, так и для кода .NET Framework.

Заключение

Наличие доступа к исходному коду и интеграция отладчика с библиотеками .NET Framework будут действительно полезны для .NET-разработчиков. Возможность просмотра исходников предоставит гораздо лучшее понимание реализации библиотек .NET Framework, и позволит разработчикам создавать лучшие приложения и лучше их использовать.

Подробнее узнать о наших планах раскрытия исходного кода и о том, как работает интеграция с отладчиком, можно узнать из подкаста http://www.hanselminutes.com/default.aspx?showid=101, который недавно записали Скотт Хансельман (Scott Hanselman) и Шон Барк (Shawn Burke). Шон (который вел этот проект) также собирается опубликовать видеозапись на Channel9 (http://channel9.msdn.com/), где покажет использование интегрированной поддержки отладки в VS 2008.

Надеюсь, это вам поможет.

Scott


Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.

Copyright © 1994-2016 ООО "К-Пресс"