有哪些工具可用于针对 C# 代码进行静态分析?我了解 FxCop 和 StyleCop。还有其他人吗?我以前接触过 NStatic,但它似乎一直在开发中 - 从我所见的很少来看,它看起来非常光滑,所以如果它能够面世那就太好了。

沿着同样的思路(这主要是我对静态分析的兴趣),用于测试多线程问题(死锁、竞争条件等)的代码的工具似乎也有点稀缺。Typemock Racer 刚刚出现,所以我会关注它。除此之外还有什么吗?

感谢您对您所使用的工具的现实生活意见。

有帮助吗?

解决方案

代码违规检测工具:

质量衡量工具:

  • 依赖型, ,很棒的视觉工具。对于代码度量、规则、差异、耦合和依赖性研究很有用。
  • 尼特里克, ,免费,可以轻松编写自己的指标/约束,漂亮的可视化效果。 2018 年 2 月编辑: 下载链接现已失效。
  • RSM 平方, 、基于代码源码分析
  • C# 指标, ,使用 C# 的完整解析
  • 源监视器, ,一个偶尔会更新的旧工具
  • 代码指标, , A 反射器 加入
  • 维尔, ,不支持.NET 2.0的旧工具。 2018 年 1 月编辑: 链接现已失效

检查样式工具:

  • 风格警察, 、Microsoft 工具(从 Visual Studio 内部运行或集成到 MSBuild 项目中)。也提供 作为扩展 适用于 Visual Studio 2015 和 C#6.0
  • 史密斯特工, ,代码风格验证插件 锐锐

重复检测:

  • 猿猴, ,基于源代码。适用于多种语言。
  • 克隆DR, ,仅在语言边界上检测参数化克隆(还处理 C# 以外的许多语言)
  • 克隆人侦探 一个 Visual Studio 插件。(它用 康夸特 内部)
  • 原子, ,基于源代码,丰富的语言,炫酷的“轮子”可视化

通用重构工具

  • 锐锐 - 主要很酷的 C# 代码分析和重构功能

其他提示

工具 依赖型 被引用为 质量衡量工具 但它几乎也是一个 代码违规检测 工具。 免责声明:我是该工具的开发人员之一

使用 NDepend,人们可以编写 LINQ 查询的代码规则(我们称之为 CQLinq). 。多于 200 个 CQLinq 代码规则 默认建议。CQLinq 的优势在于 编写代码规则很简单, ,并得到 立即地 结果。建议使用设施来浏览匹配的代码元素。例如:

CQLinq code rule

除此之外,NDepend 还有许多其他功能 静态分析如 特征。这些包括:

  • 宪兵 是一个基于开源规则的静态分析器(类似于FXCop,但发现了很多不同的问题)。
  • 克隆人侦探 是 Visual Studio 的一个很好的插件,可以查找重复代码。
  • 另外说到 Mono,我发现使用 Mono 编译器进行编译的行为(如果您的代码足够独立于平台来做到这一点,无论如何您可能想要努力实现的目标)会发现大量未引用的变量和 Visual Studio 完全错过的其他警告(即使警告级别设置为 4)。

你见过吗 猫网?

从宣传语来看——

CAT.NET是一种二进制代码分析工具,可帮助识别某些流行漏洞的常见变体,这些变体可以引起常见的攻击向量,例如跨站点脚本(XSS),SQL注入和XPATH注入。

我使用了早期的测试版,它似乎确实出现了一些值得一看的东西。

除了 madgnome 提供的优秀列表之外,我还会添加一个基于命令行的重复代码检测器(但免费):

http://sourceforge.net/projects/duplo/

Klocwork有一个C#静态分析工具: http://www.klocwork.com

我找到了 代码指标依赖结构矩阵 Reflector 的插件非常有用。

Optimyth Software刚刚推出了云端静态分析服务 www.checkinginthecloud.com. 。只需安全上传您的代码即可运行分析并获取结果。没有麻烦。

它支持多种语言,包括 C# 更多信息可以在以下位置找到: www.optimyth.com

Axivion 包豪斯套件 是一个适用于 C#(以及 C、C++ 和 Java)的静态分析工具。

它提供以下功能:

  • 软件架构可视化(包括依赖项)
  • 架构规则的执行,例如分层、子系统、调用规则
  • 克隆检测 - 突出显示复制和粘贴(和修改的代码)
  • 死代码检测
  • 周期检测
  • 软件指标
  • 代码风格检查

这些功能可以一次性运行,也可以作为持续集成过程的一部分运行。当系统与源代码控制系统集成时,可以根据每个项目或每个开发人员来突出显示问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top