[Перевод] VS 2010: Граф зависимостей и DGML
Чем ближе мы подбираемся к запуску VS2010, те больше я рассказываю про новые понравившиеся возможности, которые появились в 2010 версии. В данном посте, я расскажу о графах зависимостей и поддержке DGML.
Генерация графов
Я, почти, уверен, что вы присоединились к команде разработчиков, а не создавали ее. Более того, вы не получили идеальную документацию или архитектуру проектов. Так как же понять с чем мы имеем дело? Вот тут и помогут нам графы зависимостей.
Генерация графа зависимостей происходит через меню Architecture>Generate Dependency Graph Generating:
В нашем случае, мы рассмотрим диаграмму пространств имен приложения Tailspin. VS пройдет по всем бинарникам приложения в поисках всех зависимостей и сгенерирует DGML-файл. Вид верхнего уровня начинается с зависимостей пространств имен на высшем уровне (сборке):
Отсюда мы можем передвигаться по зависимостям и углубляться для получения более детальной информации. Наведя курсор на элементы мы получим о них детальную информацию. Наведя на ссылку, вы также получите дополнительную информацию о ее типе (например, вызов метода). Нажав на кнопку расширения, мы получим граф, который показывает следующий уровень детализации:
Вы можете продолжать углубляться, в следующем примере, показаны классы пространства имен:
Продолжая двигаться глубже, вы дойдете до исходного кода.
Просмотр архитектуры
Теперь, когда мы имеем визуальное представление системы, мы можем воспользоваться Architectural Explorer для изучения нашего приложения. Активировать просмоторщик очень просто:
Окно просмоторщика позволяет вам углубляться в содержимое, используя фильтрование или переходы. В нашем случае, мы будем искать класс, который содержит "Model" в имени, а потом перейдем к его объявлению:
Вы можете скрыть окно в любой момент и продолжить работаь с ним позже.
DGML
Граф зависимостей хранится в формате XML, используя DGML DOM. DGML очень прост в использовании (вот простой пример). Если мы откроем граф Tailspin приложения то увидим XML:
Все это делает систему невероятно мощной, вы можете воспользоваться DGML-просмоторщиком в Visual Studio для открытия любого DGML-документа, включая те, которые сгенерированные сторонними интсрументами. Например, VS предоставляет файл помощи, который объясняет как пользоваться мышкой в DGML-просмоторщике. Этот файл и сам является DGML-файлом:
Существуют много простых способов расширить систему. например, мы внедрили сторонний компонент, который расширяет информацию графа зависимостей данными профайлинга в реальном времени.
Итоги
Это всего-лишь несколько примеров изучения нового программного обеспечения. Вдобавок, чтобы вам было проще понять систему, мы хотим предоставить инструменты, которые позволяют развивать и исправлять архитектуру. Данная поддержка включает возможность описывать логические уровни и применять их с новыми изменениями.
Дополнительные материалы:
Автор - Jason Zanders