Как получить диаграмму зависимостей между моими проектами C#

У меня довольно сложное приложение, которое было разбить на несколько компонентов. Каждый компонент имеет файл решения, который содержит кучу проектов. Поэтому мне нравится думать об этом как о компоненте, в котором есть несколько проектов / DLL. Существует также" общий " компонент. Все остальные компоненты зависят от "общего". Итак, компиляция идет следующим образом: "nant component1.compile" будет составлять "общие" и затем скомпилировать частей1 с частей1 зависит от "общего". Со временем "общий" стал довольно большим. Я почти уверен, что его можно разделить на несколько меньших компонентов. Тогда компоненты должны зависеть только от некоторых из этих меньших, разбитых "общих". Мы надеемся, что это сократит время компиляции для различных компонентов.

поэтому вопрос: Я хотел бы визуализировать зависимость между всеми различными проектами в приложении, а также пометить, к какому компоненту принадлежит проект. Как бы ты это сделал?

7 ответов


инструмент вопросом, что происходит предлагает график зависимостей в сочетании с матрицей зависимостей. По умолчанию вы получите график зависимостей сборок .NET, и он не ограничен сборками только одного решения VS. NDepend интегрирован в VS 2017, 2015, 2013, 2012, 2010, и он может показать любой вид графика на вашем коде, включая:

  • зависимостей между сборками
  • граф вызова метода,
  • зависимости пространств имен внутри VS проект
  • зависимости от типов внутри пространства имен
  • граф наследования классов,
  • график, представляющий классы связи между 2 компонентами

etc...

Это все объяснил здесь.

NDepend code graph dependency diagram

NDepend также предлагает матрица структуры зависимостей (DSM) и зависимости запросов с запросами C# LINQ.


вы могли бы взглянуть на NDepend:http://www.ndepend.com/

редактировать добавить:

Патрик Smacchia, ведущий разработчик NDepend, блоги здесь:http://codebetter.com/blogs/patricksmacchia/default.aspx и написал много на тему componentisation, который вы можете найти полезным.


Если у вас есть доступ к Visual Studio 2010 с конечная, вы можете выбрать Generate Dependency Graph с .

существует пошаговое руководство по MSDN:как: создание графиков зависимостей для кода .NET


Я бы попытался импортировать его в инструмент UML, который мог бы отобразить диаграмму зависимостей между модулями для меня.

есть несколько на рынке, как коммерческих, так и с открытым исходным кодом. Получите тот, который дает вам больше возможностей для вашего бюджета.


Если вы в порядке с информацией об уровне сборки, то вы должны посмотреть на графика надстройка к популярному инструменту отражатель. Он предоставляет график зависимостей уровня сборки и класса.


понять было предложено мне сегодня утром (:

http://www.scitools.com/

но, честно говоря, я не могу дать надлежащего отчета об этом, так как это слишком дорого для меня...


посмотрите на мой бесплатный плагин DSM для .NET Reflector, загружаемый изwww.tom-carter.net

Он позволяет два разных представления о зависимостях: модель развертывания для поиска зависимостей между сборками и архитектурная модель для отображения зависимостей между типами.

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

преимущество a матрица зависимостей заключается в том, что ее гораздо проще анализировать зависимости визуально, чем графы box и line

Если вам нужна дополнительная помощь, дайте мне теперь

[обновление] этот плагин теперь доступен в виде надстройки Visual Studio