8

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

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

4

8 回答 8

3

你可以看看 NDepend:http ://www.ndepend.com/

编辑添加:

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

于 2010-08-25T09:36:47.830 回答
3

如果您有权访问 Visual Studio 2010 Ultimate,则可以Generate Dependency GraphArchitecture菜单中进行选择。

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

于 2010-08-25T09:48:54.997 回答
1

我会尝试将它导入一个 UML 工具,该工具可以为我呈现模块之间的依赖关系图。

市场上有几个,商业和开源的。获得在您的预算范围内为您提供最大功能的设备。

于 2010-08-25T09:32:19.320 回答
1

如果您对装配级信息没问题,那么您应该查看流行工具Reflector的Graph插件。它提供程序集和类级别的依赖图。

于 2010-08-25T09:38:42.053 回答
1

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

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

ETC...

这一切都在这里解释。

NDepend 代码图依赖图

NDepend 还提出了一个依赖结构矩阵 (DSM)和一种使用 C# LINQ 查询来查询依赖关系的方法。

于 2010-09-01T13:59:21.183 回答
1

最新的 Resharper 版本也能够创建参考图表。

https://www.jetbrains.com/help/resharper/Architecture__Project_Dependencies_Exploration.html#

于 2020-01-08T13:36:20.103 回答
0

今天早上有人建议我理解(:

http://www.scitools.com/

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

于 2010-08-25T09:34:29.427 回答
0

看看我的 .NET Reflector 的免费 DSM 插件,可从www.tom-carter.net下载

它允许对您的依赖关系有两种不同的视图:一个部署模型来查找程序集之间的依赖关系,以及一个架构模型来显示类型之间的依赖关系。

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

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

如果您需要更多帮助,现在就让我

[更新]这个插件现在以 Visual Studio 插件的形式提供

于 2010-08-25T09:46:25.247 回答