Подтвердить что ты не робот

Любые инструменты для проверки дублирующего кода VB.NET?

Я хочу получить быстрое представление о том, сколько кода "копировать и вставлять" мы имеем, есть много инструментов для проверки С#/Java для этого типа вещей. Есть ли такие инструменты, которые хорошо работают с VB.NET?

(Я видел, что выглядит как много повторяющегося кода, но хочу получить некоторое число, чтобы помочь мне сделать случай для его сортировки)


Обновление прогресса.

Я только что попробовал Simian.

Clone Doctor не поддерживает VB.NET(только С# и VB 6 и многое другое)
Октябрь 2010: добавлен VB.net в langauges, поддерживаемый CloneDR

Clone Detective для Visual Studio поддерживает только С#

SolidSDD - Исходный код Duplication Detector поддерживает только C, С++, С# и Java

DuplicateFinder является открытым исходным кодом, но в остальном выглядит очень похоже на Simian, например, он просто работает над строками текста

ConQAT - Инструмент для непрерывной оценки качества похоже, имеет детектор клонов, который работает для VB. NET (еще не пробовал)

Gendarme немного похож на FXCop и имеет AvoidCodeDuplicatedInSameClassRule, это выглядит очень многообещающим, поскольку это позволяет избежать проблемы работы на текстовом уровне. Просто попробовал, это лучшее решение до сих пор, жаль, что он не ищет с большим объемом.


Прежде чем утверждать, что этот вопрос является дубликатом, проверьте, что в другом вопросе указан VB.NET, так как многие инструменты, которые хорошо работают для С#, не работают работайте так хорошо для VB.NET. (Однако это не удивило бы меня, если бы этот вопрос был настоящим дубликатом)

4b9b3361

Ответ 1

См. вопрос о найденных инструментах.

Ответ 2

В 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.

Ответ 4

[Я автор CloneDR ( "Clone Doctor" ).]

CloneDR параметризуется полной грамматикой для рассматриваемого языка программирования. Таким образом, это не просто соответствие строк. Скорее, он может найти клоны, которые являются синтаксически хорошо сформированными, с вариациями, которые больше, чем просто изменения идентификатора, независимо от того, где они останавливаются или начинаются в строке.

Двигатель, на котором лежит CloneDR, Инструмент DMS Software Reengineering Toolkit" - это инструмент для анализа широкомасштабных систем на любом языке программирования и использует описания языков для управления анализом. DMS имеет широкий набор языковых интерфейсов, уже доступных.

В настоящее время он имеет VBScript и VB6 (как диалекты "Visual Basic" ). У него нет VB.net, но это было бы довольно просто сделать, учитывая инфраструктуру DMS и наш опыт работы с большим количеством других языков.

Итак, CloneDR может сделать это просто отлично, с небольшими усилиями с нашей стороны.

EDIT Октябрь 2010: VB.net добавлен как язык CloneDR, который может обрабатываться.

Ответ 5

Atomiq поддерживает vb.net среди других языков, и результаты хорошо представлены.

Ответ 6

JetBrains опубликовал консольный набор инструментов "Инструменты консоли Resharper" , чтобы выполнить анализ дублирования. После его установки вы можете выполнить тот же анализ, что и TeamCity, и генерировать отчет о дубликатах локально и даже включать поиск дубликатов в пользовательский процесс сборки с помощью MSBuild. Этот инструмент делает именно то, что вам нужно. Более подробную информацию вы можете найти здесь, в сообщении JetBrains .

Ответ 7

Попробуйте Simian:

Simian (анализатор сходства) идентифицирует дублирование в Java, С#, C, С++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy исходный код и даже текстовые файлы.

Ответ 8

Однажды я увидел впечатляющую демо-версию Insight; его CP Miner может быть тем, что вы ищете: http://patterninsight.com/products/cp-miner.php. Кажется, он не зависит от языка, хотя я не мог найти ничего конкретного о языках, отличных от C/С++.