什么样的StyleCop就像VB.NET的工具一样

时间:2010-01-25 09:44:53

标签: vb.net coding-style static-analysis

另见VB.NET Static Code Anaylsis

为了更好或更坏,我们现在有一个 VB.NET 编码标准文档,该文档基于StyleCop强制执行的C#编码标准。

例如

  • 您应该在“+”标志等的每一侧放置的空格数
  • 所有实例成员(字段和方法!)必须以“me.fieldName”
  • 进行访问
  • 所有共享成员必须以“className.fieldName”
  • 的形式访问

我倾向于认为:

  

如果它在需求文档中   应该通过自动检查   系统

我正在寻找(理想上是免费的)工具来检查VB.NET代码的规则,因为这些是没有进入编译输出的样式问题,FxCop没用。

(我个人会匹配而不是我们只检查重要的事情,比如重复的代码和每个类的单一合理性(所以没有更多的千行类!),但是因为我需要保持编码标准文档,我希望有一个工具来帮助我这样做。)

另见Enforcing using the class name whenever a shared member is accessed.

关于赏金。
我正在寻找一个VB.NET代码检查工具列表,简要总结了每个工具可以做什么及其局限性。如果工具不是免费的,请包括一些理想的费用。


有没有人有使用CodeRush/Refactor的经验!或者使用VB.NET ReSharper来检查这种类型的编码风格问题?

5 个答案:

答案 0 :(得分:10)

我知道没有免费的源代码分析工具,具有良好的VB支持。但是,至少有两种商业工具可能适用:

  1. submain CodeIt.Right
  2. SSW Code Auditor
  3. 就个人而言,我更喜欢CodeIt.Right规则创作机制,所以如果计划进行大量的自定义规则开发,我会赞成。但是,如果您只想使用开箱即用的规则,Code Auditor会提供比CodeIt.Right更多的代码样式规则,其中大多数内置规则针对编译的IL(如FxCop)。

答案 1 :(得分:6)

我所知道的只有:

Microsoft's FxCop

当然,这仅适用于已编译的程序集,因此不提供与Sty​​leCop相同的功能,当然也无法帮助完成命名方案。

然而,最接近的是:

Aivosto's Project Analyzer v9.0 for Visual Basic, VB.NET and VBA

完整版本不是免费的,但这是我能找到的最接近StyleCop for VB.NET的东西。

对于Microsoft的StyleCop的VB.NET版本有很多要求,例如code.msdn.microsoft.com网站上this thread中的版本。同样的线程也可以很好地了解VB.NET版本不存在的原因。

答案 2 :(得分:1)

我每天都使用ReSharper,我觉得它对于代码格式化和解决命名问题都很好。它允许配置必须如何强制命名,如何显示问题(提示,建议,警告等)并提供精确的代码格式化程序(空格,paranthesis,换行符,此限定符等)。

请注意,我不知道它是否可以在批处理模式下运行。

答案 3 :(得分:0)

VB编译器中已经内置了一个非常好的样式工具。它被称为Option Explicit On,将其置于源代码文件的顶部或使用Tools + Options + Project和Solutions + VB Defaults,Option Explicit = On。如果之前未启用,则在更改后编译代码时可能会出现大量错误。

如果它是干净的或已经打开,请考虑您已经95%接近编写干净的C#代码并且该语言不再重要。

答案 4 :(得分:0)

默认情况下启用选项显式是一个好主意,应该是标准做法。我认为它应该在开箱即用的VS中默认打开。但它并没有接近执行StyleCop为C#做的开箱即用的规则,也不允许你创建自己的规则。

StyleCop存在的全部原因是因为FxCop仅适用于已编译的程序集,因此可以将Web项目放在一个类似的工具中。使用StyleCop,Web开发人员可以获得相同的强大规则实施和紧密的VS集成。对于任何C#开发人员来说,它都是一个很棒的工具。

不幸的是,它只具有C#功能,VB版本可以满足大型社区需要类似的东西。