Determinare SLOC e la complessità di C # e C ++ da .NET
Domanda
Uso SourceMonitor nel mio progetto da un paio d'anni per tenere traccia della complessità del codice sorgente e SLOC di base (compresi i commenti) per i componenti C # e C ++. Questi sono utilizzati per i rapporti esterni ai nostri clienti, quindi non sono in grado di discutere i loro meriti o la mancanza di.
Ho lavorato su uno strumento di analisi dei repository in grado di darmi una visione istantanea del progetto in qualsiasi data / ora. La fase successiva che voglio aggiungere è la memorizzazione nella cache delle metriche per un file e una revisione specifici.
So che SourceMonitor può essere copiato per consentirmi di fornire i file da testare ed estrarre le metriche dal file di risultati CSV o XML.
Esiste una libreria nativa in .NET che potrei usare per fare la stessa cosa, ad es. evitare di generare un processo esterno e analizzare i risultati.
Ho davvero bisogno solo delle seguenti metriche:
- SLOC
- Numero di righe di commento
- Complessità del metodo più complesso
- Nome del metodo più complesso
Devo eseguirlo su C # e sul normale codice C ++ .
Modifica: poiché ho già uno strumento che fornisce la GUI e i report che desidero, le metriche devono essere copiate o generate usando una libreria / API senza passaggi manuali. Idealmente, voglio ottenere metriche per un file / revisione specificato (piuttosto che un intero progetto) che la mia utility trascinerà automaticamente dal controllo versione.
NOTA: ho creato una taglia per questo ed ero in vacanza quando è scaduto ... la risposta NDepends NON mi soddisfa in quanto non guarda il codice sorgente ma l'assemblaggio stesso !!!
Soluzione 5
Anche se non ho mai trovato un prodotto .NET in grado di analizzare C # e C ++ allo stesso modo, sono riuscito a trovare un prodotto di facile utilizzo, CODECOUNT che supporta quelle lingue e molte altre.
Ha una semplice riga di comando, a differenza di SourceMonitor che era in uso sul mio progetto fino a quando CODECOUNT lo ha sostituito.
Altri suggerimenti
Puoi trovare un codice open source per C # SLOC e commenti qui: http://code.google.com/p/projectpilot/source/browse/#svn/trunk/ProjectPilot.Framework/Metrics
Uno strumento affidabile basato sulla riga di comando per il calcolo di SLOC è Cloc . Supporta molte lingue tra cui C # e C ++. I formati di output supportati sono xml, csv e sql.
Questo non ti darà la complessità della funzione e non è programmabile (di cui sono a conoscenza), ma SlickEdit Gadgets per VS ha un ottimo strumento di report SLOC e puoi usarlo da Esplora soluzioni e ti fornirà un report dettagliato all'indirizzo il livello di file, progetto o soluzione.
Puoi ottenerlo qui: http://www.slickedit.com/content/view / 441