Gendarme vs FxCop

时间:2012-04-02 04:34:58

标签: asp.net fxcop gendarme

GendarmeFxCop看起来非常相似,似乎解决了同样的问题。对于一个主要从事具有大量业务逻辑的Web应用程序的开发人员团队(3-5),您会建议哪一个?为什么呢?

2 个答案:

答案 0 :(得分:9)

Gendarme确实是FxCop的Mono等价物。鉴于Microsoft计划在下一个Visual Studio的大多数版本中发布大量代码分析规则,您可能希望使用FxCop并坚持使用它。如果您的Visual Studio版本支持它(Visual Studio 2010 Premium和Ultimate),则最简单的FxCop集成版本(称为代码分析)。

有一个Visual Studio加载项,允许您run FxCop from inside Visual Studio Professional。您需要download FxCop 10 separatelyit's part of the Windows Platform SDK)。请注意Visual Studio integrated version comes with a few additional rules,因此输出可能会有所不同。

由于Gendarme没有直接集成到Visual Studio(though you can make it part of the build process)中,因此您不会看到许多使用Visual Studio的人使用Gendarme。主要是因为它不太为人所知。

最后,我从方便的角度使用FxCop。它已集成到我默认使用的Visual Studio版本中,并且在开发人员社区中是众所周知的。

但是如果你没有使用Visual Studio Premium或Ultimate,那么你可以选择其中一个甚至两个。请记住,如果你同时选择这两种,你可能会收到许多重复的消息甚至是相互冲突的消息,因为这些不同工具的创建者并不总是同意。

如果你不介意投入一些钱,那么,正如niaher所说,ResharperCoderush是非常有用的补充(我不会称它们为替代品,因为它们不会在外面运行IDE(例如,在持续集成构建中)),因为它们在您编写代码时提供直接反馈。通常甚至不必编译它。而且他们经常提供“应用修复”的能力,而不必确切地知道该做什么。

答案 1 :(得分:8)

FxCop / Gendarme 的替代或良好补充是使用商业工具NDepend。使用此工具,可以通过LINQ查询编写代码规则 (namely CQLinq)免责声明:我是该工具的开发人员之一

默认情况下会提出超过200 code rules,其中包括设计架构代码质量代码演变命名约定死代码 .NET Fx用法 ......

CQLinq致力于编写可以verified live in Visual Studioverified during build process and reported in an HTML/javascript report的代码规则。

CQLinq相对于FxCop或Gendarme的优势在于,可以直接编写代码规则,并立即获得 结果。建议设施浏览匹配的代码元素。具体来说,这看起来像是:

CQLinq code rule