Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Один из интереснейших архитектурных инструментов Visual Studio 2010 – Dependency Graph, который используется для анализа кода и визуализации связей между различными артефактами кода приложений (классами, интерфейсами, пространствами имен и т.п.), как для исходного кода, так и для бинарного.
Об этом инструменте написано много в источниках, которые я давал в прошлом сообщении, в т.ч. и в отличном материале Jennifer Marsman:
Будучи отличным (безусловно, “одним из”) и очень наглядным средством документирования кода, логично что DGML можно генерировать и в процессе сборки (batch build) приложений. Об этом можно прочитать в материале Generate Graph Documents for Batch Processing.
Однако, далеко не все обращают внимание на то, что используемый для этого язык DGML - Directed Graph Markup Language, может применяться для достаточно широкого спектра задач. Да и сам по себе представляет собой крайне интересное явление :)
(забавная илюстрация по использованию мыши для работы с Dependency Graph в VS 2010, описанная в виде DGML)
Начнем с того, что существует спецификация этого языка, представленная в виде соответствующей XML-схемы:
В свою очередь, документация MSDN включает обширный материал
включающий описание элементов DGML
Как следствие, генерировать DGML для дальнейшей визуализации в Visual Studio (например, как часть средств визуализации требований, топологии инфраструктуры для развертывания приложений и т.п.) можно хоть в PowerShell ;)
И уже вовсю появляются инструменты, использующие этот мощный инструмент. Например,
- Tool for generating DGML graphs showing why your object can’t be collected (VisualGCRoot)
- TFS Work Items Visualization tool, отображающий заивисимости между проектными артефактами, кстати, включая changesets (!)
Наверное, сложно найти .NET-разработчика, не знающего Dotfuscator :) а вот то, что его авторы из PreEmptive Solutions используют DGML наверняка будет для многих новостью.
Ну а для того, чтобы вы в полной мере могли почуствовать мощь DGML не только на уровне “лёгкого введения” , но и в более “продвинутой” форме -
- c удовольствием даю ссылку на демонстрационные DGML-файлы и блестящую 10-минутную видео-демо по использованию DGML, которая вместе с другими интересными материалами по DGML доступна в маленьком. но очень интересном блоге.
P.S. Мне приходилось не раз до моего прихода в Microsoft слышать, что сейчас уже редко появлется что-то действительно принципиально новое в средах разработки, полезное и для архитекторов и для разработчиков. Как мне кажется, DGML один из примеров того, что это серьезное заблуждение. По крайней мере тогда, когда мы говорим о Visual Studio ;) Ну а о других принципиально новых инструментах, например Layer Diagram, появившейся в Visual Studio 2010, мы поговорим уже в следующий раз ))