宪兵 vs FxCop
Posted
技术标签:
【中文标题】宪兵 vs FxCop【英文标题】:Gendarme vs FxCop 【发布时间】:2012-04-02 04:34:58 【问题描述】:Gendarme 和FxCop 看起来非常相似,似乎解决了同样的问题。对于主要从事具有大量业务逻辑的 Web 应用程序的小型开发人员团队(3-5 人),您会建议哪一个?为什么?
【问题讨论】:
我不确定是否涵盖类似的区域,但我强烈推荐 ReSharper(以及具有足够 RAM/CPU 的机器以使其满意)。 我确实已经在使用 ReSharper,但它在静态分析方面的功能远不及 FxCop 或 Gendarme(至少根据我的经验)。 您在做出决定时需要的任何其他信息? 不,你的答案正是我想要的。刚刚将其标记为已接受的答案;)谢谢 【参考方案1】: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 separately (it'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 建议的那样,Resharper 或 Coderush 是非常有用的补充(我不会称它们为替代品,因为它们不会在 IDE 之外运行(例如在持续集成构建中)),因为它们会在您编写代码时提供直接反馈。通常甚至不必编译它。而且它们通常提供“应用修复”的能力,而无需您确切地弄清楚要做什么。
【讨论】:
【参考方案2】:FxCop/Gendarme 的替代或很好的补充是使用商业工具 NDepend。使用此工具,您可以在 LINQ 查询上编写代码规则 (namely CQLinq)。 免责声明:我是该工具的开发人员之一
默认提出200 code rules以上,包括设计、架构、代码质量、代码演化 em>、命名约定、死代码、.NET Fx 用法...
CQLinq 专门编写代码规则,可以是verified live in Visual Studio,也可以是verified during build process and reported in an html/javascript report。
CQLinq 优于 FxCop 或 Gendarme 的优势在于编写代码规则很简单,并立即获得结果。建议使用设施来浏览匹配的代码元素。具体来说是这样的:
【讨论】:
Wtf 投了反对票。至少给个理由。我用过 NDepend(我与他们没有关联),我觉得它很有用。以上是关于宪兵 vs FxCop的主要内容,如果未能解决你的问题,请参考以下文章
Java世界中的类vs包vs模块vs组件vs容器vs服务vs平台[关闭]