5

我有兴趣为 vb.net 编写静态代码分析器,看看它是否符合我公司的标准编码指南。请告知我必须从哪里开始。

4

8 回答 8

16

我建议您使用FxCop,而不是编写自己的静态代码分析器:而是根据需要编写自定义 FxCop 规则。它会为你节省很多时间。 http://www.binarycoder.net/fxcop/

于 2008-09-16T17:02:32.607 回答
4

我建议你使用 Mono 的宪兵队。这是一个非常好的工具,有很多内置的规则。它还生成漂亮的 HTML 报告。

于 2008-09-16T17:07:20.147 回答
2

如果您需要 mroe 架构洞察力,请使用 NDepend。这个工具并没有停止让我惊讶。它可以做的比 FxCop 多得多。虽然是商业版,但有免费试用版

于 2008-09-16T17:46:32.580 回答
1

FXCop是解决编码问题/错误的良好开端,StyleCop适合编码风格(显然),但如果这两者都不起作用,那么您可以自己编写解析器或使用 .Net Framework 中的VBCodeProvider

于 2008-09-16T17:20:03.470 回答
0

从 FxCop 开始。如果你不能做你正在尝试的事情,试试 NStatic 或 NDepend 之类的东西。

于 2008-09-16T17:02:45.773 回答
0

最好的选择是使用 FxCop 或 StyleCop 并在必要时编写自定义规则。

于 2008-09-16T17:09:44.570 回答
0

使用 FxCop,这不是您想亲自承担的项目。所涉及的解析/词法规则和可能的捕获将是疯狂的。我能想象在保持一点理智的同时做到这一点的唯一方法是使用 Lisp,因为它具有极高的表现力,但同样,最好使用 FxCop。

如果您出于某些(教条式?)原因必须编写自定义的内部工具,我建议您编写一个仅执行基本规则检查的 Lisp 程序。不要试图让它变得全面,我们正在谈论人工智能研究人员在软件解析能力方面正在处理的那种前沿。

只需使用 Lisp 找出可能的明显违规者,或者只是捕捉它最终擅长捕捉的不合规代码,然后对其进行简短的人眼扫描。如果您确实使用 Lisp 编写解析器,我强烈建议您滥用宏。

于 2008-09-16T17:20:22.343 回答
0

我同意其中一位海报的观点,这将是一项相当困难的任务,但我不会从 Lisp 开始,而是从 F# 开始,就像微软为他们的 3rd 方 Windows 驱动程序分析工具所做的那样:

http://arstechnica.com/journals/microsoft.ars/2005/11/10/1796

F# 共享 Lisp 的表现力(好吧,几乎),并且像 VB.NET 一样在 CLR 上工作,这将使整个事情变得更容易。

于 2008-10-09T10:01:21.170 回答