我如何获得C#项目之间的依赖关系图
-
01-10-2019 - |
题
我有一个相当复杂的应用程序,该应用程序已分解为多个组件。每个组件都有一个包含一堆项目的解决方案文件。因此,我喜欢将其视为一个组件中有多个项目/DLL。还有一个“常见”组件。所有其他组件都取决于“常见”。因此,汇编是这样的:"nant component1.compile"
将编译“ common”,然后编译component1,因为component1取决于“ common”。随着时间的流逝,“普通”变得很大。我很确定它可以分为几个较小的组件。然后,组件只需要依赖于这些较小的“普通”中的一些。有望减少不同组件的编译时间。
所以问题:我想可视化应用程序中所有不同项目之间的依赖关系,同时还标记项目所属的哪个组件。您将如何做?
解决方案
工具 ndection 提出了一个依赖关系图,并与依赖关系矩阵结合。默认情况下,您将获得.NET组件的依赖关系图,并且不限于仅一个VS解决方案的组件。 Ndependepent集成在VS 2017、2015、2013、2012、2010中,它可以在您的代码上显示任何类型的图表,包括:
- 组件之间的依赖项
- 方法调用图,
- vs项目中名称空间的依赖项,
- 命名空间中类型的依赖项,
- 类继承图,
- 代表两个组件之间耦合的类的图形
ETC...
这都是解释的 这里.
ndectiond也提出了 依赖性结构矩阵(DSM) 和一种方法 查询依赖性c#linq查询.
其他提示
您可以看一下Ndepend: http://www.ndepender.com/
编辑 加上:
帕特里克·史奇亚(Patrick Smacchia), ,Ndepend的首席开发人员,在这里博客: http://codebetter.com/blogs/patricksmacchia/default.aspx 并写了很多关于组件化的主题,您可能会发现有用。
如果您可以访问Visual Studio 2010 最终的, ,您可以选择 Generate Dependency Graph
来自 Architecture
菜单。
MSDN进行了演练: 如何:生成.NET代码的依赖图
我会尝试将其导入到一个UML工具中,该工具可以为我提供模块之间的依赖图。
市场上有几个商业和开源。获取一个为您提供预算功能最大的能力。
查看我的免费DSM插件,适用于.NET Reflector可从中下载 www.tom-carter.net
它允许对您的依赖关系进行两种不同的视图:部署模型,可以找到组件和架构模型之间的依赖项,以显示类型之间的依赖关系。
如果它不以视觉上的方式提供您的查找信息,则可以将模型保存到XML并在数据上运行自己的脚本。
依赖项矩阵的优点是,它比框和线图更容易视觉分析依赖项
如果您需要更多帮助,请让我
更新 该插件现在以视觉工作室加载项的形式获得