Stylecop vs FXcop

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

Stylecop是一个在源代码级别工作的风格分析工具。 它主要是为了提供一个单一的通用风格,托pipe项目可以在更大的托pipe软件世界中保持一致。 它决定风格主要是为了避免圣战(毕竟,风格几乎总是一种固有的主观的东西)。 我不认为我遇到过喜欢StyleCop所有规则的人,但没关系 。 这意味着StyleCop是存在的广泛的风格指南之间的总体良好的妥协。 (如果stylecop的规则是高度可定制的,除了简单地启用/禁用它们之外,它将打败该工具的整个目的。)

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

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

(AKA,我都跑。:))


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

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

FxCop违规可能包括警告涉及:全球化,紧耦合,圈复杂性,潜在的空解除。

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

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

超过200个代码规则是默认提出的,包括devise体系结构代码质量代码演变命名约定死代码.NET Fx用法

CQLinq致力于编写可以在Visual Studio中生效的代码规则,或者可以在构build过程中validation并在HTML / javascript报告中报告的代码规则。

CQLinq相对于FxCop或StyleCop的优势在于, 编写代码规则很简单 ,并立即得到结果。 build议设施浏览匹配的代码元素。 具体来说,这看起来像这样:

CQLinq代码规则

FXCop对托pipe代码程序集进行静态代码分析。 把它看作是发现在运行时会导致问题的问题,或者会影响开发人员相信代码将运行的问题(无法访问的代码)。

StyleCop从文本的angular度分析你的代码结构。 把这看作是会影响你开发和devise经验的问题(格式化,命名约定,文档)

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

StyleCop执行源代码分析不是非常可configuration的。 它并不像FxCop那样分析编译后的代码。

维基百科的文章提供了很好的总结:

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

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