Вcтречаем новый сайт сервера символов и исходного кода .NET Framework 4.5.1

Многим уже известно, что 24-го февраля текущего года компания Microsoft запустила новый сайт содержащий исходный код и символы отладки для новейшей версии .NET Framework 4.5.1. В данной статье я постараюсь описать все новшества, а также преимущества, которые может получить разработчик от этого. Начну с самого главного и важного: больше не придётся декомпилировать код .NET Framework при помощи декомпиляторов, таких как .NET Reflector или JetBrains dotPeek. А поскольку компиляция – процесс однонаправленный, то ни один, даже самый совершенный декомпилятор, не может дать полную информацию об исходном коде. Весь исходный код с оригинальными комментариями доступен по старому адресу сервера символов referencesource.microsoft.com. Но веб-сайт полностью новый. Есть возможность проссматривать код и искать нужный код в онлайн режиме (при помощи браузера). Для предоставления подобных возможностей используется проект Roslyn.



Для работы в оффлайн режиме можно скачать проект исходного кода для просмотра и навигации по нему. Скомпилировать его бует нельзя, так как в нём отсутствуют некоторые критически важные составляющие.



Если на машине установлен ReSharper, советую временно отключить его при открытии и просмотре проекта исходного кода. Иначе, процесс навигации и просмотра будет сильно тормозить, из-за большого объёма кода.



Как видно из рисунка показанного выше, на примере класса HttpRuntime, можно проссматривать исходный код с оригинальными комментариями. Можно заменить стандартную навигацию Visual Studio по коду .NET используя расширение Ref12.



Тогда при нажатии клавиши F12 на типах из библиотеки FCL бутет открываться ссылка в браузере с соответствующим кодом.



Действия для настройки Visual Studio для отладки исходного кода .NET Framework аналогичны тем, которые были показаны раньше, в этой статье.



Если всё сделать правильно, то можно будет войти в исходный код.



Ну, и адрес сервера символов отладки должен быть выставлен правильно.



Теперь, что касается онлай навигации и просмотра. Есть несколько способов поиска нужного кода. Поиск по имени типа.



Для более точного поиска нужно использовать кавычки,


чтобы совпадений было мало, иначе будет больше.



Для того, чтобы искать нужные сборки, надо использовать префиксassembly.



Можно использовать также другие префиксы для фильтрации: type, class, struct, interface, enum, delegate, method, property, event, field, file.



Также, можно искать по нескольким ключевым словам.


Ну и несколько других способов фильтрации: по типу файла (.cs или .vb), по пути к директории и по GUID (например 917B14D0-2D9E-38B8-92A9-381ACF52F7C0). Как можно было догадаться, имея такую мощную систему поиска и фильтрации, можно будет вставить URL результатата, например при ответе на форуме или в блоге и т.п. И тогда сразу можно будет прямо перейти на нужное место.



Нажимая на имена типов можно перейти к их определению (Go To Definition). Можно найти все ссылки на текущий тип (Find All References), выделять локальные переменные в файле (Highlight References).



Есть возможности навигации: по файлу кода (Document Outline), проекту (Project Explorer) и по пространству имён (Namespace Explorer ).



На этом всё. Советую также посмотреть Browse the .NET Reference Source на Channel 9. Выводы по всему вышесказанному уже были сделаны здесь. А что касается доступности символов отладки старых версий .NET Framework, то вопрос по этому поводу остаётся открытым.
Andrey
26.03.2014 16:37
А есть выложенный подобным же образом исходный код для .NET 3.5 SP1?
26.03.2014 16:46
К сожалению нет.