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-файлом:

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

Итоги

Это всего-лишь несколько примеров изучения нового программного обеспечения. Вдобавок, чтобы вам было проще понять систему, мы хотим предоставить инструменты, которые позволяют развивать и исправлять архитектуру. Данная поддержка включает возможность описывать логические уровни и применять их с новыми изменениями.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=23699