Pregunta

Deseo tener una idea rápida de la cantidad de “copiar y pegar” de codificación que tenemos, hay muchas herramientas para C # / Java para comprobar este tipo de cosas. ¿Hay algún tipo de herramientas que funcionan bien con VB.NET?

(he visto lo que parece ser un montón de código repetido, pero que desean obtener un número que me ayude a hacer un caso para clasificarlos)


Actualización sobre el progreso.

Yo sólo he tratado de simio.

Clon doctor no soporta VB.NET (sólo C # y VB 6 y mucho de otra)
Octubre 2010: VB.net añadido a langauges apoyados por CloneDR

Clone detective para Visual Studio sólo es compatible con C #

SolidSDD - Código Fuente Duplicación detector sólo apoya C, C ++, C # y Java

DuplicateFinder es de código abierto, pero por lo demás se ve muy partido como simio, por ejemplo, que sólo funciona en las líneas de texto

ConQAT - Evaluación continua de la calidad Toolkit seems tener un detector clon que funciona para VB.NET (no probado todavía )

Gendarme es un poco como FXCop y tiene un regla AvoidCodeDuplicatedInSameClassRule, esto se ve muy prometedor, ya que evita el problema de trabajar a nivel de texto. Sólo lo intentó, es la mejor solución hasta el momento, que pena que no busca con un alcance mayor.


Antes de afirmar que esta pregunta es un duplicado, por favor, compruebe que las otras direcciones de interrogación VB.NET , como una gran cantidad de herramientas que funcionan bien para C # no lo hacen trabajar tan bien para VB.NET . (Sin embargo, no me sorprendería si esta pregunta es un verdadero duplicado)

¿Fue útil?

Solución 9

Vea la cuestión de las herramientas que he encontrado.

Otros consejos

CodeRush 11,2 introducido una nueva característica llamada detección de duplicados y Consolidación (DDC)

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

Asegúrese de revisar las opciones para que así, como se puede hacer que se ejecute cuando se cambian tantas líneas, sin duda ha pasado el tiempo, etc.

Se han publicado algunos videos decentes en el sitio DevExpress también.

[Soy el autor de CloneDR ( "Clon Doctor") .]

CloneDR está parametrizada por una gramática completa para el lenguaje de programación que se trate. Por lo tanto, no sólo coincide con las líneas. Más bien, se puede encontrar clones que son sintácticamente bien formados, con variaciones que son algo más que cambios identificador, independientemente de donde se detienen o comienzan en una línea.

El motor sobre el que descansa CloneDR, El software DMS Reingeniería Toolkit " es una herramienta para el análisis de sistemas a gran escala en cualquier lenguaje de programación, y utiliza descripciones en lenguaje para conducir el análisis. DMS tiene una amplia variedad de idiomas frontal termina ya disponibles.

En la actualidad se dispone de VBScript y Visual Basic 6 (como dialectos de "Visual Basic"). No tiene VB.net, pero que sería bastante sencillo de hacer dada la infraestructura de DMS y nuestra experiencia con muchos otros idiomas.

Así, CloneDR podría hacerlo muy bien, con un poco de esfuerzo por nuestra parte.

EDITAR octubre de 2010: VB.net añadió como lengua CloneDR puede procesar

.

Atomiq apoya vb.net entre otras lenguas, y los resultados están bien presentado.

JetBrains herramienta de consola publicada establece Herramientas ReSharper Consola para ejecutar análisis duplicación. Una vez instalado, le permite hacer el mismo análisis que hace TeamCity y generar duplicados informan a nivel local e incluso incluyen la búsqueda de duplicados en proceso de construcción a medida con MSBuild. Esta herramienta hace exactamente lo que necesita. Más detalles se pueden encontrar aquí en JetBrains entrada de blog

Trate Simian :

  

Simian (Similitud Analyzer) identifica la duplicación en Java, C #, C, C ++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, el código fuente Groovy y archivos de texto sin formato, incluso.

Una vez vi una demostración impresionante de Patrón Insight; su Miner CP puede ser lo que está buscando: http://patterninsight.com/products/cp -miner.php . Parece ser independiente del lenguaje, aunque no pude encontrar nada explícito acerca de idiomas distintos del C / C ++.

Arremangarse y escribir su propio analizador usarlo con CPD ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top