Как получить диаграмму зависимостей между моими проектами C # - PullRequest
8 голосов
/ 25 августа 2010

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

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

Ответы [ 7 ]

3 голосов
/ 25 августа 2010

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

изменить , чтобы добавить:

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

2 голосов
/ 25 августа 2010

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

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

1 голос
/ 01 сентября 2010

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

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

и т.д ...

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

NDepend code graph dependency diagram

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

1 голос
/ 25 августа 2010

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

1 голос
/ 25 августа 2010

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

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

0 голосов
/ 25 августа 2010

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

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

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

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

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

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

0 голосов
/ 25 августа 2010

понимаю, было предложено мне сегодня утром (:

http://www.scitools.com/

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

...