Stylecop vs FXcop

时间:2009-12-10 22:27:23

标签: fxcop stylecop

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

5 个答案:

答案 0 :(得分:163)

Stylecop是一种在源代码级别工作的样式分析工具。它的存在主要是为了提供一种管理项目可以用来在更大的托管软件世界中保持一致的单一共同样式。它主要是为了避免神圣的战争而做出关于风格的决定(毕竟,风格几乎总是一种本质上主观的东西)。我不认为我曾经遇到过喜欢所有StyleCop规则的人,但那是 ok 。这意味着StyleCop在存在的大量风格指南中是一个普遍良好的折衷方案。 (如果stylecop的规则是高度可定制的,除了简单地启用/禁用它们之外,它将破坏该工具的整个目的。)

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

要回答你的问题,StyleCop不会取代FxCop,而FxCop也不会取代stylecop。它们是两种不同的工具,具有两种不同的用途,可以为您的代码提供真正的好处。

(AKA,我同时运行。:))


一些可能检测到的东西与另一个可能检测到的东西的例子:

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

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

答案 1 :(得分:16)

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

答案 2 :(得分:11)

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

CQLinq code rule

答案 3 :(得分:6)

FXCop对托管代码程序集进行静态代码分析。可以将其视为在运行时发现问题或者影响开发人员认为代码运行的方式(无法访问的代码)。

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

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

答案 4 :(得分:5)

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

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

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

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