DrivenMetrics è uno strumento da riga di comando C# open source. Le funzionalità principali sono isolate dal client della console della riga di comando come libreria (il progetto principale è disponibile here).
Anche se abbastanza semplice, può soddisfare le tue necessità: è gratuito, conta il numero di linee e calcola la complessità ciclomatica (numero di potenziali percorsi di codice) dei metodi.
Questo viene eseguito tramite l'analisi diretta dell'IL grazie a Mono.Cecil (la stessa libreria su cui si basa NDepend). Questo permette l'analisi da eseguire su gruppi costruiti da codice scritto in C#, VB.Net, ...
- Il progetto è stato annunciato here.
- La sorgente del codice è disponibile su github.
- Una versione a pacchetto è anche available.
- Funziona sia su Windows che su Mono.
UPDATE:
Un'altra opzione sarebbe la sorprendenteGendarme, uno strumento di analisi statica del progetto Mono.
Come esempio di utilizzo, il codice seguente mostra la complessità ciclomatica di ogni metodo in un assieme.
ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly);
foreach (var type in module.Types)
{
foreach (var me in type.Methods)
{
if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled)
continue;
var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me);
Console.WriteLine("{0}: {1}", me.ToString(), r);
}
}
- Il progetto è descritto here
- Il codice sorgente è disponibile su github
- stampa confezionati sono anche available
- Funziona sia su Windows e Mono
Avete mai trovato una libreria? O come hai risolto questo problema? – RoflcoptrException
No, questo era parte di un'idea del programma che avevo, ma sfortunatamente il mio tempo attuale non mi consente di continuare e creare l'app. Pertanto, anche io non ho indagato su ulteriori ricerche per una libreria appropriata – Juri
ok grazie. quindi devo cercare ulteriormente;) – RoflcoptrException