任何检查重复的VB.NET代码的工具?

时间:2010-02-15 15:34:52

标签: vb.net code-analysis static-analysis code-duplication

我希望能够快速了解​​我们有多少“复制和粘贴”编码,有很多工具可供C#/ Java检查这类事情。有没有这样的工具可以很好地与VB.NET一起使用?

(我已经看到了很多重复代码的内容,但希望得到一些数字来帮我解决问题)


进展更新。

我刚刚尝试过Simian。

Clone Doctor不支持VB.NET(只有C#和VB 6以及其他很多)
2010年10月:VB.net添加到CloneDR支持的语言

Clone Detective for Visual Studio仅支持C#

SolidSDD - Source Code Duplication Detector仅支持C,C ++,C#和Java

DuplicateFinder是开源的,但看起来非常匹配像Simian,例如它只适用于文本行

ConQAT - Continuous Quality Assessment Toolkit seems to have a clone detector that works for VB.NET(尚未尝试过)

Gendarme有点像FXCop并且有AvoidCodeDuplicatedInSameClassRule规则,这看起来非常有前景,因为它避免了在文本级别工作的问题。 刚尝试过,它是迄今为止最好的解决方案,可惜它没有更广泛的搜索范围。


在声明此问题重复之前,请检查其他问题是否解决了 VB.NET ,因为许多适用于 C#的工具不适用为 VB.NET 工作得很好。 (但如果这个问题真的重复,我不会感到惊讶)

9 个答案:

答案 0 :(得分:3)

CodeRush 11.2引入了一项名为Duplicate Detection and Consolidation(DDC)的新功能

http://community.devexpress.com/blogs/markmiller/archive/2011/11/29/duplicate-detection-and-consolidation-in-coderush-for-visual-studio.aspx

确保检查它的选项,因为你可以在更改了很多行时运行,当然时间已经过去等等。

他们也在DevExpress网站上发布了一些不错的视频。

答案 1 :(得分:1)

答案 2 :(得分:1)

[我是CloneDR ("Clone Doctor")的作者。]

CloneDR通过所讨论的编程语言的完整语法进行参数化。所以它不仅仅匹配线条。相反,它可以找到语法上格式良好的克隆,其变化不仅仅是标识符更改,无论它们停在哪里或从一行开始。

CloneDR所依赖的引擎The DMS Software Reengineering Toolkit"是一种用于分析任何编程语言的大规模系统的工具,并使用语言描述来推动分析。 DMS有各种各样的语言前端。

目前它有VBScript和VB6(作为“Visual Basic”的方言)。它没有VB.net,但鉴于DMS基础设施和我们使用许多其他语言的经验,这将非常简单。

所以,CloneDR可以做到这一点,只需要我们付出一点努力。

2010年10月编辑:VB.net添加为CloneDR可以处理的语言。

答案 3 :(得分:1)

Atomiq支持vb.net以及其他语言,结果很好。

答案 4 :(得分:1)

JetBrains发布了控制台工具集this以运行复制分析。安装后,它允许您进行与TeamCity相同的分析,并在本地生成重复报告,甚至包括重复搜索到MSBuild的自定义构建过程。该工具完全符合您的需求。您可以在JetBrains Resharper Console Tools

找到更多详细信息

答案 5 :(得分:0)

尝试Simian

  

Simian(相似性分析器)识别Java,C#,C,C ++,COBOL,Ruby,JSP,ASP,HTML,XML,Visual Basic,Groovy源代码甚至纯文本文件中的重复。

答案 6 :(得分:0)

我曾经看过一个令人印象深刻的Pattern Insight演示;其CP Miner可能正是您所寻找的:http://patterninsight.com/products/cp-miner.php。它似乎与语言无关,但我找不到任何关于C / C ++以外语言的明确内容。

答案 7 :(得分:-1)

卷起袖子并写上your own parser以便与CPD一起使用?

答案 8 :(得分:-1)

查看我找到的工具的问题。