Domanda

Vorrei avere un'idea veloce per quanto “copia e incolla” di codifica che abbiamo, ci sono molti strumenti per C # / Java per verificare la presenza di questo tipo di cose. Ci sono questi strumenti che funzionano bene con VB.NET?

(Ho visto quello che sembra un sacco di codice ripetuto, ma desiderano ottenere qualche numero per aiutarmi a fare un caso per l'ordinamento fuori)


Aggiornamento sui progressi compiuti.

Ho appena provato Simian.

Clone dottore non supporta VB.NET (solo C # e VB 6 e il lotto di altri)
Ottobre 2010: VB.net aggiunto linguaggi supportati da CloneDR

Clone Detective per Visual Studio supporta solo C #

SolidSDD - Source Code duplicazione Detector solo supporta C, C ++, C # e Java

DuplicateFinder è open source, ma per il resto sembra molto partita come Simian, ad esempio, funziona da solo sulle linee di text

ConQAT - Continuous Quality Assessment Toolkit seems di avere un rilevatore di clone che funziona per VB.NET (non ancora provato )

Gendarme è un po 'come FxCop e ha una regola AvoidCodeDuplicatedInSameClassRule, questo sembra molto promettente, in quanto evita il problema di lavorare a livello di testo. appena provato, è la soluzione migliore finora, peccato che non ricerca con una maggiore portata.


Prima sostenendo che questa domanda è un duplicato, si prega di controllare che gli altri indirizzi di domanda VB.NET , come un sacco di strumenti che funzionano bene per C # non lo fanno funzionare così bene per VB.NET . (Tuttavia non sarebbe mi sorprende se questa domanda è un vero e proprio duplicato)

È stato utile?

Soluzione 9

per gli strumenti che ho trovato vedere la questione.

Altri suggerimenti

CodeRush 11.2 ha introdotto una nuova funzionalità chiamata 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

Assicurati di controllare le opzioni per esso pure, come si può fare eseguire quando così tante linee sono cambiati, certo tempo è passato, ecc.

Hanno pubblicato alcuni video decenti sul sito DevExpress troppo.

[Sono l'autore di CloneDR ( "clone Dottore") .]

CloneDR viene parametrizzata da una grammatica completa per il linguaggio di programmazione in questione. Quindi non si limita a confrontare le righe. Piuttosto, si può trovare cloni che sono sintatticamente ben formate, con variazioni che sono più di un semplice identificatore cambiamenti, indipendentemente da dove si fermano o cominciano in una linea.

Il motore su cui poggia CloneDR, Il DMS Software Reengineering Toolkit " è uno strumento per l'analisi dei sistemi su larga scala in qualsiasi linguaggio di programmazione, e utilizza le descrizioni linguistiche per guidare l'analisi. DMS ha una grande varietà di fronte linguaggio finisce già disponibili.

Al momento ha VBScript e VB6 (come dialetti di "Visual Basic"). Non ha VB.net, ma che sarebbe piuttosto semplice da fare data l'infrastruttura DMS e la nostra esperienza con un sacco di altre lingue.

Quindi, CloneDR potrebbe farlo bene, con un piccolo po 'di sforzo da parte nostra.

EDIT ottobre 2010: VB.net aggiunto come lingua CloneDR in grado di elaborare

.

Atomiq supporta vb.net tra le altre lingue, ed i risultati sono ben presentato.

JetBrains strumento console pubblicato impostato ReSharper Console Strumenti per eseguire l'analisi di duplicazione. Una volta installato permette di fare la stessa analisi come fa TeamCity e generare i duplicati riportano a livello locale e includere anche la ricerca dei duplicati nel processo di generazione personalizzata con MSBuild. Questo strumento fa esattamente quello che ti serve. Maggiori dettagli si possono trovare qui a JetBrains post del blog

Simian :

  

Simian (somiglianza Analyzer) identifica la duplicazione in Java, C #, C, C ++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic, il codice sorgente Groovy e file di testo, anche semplici.

Una volta ho visto una demo impressionante di modello Insight; la sua Miner CP può essere quello che stai cercando: http://patterninsight.com/products/cp -miner.php . Sembra essere indipendente dal linguaggio, anche se non ho trovato nulla esplicito su lingue diverse C / C ++.

Rimboccati le maniche e scrivere il proprio parser usarlo con CPD ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top