我有一个相当复杂的应用程序,它已分解为多个组件。每个组件都有一个解决方案文件,其中包含一堆项目。所以我喜欢将其视为一个包含多个项目/dll 的组件。还有一个“通用”组件。所有其他组件都依赖于“common”。所以编译是这样的:
"nant component1.compile"
将编译“common”,然后编译 component1,因为 component1 依赖于“common”。
随着时间的推移,“常见”已经变得相当大了。我很确定它可以分成几个更小的组件。那么组件只需要依赖于其中一些较小的、分解的“公共”。这有望减少不同组件的编译时间。
所以问题: 我想可视化应用程序中所有不同项目之间的依赖关系,同时标记项目所属的组件。你会怎么做?
你可以看看 NDepend :http://www.ndepend.com/
编辑添加:
Patrick Smacchia,NDepend 的首席开发人员,在这里发表博客:http://codebetter.com/blogs/patricksmacchia/default.aspx,并撰写了很多关于组件化主题的文章,您可能会发现这些内容很有用。
如果您有权访问 Visual Studio 2010 Ultimate,则可以从
Generate Dependency Graph
菜单中选择 Architecture
。
MSDN 上有一个演练:如何:为 .NET 代码生成依赖关系图
工具 NDepend 提出了与依赖矩阵相结合的依赖图。默认情况下,您将获得 .NET 程序集的依赖关系图,并且它不限于仅一个 VS 解决方案的程序集。 NDepend 集成在 VS 2017、2015、2013、2012、2010 中,它可以在代码上显示任何类型的图形,包括:
等等...
这一切都解释了这里。
NDepend 还提出了依赖结构矩阵 (DSM) 以及一种使用 C# LINQ 查询来查询依赖关系的方法。
我会尝试将其导入到 UML 工具中,该工具可以为我呈现模块之间的依赖关系图。
市场上有几种,包括商业的和开源的。购买一款能够为您的预算提供最大功能的产品。
最新的Resharper版本还能够创建参考图。
https://www.jetbrains.com/help/resharper/Architecture__Project_Dependency_Exploration.html#