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

pinkon5k  于 2023-11-20  发布在  .NET
关注(0)|答案(8)|浏览(204)

我有一个相当复杂的应用程序,它被分解成多个组件。每个组件都有一个解决方案文件,其中包含一堆项目。所以我喜欢把它看作是一个组件中有多个项目/dll。还有一个“公共”组件。所有其他组件都依赖于“公共”。所以编译是这样的:"nant component1.compile"将编译“common”,然后编译component 1,因为component 1依赖于“common”。随着时间的推移,“common”已经变得相当大。我很确定它可以分成几个较小的组件。然后组件只需要依赖于其中一些较小的组件,这将有望减少不同组件的编译时间。
所以问题是:我想可视化应用程序中所有不同项目之间的依赖关系,同时标记项目所属的组件。您将如何做到这一点?

avkwfej4

avkwfej41#

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

  • edit* 添加:

Patrick Smacchia是NDepend的首席开发人员,他在这里写了博客:http://codebetter.com/blogs/patricksmacchia/default.aspx,并写了很多关于组件化的文章,你可能会发现这些文章很有用。

laik7k3q

laik7k3q2#

如果您有Visual Studio 2010Ultimate的访问权限,则可以从Architecture菜单中选择Generate Dependency Graph
在MSDN上有一个演练:How to: Generate Dependency Graphs for .NET Code

fxnxkyjh

fxnxkyjh3#

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

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

等等
这一切都是here解释的。


的数据
NDepend还提出了一个dependency structure matrix (DSM)和一种用C# LINQ查询来查询依赖关系的方法。

展开查看全部
mftmpeh8

mftmpeh84#

我会尝试将其导入到一个UML工具中,该工具可以为我呈现模块之间的依赖关系图。
市场上有几种,既有商业的,也有开源的。选择一种能为您的预算提供最大功能的。

doinxwow

doinxwow5#

如果你对程序集级别的信息没有问题,那么你应该看看Graph插件,它提供了程序集和类级别的依赖图。

ipakzgxi

ipakzgxi6#

最新的Resharper版本也能够创建参考文件。
https://www.jetbrains.com/help/resharper/Architecture__Project_Dependencies_Exploration.html#

cclgggtu

cclgggtu7#

今天早上我被告知:
http://www.scitools.com/
但老实说,我不能给予一个适当的报告,因为它对我来说太贵了.

r7s23pms

r7s23pms8#

看看我的免费DSM插件为.NET反射器下载从www.tom-carter.net
它允许两种不同的依赖关系视图:部署模型用于查找程序集之间的依赖关系,架构模型用于显示类型之间的依赖关系。
如果它没有提供您所需要的可视化信息,您可以将模型保存为XML,并对数据运行您自己的脚本。
依赖关系矩阵的优点是,它比盒形图和线形图更容易直观地分析依赖关系
如果你需要更多的帮助让我现在

**[更新]**此插件现在以Visual Studio外接程序的形式提供

相关问题