2010-08-25 3 views
8

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

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

ответ

1

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

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

и т.д ...

Это все объяснил here.

NDepend code graph dependency diagram

NDepend также предлагает dependency structure matrix (DSM) и путь к query dependencies with C# LINQ queries.

1

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

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

+0

Вы предлагаете вручную вводить зависимости в UML-инструмент? Это немного ручная работа, которую я бы скорее не сделал. – Rohith

+0

Вам не нужно создавать зависимости, если инструмент будет генерировать их для импорта при импорте. Я не могу говорить о возможностях каждого инструмента. – duffymo

0

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

http://www.scitools.com/

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

0

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

0

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

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

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

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

Если вам нужна помощь? А теперь позвольте мне

[Update] Этот плагин теперь доступны в форме в Visual Studio Add-In

2

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

Существует пошаговое руководство по MSDN: How to: Generate Dependency Graphs for .NET Code

+0

Похоже, что это граф зависимостей внутри решения. В моем случае каждый компонент представлен одним решением. Я хотел бы получить график, показывающий, какой компонент зависит от какой части другого компонента. Таким образом, это зависимости между решениями, но с маркером, на решение которого зависит конкретная зависимость. – Rohith

Смежные вопросы