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

问题描述 投票:0回答:8

我有一个相当复杂的应用程序,它已分解为多个组件。每个组件都有一个解决方案文件,其中包含一堆项目。所以我喜欢将其视为一个包含多个项目/dll 的组件。还有一个“通用”组件。所有其他组件都依赖于“common”。所以编译是这样的:

"nant component1.compile"
将编译“common”,然后编译 component1,因为 component1 依赖于“common”。 随着时间的推移,“常见”已经变得相当大了。我很确定它可以分成几个更小的组件。那么组件只需要依赖于其中一些较小的、分解的“公共”。这有望减少不同组件的编译时间。

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

c# .net visualization dependencies csproj
8个回答
3
投票

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

编辑添加:

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


3
投票

如果您有权访问 Visual Studio 2010 Ultimate,则可以从

Generate Dependency Graph
菜单中选择
Architecture

MSDN 上有一个演练:如何:为 .NET 代码生成依赖关系图


1
投票

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

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

等等...

这一切都解释了这里

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


1
投票

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

市场上有几种,包括商业的和开源的。购买一款能够为您的预算提供最大功能的产品。


1
投票

如果您对汇编级信息感到满意,那么您应该查看流行工具Reflector中的Graph插件。它提供程序集和类级别依赖关系图。


1
投票

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

http://www.scitools.com/

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


0
投票
查看我的 .NET Reflector 的免费 DSM 插件,可从

www.tom-carter.net 下载

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

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

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

如果您需要更多帮助,请立即联系我

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

© www.soinside.com 2019 - 2024. All rights reserved.