我有一个相当复杂的应用程序,它被分解成多个组件。每个组件都有一个解决方案文件,其中包含一堆项目。所以我喜欢把它看作是一个组件中有多个项目/dll。还有一个“公共”组件。所有其他组件都依赖于“公共”。所以编译是这样的:"nant component1.compile"
将编译“common”,然后编译component 1,因为component 1依赖于“common”。随着时间的推移,“common”已经变得相当大。我很确定它可以分成几个较小的组件。然后组件只需要依赖于其中一些较小的组件,这将有望减少不同组件的编译时间。
所以问题是:我想可视化应用程序中所有不同项目之间的依赖关系,同时标记项目所属的组件。您将如何做到这一点?
8条答案
按热度按时间avkwfej41#
您可以查看NDepend:http://www.ndepend.com/
Patrick Smacchia是NDepend的首席开发人员,他在这里写了博客:http://codebetter.com/blogs/patricksmacchia/default.aspx,并写了很多关于组件化的文章,你可能会发现这些文章很有用。
laik7k3q2#
如果您有Visual Studio 2010Ultimate的访问权限,则可以从
Architecture
菜单中选择Generate Dependency Graph
。在MSDN上有一个演练:How to: Generate Dependency Graphs for .NET Code
fxnxkyjh3#
工具NDepend提出了一个依赖关系图与依赖关系矩阵的耦合。默认情况下,您将获得.NET程序集的依赖关系图,并且它不限于仅一个VS解决方案的程序集。NDepend集成在VS 2017,2015,2013,2012,2010中,它可以在您的代码中显示任何类型的图形,包括:
等等
这一切都是here解释的。
的数据
NDepend还提出了一个dependency structure matrix (DSM)和一种用C# LINQ查询来查询依赖关系的方法。
mftmpeh84#
我会尝试将其导入到一个UML工具中,该工具可以为我呈现模块之间的依赖关系图。
市场上有几种,既有商业的,也有开源的。选择一种能为您的预算提供最大功能的。
doinxwow5#
如果你对程序集级别的信息没有问题,那么你应该看看Graph插件,它提供了程序集和类级别的依赖图。
ipakzgxi6#
最新的Resharper版本也能够创建参考文件。
https://www.jetbrains.com/help/resharper/Architecture__Project_Dependencies_Exploration.html#
cclgggtu7#
今天早上我被告知:
http://www.scitools.com/
但老实说,我不能给予一个适当的报告,因为它对我来说太贵了.
r7s23pms8#
看看我的免费DSM插件为.NET反射器下载从www.tom-carter.net
它允许两种不同的依赖关系视图:部署模型用于查找程序集之间的依赖关系,架构模型用于显示类型之间的依赖关系。
如果它没有提供您所需要的可视化信息,您可以将模型保存为XML,并对数据运行您自己的脚本。
依赖关系矩阵的优点是,它比盒形图和线形图更容易直观地分析依赖关系
如果你需要更多的帮助让我现在
**[更新]**此插件现在以Visual Studio外接程序的形式提供