在使用msbuild进行编译时,.NET 3.5解决方案最终出现此警告.
有时NDepend可能有所帮助,但在这种情况下,它没有提供任何进一步的细节.像Bob一样,我最终不得不在ILDASM中打开每个程序集,直到找到引用旧版依赖程序集的程序集.
我确实尝试使用VS 2010 Beta 2中的MSBUILD(因为Connect文章表明这已经在下一版本的CLR中得到修复)但是它没有提供任何更多细节(可能在Beta 2后修复)
有更好的(更自动化的)方法吗?
你知道类似于NDepend的软件吗?我刚刚拿到它,发现它非常有用.它给了我很多帮助,但是现在我没有可能购买专业版.
那么,有没有其他选择(也许是开源)?优选地,免费的.但不一定.也许,对于单一开发者而不是团队来说,价格更合适一点.
此软件的要求:构建依赖关系图检索代码度量标准显示注释范围(到目前为止)
有没有一个工具可以分析.NET代码并找到竞争条件?
我有一些代码,它有一个公共静态属性,可以获取或创建一个私有静态字段.它还有一个公共静态方法,将此字段设置为null(...是的,我知道!..)
由于这些方法中没有任何一种方法可以锁定,因此可以肯定的是,未来的事情将会出现严重错误.我需要一个工具,它递归地遍历调用这些方法之一的东西,看看是否有任何东西在另一个线程上产生.
我正在寻找一个工具或者一个nDepend SQL脚本(如果可能的话).
我一直在尝试NDepend,正在阅读一些关于它的博客文章,甚至还听过播客.我认为NDepend可能是一个非常有用的工具,但我仍然没有看到我会在哪里使用它.
你如何使用它?你用它吗,为什么?为什么不?
我想听听一些脚踏实地的现实世界的例子.
我最近使用了NDepend,它为我的.net程序集和相关的pdbs提供了一个很好的报告.
我在报告中发现的最有趣的事情是抽象性与不稳定性图.我想要真正详细地理解这一点,我阅读他们的文档和在线metrices,但它只能在一定程度上有所帮助.
主要是我希望了解如何正确评估图形以及如何稳定地控制抽象性.
这里有一篇非常好的文章就这个问题进行了讨论,但除此之外我还需要更多的内容是"如何控制它?[稳定控制抽象]'
我正在查看此处显示的LCOM指标,
http://www.ndepend.com/Metrics.aspx
所以我们说了几件事,
Run Code Online (Sandbox Code Playgroud)1) A class is utterly cohesive if all its methods use all its instance fields 2) Both static and instance methods are counted, it includes also constructors, properties getters/setters, events add/remove methods
如果我看一下这样的课,
public class Assessment
{
public int StartMetres { get; set; }
public int EndMetres { get; set; }
public decimal? NumericResponse { get; set; }
public string FreeResponse { get; set; }
public string Responsetype { get; set; }
public string ItemResponseDescription { get; …
Run Code Online (Sandbox Code Playgroud) 我最近下载了ndepend并对我参与的一个开源项目进行了分析.
我现在没有在哪里看下一个 - 一点视觉和信息超载,结果我甚至不知道从哪里开始.
任何人都可以建议起点吗?
如果我创建一个如下所示的简单类:
public class TestClass
{
public Task TestMethod(int someParameter)
{
return Task.FromResult(someParameter);
}
public async Task TestMethod(bool someParameter)
{
await Task.FromResult(someParameter);
}
}
Run Code Online (Sandbox Code Playgroud)
并且在NDepend中检查它,它表明TestMethod
采用bool并且async Task
有一个为它生成的结构,包括枚举器,枚举器状态机和一些额外的东西.
为什么编译器生成一个TestClass+<TestMethod>d__0
用异步方法的枚举器调用的结构?
它似乎比实际方法产生更多的IL.在这个例子中,编译器为我的类生成35行IL,同时为结构生成81行IL.它还增加了编译代码的复杂性,并导致NDepend为几个规则违规标记它.
我有一个设置,其中Visual Studio 2010运行测试覆盖率分析,并且它的输出在集成构建期间被NDepend吸收.
一些程序集包含NDepend需要忽略的生成代码.
有没有办法做到这一点?最好是整个命名空间.
我想尽可能多地构建我们的应用程序依赖项的概述/映射.使用NDepend(我喜欢!)等工具分析.NET应用程序依赖性非常简单.但是当谈到外部依赖关系时,例如数据库和Web服务,我需要更好的东西,最好是可以通过各种工具自动化的东西.
例如,我可能有一个工具填充数据库列表,另一个工具用于填充.NET应用程序列表,第三个工具获取Web服务列表,最后一个工具以某种方式知道如何挖掘应用程序之间的依赖关系通过其他工具找到.
所有或大部分内容都可以自动化,这样我就不必自己维护一个依赖项列表,这些内容很容易出错,并且在我完成时可能会过时.所以我希望有一个可以为我完成所有这些工具的工具,或者至少是一个可以保存,分析和可视化组件和依赖项的工具,而不是自己构建它.我越少越好......
ndepend ×10
.net ×5
c# ×5
architecture ×2
asynchronous ×1
clr ×1
code-metrics ×1
cqlinq ×1
database ×1
lcom ×1
msbuild ×1
namespaces ×1
ooad ×1
web-services ×1