有哪些工具可用于针对 C# 代码进行静态分析?我知道 FxCop 和 StyleCop。还有其他人吗?我以前遇到过 NStatic,但它一直在开发中,似乎永远都是 - 从我所见的很少,它看起来很漂亮,所以如果它能够看到曙光,那就太好了。
沿着同样的思路(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁、竞争条件等)的代码的工具似乎也有点稀缺。Typemock Racer 刚刚弹出,所以我会看看。除此之外还有什么?
感谢您对您使用过的工具的真实看法。
有哪些工具可用于针对 C# 代码进行静态分析?我知道 FxCop 和 StyleCop。还有其他人吗?我以前遇到过 NStatic,但它一直在开发中,似乎永远都是 - 从我所见的很少,它看起来很漂亮,所以如果它能够看到曙光,那就太好了。
沿着同样的思路(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁、竞争条件等)的代码的工具似乎也有点稀缺。Typemock Racer 刚刚弹出,所以我会看看。除此之外还有什么?
感谢您对您使用过的工具的真实看法。
代码违规检测工具:
FxCop,微软的优秀工具。检查是否符合 .NET 框架准则。
2010 年 10 月编辑:不再提供独立下载。它现在包含在Windows SDK中,安装后可以在Program Files\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe
2018 年 2 月编辑:此功能现已集成到 Visual Studio 2012 及更高版本中作为代码分析
Clocksharp,基于代码源分析(至 C# 2.0)
Mono.Gendarme,类似于 FxCop 但具有开源许可证(基于Mono.Cecil)
Smokey,类似于 FxCop 和 Gendarme,基于Mono.Cecil。不再进行开发,主要开发人员现在与宪兵队合作。
PRQA QA·C# , 商业产品
PVS-Studio , 商业产品
CAT.NET,Visual Studio 插件,有助于识别安全漏洞2019 年 11 月编辑:链接已失效。
SonarQube、FOSS 和商业选项,支持编写更清洁、更安全的代码。
质量度量工具:
检查样式工具:
重复检测:
通用重构工具
NDepend工具被称为质量度量工具,但它几乎也是一个代码违规检测工具。免责声明:我是该工具的开发人员之一
使用 NDepend,可以在 LINQ 查询(我们称之为 CQLinq)上编写代码规则。默认提出超过200 条 CQLinq 代码规则。CQLinq 的优势在于它可以直接编写代码规则,并立即获得结果。建议使用设施来浏览匹配的代码元素。例如:
除此之外,NDepend 还附带了许多其他静态分析,如特性。这些包括:
你看过CAT.NET吗?
从简介 -
CAT.NET 是一种二进制代码分析工具,可帮助识别某些常见漏洞的常见变体,这些漏洞可能导致常见的攻击媒介,如跨站点脚本 (XSS)、SQL 注入和 XPath 注入。
我使用了早期的测试版,它似乎确实出现了一些值得一看的东西。
除了 madgnome 的优秀列表之外,我还要添加一个基于命令行的重复代码检测器(但免费):
Axivion Bauhaus Suite是一个静态分析工具,可与 C#(以及 C、C++ 和 Java)一起使用。
它提供以下功能:
这些功能可以一次性运行,也可以作为持续集成过程的一部分运行。当系统与源代码控制系统集成时,可以基于每个项目或每个开发人员突出显示问题。
Klocwork 有一个 C# 的静态分析工具:http ://www.klocwork.com
Optimyth Software 刚刚推出了云端静态分析服务www.checkinginthecloud.com。只需安全地上传您的代码即可运行分析并获得结果。没有麻烦。
它支持多种语言,包括 C# 更多信息可以在wwww.optimyth.com找到