Gendarme vs FxCop

nia*_*her 3 asp.net fxcop gendarme

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

jes*_*ing 9

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

有一个Visual Studio加载项,允许您从Visual Studio Professional内部运行FxCop.您需要单独下载FxCop 10(它是Windows Platform SDK的一部分).请注意,Visual Studio集成版本附带了一些额外的规则,因此输出可能会有所不同.

由于Gendarme没有直接集成到Visual Studio中(尽管您可以将其作为构建过程的一部分),但您不会看到许多使用Visual Studio的人使用Gendarme.主要是因为它不太为人所知.

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

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

如果你不介意投入一些钱,那么,正如niaher所说,ResharperCoderush是非常有用的补充(我不会称它们为替代品,因为它们不在IDE之外运行(例如在持续集成构建中) ))因为他们在你编写代码时提供直接反馈.通常甚至不必编译它.而且他们经常提供"应用修复"的能力,而无需弄清楚要做什么.


Pat*_*eam 8

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

超过200分的规则是默认设置的,其中包括设计,建筑,代码质量,代码演变,命名约定,死码,.NET Fx的使用 ...

CQLinq专门编写可以在Visual Studio中实时验证的代码规则,或者可以在构建过程中验证并在HTML/javascript报告中报告的代码规则.

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

CQLinq代码规则