Gendarme和FxCop看起来非常相似,似乎解决了同样的问题。对于主要从事具有大量业务逻辑的 Web 应用程序的小型开发人员团队(3-5 人),您会建议哪一个?为什么?
2 回答
宪兵确实是 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 所建议的,Resharper或Coderush是非常有用的补充(我不会称它们为替代品,因为它们不会在 IDE 之外运行(例如在持续集成构建中) )) 因为它们会在您编写代码时提供直接反馈。通常甚至不必编译它。而且它们通常提供“应用修复”的能力,而您不必确切地弄清楚要做什么。
FxCop/Gendarme的替代或良好补充是使用商业工具NDepend。使用此工具,可以在 LINQ 查询 (即 CQLinq)上编写代码规则。免责声明:我是该工具的开发人员之一
默认提出超过200 条代码规则,包括设计、架构、代码质量、代码演化、命名约定、死代码、.NET Fx 使用...
CQLinq 致力于编写可以在 Visual Studio 中实时验证的代码规则,或者可以在构建过程中验证并在 HTML/javascript 报告中报告的代码规则。
CQLinq 优于 FxCop 或 Gendarme 的优势在于,它可以直接编写代码规则,并立即获得结果。建议使用设施来浏览匹配的代码元素。具体来说是这样的: