Stylecop 是否已取代 FXcop?我们应该在 Visual Studio 2008 中使用哪种产品?
5 回答
Stylecop 是一个在源代码级别工作的风格分析工具。它的存在主要是为了提供一种单一的通用样式,托管项目可以使用该样式在更大的托管软件世界中保持一致。它做出关于风格的决定主要是为了避免圣战(毕竟,风格几乎总是天生的主观事物)。我想我从来没有遇到过喜欢所有 StyleCop 规则的人,但没关系。这意味着 StyleCop 在现有的大量样式指南中是一个很好的折衷方案。(如果 stylecop 的规则是高度可定制的,除了简单地启用/禁用它们之外,它将破坏该工具的整个目的。)
另一方面,FxCop 是一种在托管程序集级别上工作的静态分析工具。它可以通过属性给出方向,因为它可以看到代码元素的属性,例如。它检测可以在“二进制”级别(实际上)而不是句法级别上看到的问题。
要回答您的问题,StyleCop 不会取代 FxCop,FxCop 也不会取代 stylecop。它们是两种不同的工具,具有两种不同的用途,都可以为您的代码带来真正的好处。
(又名,我两个都跑。:))
一个可能检测到的事物与另一个可能检测到的事物的几个示例:
StyleCop 违规可能包括与以下相关的警告:空白、格式、通过 xml 注释的公共方法文档、类中方法定义的顺序。
FxCop 违规可能包括与以下内容相关的警告:全球化、紧密耦合、圈复杂性、潜在的 null 取消引用。
stylecop 适用于您的 C# 源代码。fxcop 查看您从任何 .net 语言编译的代码。
FxCop/StyleCop的替代或良好补充是使用商业工具NDepend。使用此工具,可以在 LINQ 查询 (即 CQLinq)上编写代码规则。免责声明:我是该工具的开发人员之一
默认提出超过200 条代码规则,包括设计、架构、代码质量、代码演化、命名约定、死代码、.NET Fx 使用...
CQLinq 致力于编写可以在 Visual Studio 中实时验证的代码规则,或者可以在构建过程中验证并在 HTML/javascript 报告中报告的代码规则。
CQLinq 优于 FxCop 或 StyleCop 的优势在于,它可以直接编写代码规则,并立即获得结果。建议使用设施来浏览匹配的代码元素。具体来说是这样的:
FXCop 对您的托管代码程序集进行静态代码分析。将其视为查找会在运行时导致问题或会影响开发人员认为代码将如何运行的问题(无法访问的代码)。
StyleCop 从文本的角度分析代码的结构。将此视为会影响您的开发和设计体验的问题(格式、命名约定、文档)
它们都是非常有价值的工具,您应该同时使用它们,但它们确实专注于不同的问题。
StyleCop 执行源代码分析不是很可配置。它与分析编译代码的 FxCop 并没有真正做同样的事情。
关于这些的维基百科文章很好地总结了这些差异: