【问题标题】:Stylecop vs FXcopStylecop 与 FXcop
【发布时间】:2010-12-25 11:11:10
【问题描述】:

Stylecop 是否已取代 FXcop? 我们应该在 Visual Studio 2008 中使用哪种产品?

【问题讨论】:

标签: fxcop stylecop


【解决方案1】:

Stylecop 是一个在源代码级别工作的风格分析工具。它的存在主要是为了提供一种单一的通用样式,托管项目可以使用该样式在更大的托管软件世界中保持一致。它做出关于风格的决定主要是为了避免圣战(毕竟,风格几乎总是天生的主观事物)。我想我从来没有遇到过喜欢 StyleCop 的所有规则的人,但没关系ok。这意味着 StyleCop 在现有的大量样式指南中是一个很好的折衷方案。 (如果 stylecop 的规则是高度可定制的,除了简单地启用/禁用它们之外,它会破坏该工具的整个目的。)

另一方面,FxCop 是一种在托管程序集级别上工作的静态分析工具。它可以通过属性给出方向,因为它可以看到代码元素上的属性,例如。它检测可以在“二进制”级别(实际上)而不是句法级别上看到的问题。

为了回答您的问题,StyleCop 不会取代 FxCop,FxCop 也不会取代 stylecop。它们是两种不同的工具,具有两种不同的用途,都可以为您的代码带来真正的好处。

(又名,我两个都跑。:))


一个可能检测到的事物与另一个可能检测到的事物的几个示例:

StyleCop 违规可能包括与以下相关的警告:空白、格式、通过 xml-cmets 的公共方法文档、类中方法定义的顺序。

FxCop 违规可能包括与以下内容相关的警告:全球化、紧密耦合、圈复杂性、潜在的 null 取消引用。

【讨论】:

  • 是的,之前比较两者的答案在所有方面都是错误的。 StyleCop 和 FxCop 执行两个非常不同的任务,值得研究它们在代码库中提供的价值以及为什么要运行它们。
  • 同意并非所有 StyleCop 规则都很好,但正如您所说,您不想要的规则可以禁用。我们正在使用 StyleCop - 在禁用简单的愚蠢规则后,它为我们提供了良好的价值 - 以低成本..!推荐的。 (请注意,我们乍一看讨厌它..)
  • @stiank81:是的,我认为每个人一开始都讨厌 StyleCop。不过,过了一会儿,这些好处就真正确立了,它证明自己是一个非常有用的工具,可以保持源代码的一致性。 :)
  • 很好的答案我在找什么:)
【解决方案2】:

stylecop 适用于您的 C# 源代码。 fxcop 查看您从任何 .net 语言编译的代码。

【讨论】:

  • 那么如果你使用Stylecop,FXCop可以增加任何价值吗?
  • 真的,你最好使用 FxCop。
  • 至少现在,直到它变得更加可配置。 :)
  • stylecop 不太可能变得更加可配置。 stylecop 的一个更重要的功能是自动更正样式违规。
  • 我们使用 Resharper 自动使代码符合 stylecop 规则。仅此一项就值得购买价格。除此之外,您还可以获得所有其他好处。
【解决方案3】:

FxCop/StyleCop 的替代或很好的补充是使用商业工具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 或 StyleCop 的优势在于可以直接编写代码规则,并立即获得结果。建议使用设施来浏览匹配的代码元素。具体来说是这样的:

【讨论】:

    【解决方案4】:

    FXCop 对托管代码程序集进行静态代码分析。将其视为发现会导致运行时出现问题或会影响开发人员认为代码将如何运行的问题(无法访问的代码)。

    StyleCop 从文本的角度分析您的代码结构。将此视为会影响您的开发和设计体验的问题(格式、命名约定、文档)

    它们都是非常有价值的工具,您应该同时使用它们,但它们确实专注于不同的问题。

    【讨论】:

      【解决方案5】:

      StyleCop 执行源代码分析不是很可配置。它与分析编译代码的 FxCop 并没有真正做同样的事情。

      关于这些的维基百科文章很好地总结了这些差异:

      http://en.wikipedia.org/wiki/StyleCop

      http://en.wikipedia.org/wiki/FxCop

      【讨论】:

        猜你喜欢
        • 2010-10-09
        • 2010-10-22
        • 2010-11-25
        • 1970-01-01
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 2013-06-08
        • 2011-01-10
        相关资源
        最近更新 更多