Stylecop vs FXcop

JL.*_*JL. 93 fxcop stylecop

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

Gre*_*g D 164

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

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

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

(AKA,我和两个人都跑.:))


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

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

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

  • 同意并非所有StyleCop规则都是好的,但正如您所说,您可能会禁用您不想要的规则.我们正在使用StyleCop - 在禁用简单的愚蠢规则后,它为我们提供了良好的价值 - 以低成本......!推荐的.(请注意,我们第一眼就讨厌它..) (3认同)

No *_*rns 16

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


Pat*_*eam 11

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

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

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

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

CQLinq代码规则


All*_*orn 6

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

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

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


And*_*ngs 5

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

关于这些的维基百科文章提供了差异的良好摘要:

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

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