如何获得我的C#项目之间的依赖关系图

时间:2010-08-25 09:29:27

标签: c# .net visualization dependencies csproj

我有一个相当复杂的应用程序,它已被分解为多个组件。每个组件都有一个包含大量项目的解决方案文件。所以我喜欢把它想象成一个组件中有多个项目/ dll。还有一个“共同”组件。所有其他组件都依赖于“共同”。所以编译是这样的: "nant component1.compile"将编译“common”然后编译component1,因为component1依赖于“common”。 随着时间的推移,“共同”变得相当大。我很确定它可以分成几个较小的组件。然后组件需要仅依赖于这些较小的,破碎的“共同”中的一些。这有望减少不同组件的编译时间。

所以问题: 我想要可视化应用程序中所有不同项目之间的依赖关系,同时标记项目所属的组件。你会怎么做?

8 个答案:

答案 0 :(得分:3)

您可以查看NDepend:http://www.ndepend.com/

编辑添加:

Patrick Smacchia,NDepend的首席开发人员,博客:http://codebetter.com/blogs/patricksmacchia/default.aspx,并撰写了大量关于组件化的内容,您可能会发现它很有用。

答案 1 :(得分:2)

如果您可以访问Visual Studio 2010 Ultimate ,则可以从Generate Dependency Graph菜单中选择Architecture

MSDN上有一个演练:How to: Generate Dependency Graphs for .NET Code

答案 2 :(得分:1)

我尝试将其导入到UML工具中,该工具可以为我呈现模块之间的依赖关系图。

市场上有几种商业和开源。获得能够为您的预算提供最大功能的那个。

答案 3 :(得分:1)

如果您对汇编级信息没问题,那么您应该查看Graph加载项到热门工具Reflector。它提供装配和类级别依赖图。

答案 4 :(得分:1)

工具NDepend提出了一个与依赖矩阵相结合的依赖图。默认情况下,您将获得.NET程序集的依赖关系图,它不仅限于一个VS解决方案的程序集。 NDepend已整合到VS 2017,2015,2013,2012,2010中,它可以在您的代码上显示任何类型的图表,包括:

  • 程序集之间的依赖关系
  • 方法调用图,
  • VS项目中名称空间的依赖关系,
  • 命名空间内类型的依赖关系,
  • 类继承图,
  • 表示2个组件之间耦合的类的图表

等...

这一切都解释为here

NDepend code graph dependency diagram

NDepend还提出了dependency structure matrix (DSM)query dependencies with C# LINQ queries的方法。

答案 5 :(得分:0)

今天早上向我建议明白了(:

http://www.scitools.com/

但老实说,我无法给出适当的报告,因为它对我来说太贵了......

答案 6 :(得分:0)

查看我可以从www.tom-carter.net

下载的.NET Reflector免费DSM插件

它允许对依赖关系提供两种不同的视图:用于查找程序集之间的依赖关系的部署模型和用于显示类型之间依赖关系的体系结构模型。

如果它没有直观地提供您要查找的信息,您可以将模型保存到xml并在数据上运行您自己的脚本。

依赖矩阵的优点是,它比框图和折线图更容易直观地分析依赖关系

如果您现在需要更多帮助,请立即

[更新] 此插件现在以Visual Studio加载项的形式提供

答案 7 :(得分:0)