哪些工具可用于针对C#代码进行静态分析?我知道FxCop和StyleCop。还有其他人吗?我之前遇到过NStatic,但它一直处于开发状态,看起来像是永远的 - 它看起来很漂亮,看起来很少见,所以如果它能看到光明的一天会很好。
沿着这些相同的路线(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁,竞争条件等)代码的工具似乎也有点稀缺。刚出现了Typemock Racer,所以我会看着它。除此之外还有什么?
对您使用的工具的现实意见表示赞赏。
答案 0 :(得分:332)
代码违规检测工具:
Fxcop,微软的优秀工具。检查是否符合.net框架指南。
编辑2010年10月:不再作为独立下载提供。它现在包含在Windows SDK中,安装后可以在Program Files \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe中找到
编辑2018年2月:此功能现已集成到Visual Studio 2012及更高版本中Code Analysis
质量指标工具:
检查样式工具:
复制检测:
常规重构工具
答案 1 :(得分:7)
工具NDepend被引用为质量指标工具,但它几乎也是代码违规检测工具。 免责声明:我是该工具的开发人员之一
使用NDepend,可以编写Code Rule over LINQ Queries (what we call CQLinq)。默认情况下会提出超过200 CQLinq code rules的内容。 CQLinq的优势在于可以直接编写代码规则,并立即获得 结果。建议设施浏览匹配的代码元素。例如:
除此之外,NDepend还有许多其他静态分析,如功能。其中包括:
答案 2 :(得分:1)
答案 3 :(得分:1)
你见过CAT.NET吗?
来自模糊 -
CAT.NET是一种二进制代码分析工具 这有助于识别常见的变种 某些普遍存在的漏洞 这可以引起共同的攻击 Cross-Site Scripting等矢量 (XSS),SQL注入和XPath 注射。
我使用了早期测试版,似乎确实发现了一些值得关注的内容。
答案 4 :(得分:0)
除了madgnome的优秀列表之外,我还会添加一个基于命令行的重复代码检测器(但是是免费的):
答案 5 :(得分:-1)
我发现Reflector的Code Metrics和Dependency Structure Matrix加载项非常有用。
答案 6 :(得分:-1)
Axivion Bauhaus Suite是一个静态分析工具,可以与C#(以及C,C ++和Java)一起使用。
它提供以下功能:
这些功能可以一次性运行,也可以作为持续集成流程的一部分运行。当系统与源代码控制系统集成时,可以基于每个项目或每个开发人员突出显示问题。
答案 7 :(得分:-1)
Klocwork为C#提供了一个静态分析工具:http://www.klocwork.com
答案 8 :(得分:-1)
Optimyth Software刚刚在云端www.checkinginthecloud.com推出了静态分析服务。只需安全上传您的代码即可运行分析并获得结果。没有麻烦。
它支持多种语言,包括C#,更多信息可在wwww.optimyth.com
找到