Ответ 1
См. вопрос о найденных инструментах.
Я хочу получить быстрое представление о том, сколько кода "копировать и вставлять" мы имеем, есть много инструментов для проверки С#/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. (Однако это не удивило бы меня, если бы этот вопрос был настоящим дубликатом)
См. вопрос о найденных инструментах.
В CodeRush 11.2 появилась новая функция Duplicate Detection and Consolidation (DDC)
Не забудьте также проверить параметры, так как вы можете запустить его, когда изменилось так много строк, конечно, прошло время и т.д.
Они также опубликовали несколько достойных видео на сайте DevExpress.
Simian: http://www.redhillconsulting.com.au/products/simian/
[Я автор CloneDR ( "Clone Doctor" ).]
CloneDR параметризуется полной грамматикой для рассматриваемого языка программирования. Таким образом, это не просто соответствие строк. Скорее, он может найти клоны, которые являются синтаксически хорошо сформированными, с вариациями, которые больше, чем просто изменения идентификатора, независимо от того, где они останавливаются или начинаются в строке.
Двигатель, на котором лежит CloneDR, Инструмент DMS Software Reengineering Toolkit" - это инструмент для анализа широкомасштабных систем на любом языке программирования и использует описания языков для управления анализом. DMS имеет широкий набор языковых интерфейсов, уже доступных.
В настоящее время он имеет VBScript и VB6 (как диалекты "Visual Basic" ). У него нет VB.net, но это было бы довольно просто сделать, учитывая инфраструктуру DMS и наш опыт работы с большим количеством других языков.
Итак, CloneDR может сделать это просто отлично, с небольшими усилиями с нашей стороны.
EDIT Октябрь 2010: VB.net добавлен как язык CloneDR, который может обрабатываться.
Atomiq поддерживает vb.net среди других языков, и результаты хорошо представлены.
JetBrains опубликовал консольный набор инструментов "Инструменты консоли Resharper" , чтобы выполнить анализ дублирования. После его установки вы можете выполнить тот же анализ, что и TeamCity, и генерировать отчет о дубликатах локально и даже включать поиск дубликатов в пользовательский процесс сборки с помощью MSBuild. Этот инструмент делает именно то, что вам нужно. Более подробную информацию вы можете найти здесь, в сообщении JetBrains .
Попробуйте Simian:
Simian (анализатор сходства) идентифицирует дублирование в Java, С#, C, С++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, Groovy исходный код и даже текстовые файлы.
Однажды я увидел впечатляющую демо-версию Insight; его CP Miner может быть тем, что вы ищете: http://patterninsight.com/products/cp-miner.php. Кажется, он не зависит от языка, хотя я не мог найти ничего конкретного о языках, отличных от C/С++.
Сверните свои рукава и напишите свой собственный парсер, чтобы использовать его с CPD?