Pull to refresh

Визуализация зависимостей между проектами

Reading time 1 min
Views 2.4K
Недавно наткнулся на CodeProject’е на статью Марка Клифтона, посвященную поиску зависимостей между проектами в солюшне. К сожалению самого графа представленная программа не генерилровла и поэтому, будучи вдохновленным подходом Евгения Кучерука к визуализации содержимого Windsor-контейнера решил быстренько реализовать тот же функционал для зависимостей между проектами. Вот, собственно, что получилось.


Прежде всего нужен впечатлительный пример, поэтому я решил показать как выглядят проекты разных IoC-фреймворков (картинки здесь и далее кликабельны):

Unity:




StructureMap:




NInject:




Autofac:




Графы выше сформированы путем анализа проектных файлов и не включают “внешние” зависимости (зависимости вне солюшна). Сформированы они путем разбора .csproj-файлов, т.е. файлов проектов. Далее, когда вся информация получена в отдельный Dictionary, ее можно записать в формате .dot, и отрендерить используя GraphViz.

Спрашивается – зачем это нужно? Точно так же, как IoC контейнер полезно отрендерить чтобы получить обозрение того, что на что завязано, так и обычный солюшн хочется иногда проанализировать на тему связанности. Как например делает тот же NDepend. Также иногда хочется просто увидеть все решение с высоты птичьего полета, и моя тулза поможет сделать именно это.

Ну что, не захотелось попробовать? Если да, то качайте GraphViz, а потом исходники. Интерфейс объяснять не буду, ибо там итак все понятно – все равно вы (как и я) будете кастомизировать программу для ваших целей, так что советую почитать документацию к формату dot. Удачи!

P.S.: Если сгенерите какой-то особо красивый граф солюшна – прошу постить ниже. Заранее спасибо.
Tags:
Hubs:
+5
Comments 8
Comments Comments 8

Articles