AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

Estrazione dell'elenco dei file di codice da un progetto C#

Per calcolare alcune metriche con Source Monitor sui sorgenti del progetto a cui sto lavorando ho fatto una piccola utility che estrae i path di tutti i file con estensione cs che non siano user interface (UserControl, WindowsForms, ecc.) da un file di progetto .csproj.

La classe che contiene la logica è la seguente:

public class ProjectFilesReader

{

public ProjectFilesReader()

{

}

public string[] ReadCodeFilesList(string path)

{

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(path);

XmlNodeList nodes = xmlDoc.SelectNodes(@"/VisualStudioProject/CSHARP/Files/Include/File[@SubType='Code']");

StringCollection files = new StringCollection();

foreach(XmlNode node in nodes)

files.Add(node.Attributes["RelPath"].Value);

string[] filesArray = new string[files.Count];

files.CopyTo(filesArray, 0);

return filesArray;

}

}

Notare il parametro SubType='Code' che permette di filtrare i file per tipo. Altri possibili valori per SubType sono: Form, UserControl, Component, ecc.

 

Print | posted on martedì 21 marzo 2006 16:42 |

Feedback

Gravatar

# re: Estrazione dell'elenco dei file di codice da un progetto C#

Il tool di cui parli è molto interessante, l'ho subito provato per vedere cosa combina su un progetto a cui lavoro da 6 settimane circa, ed ho ottenuto questo:
20723 lines
9956 statements
6.5 % comments
6.5 % docs
183 classes
6.23 methos / classes
2.44 calls / method
5.28 Sttmts/Method
30 Max complexity
9+ Max depth
2.09 Average depth

Purtroppo le mie conoscenze teoriche sono sufficientemente basse da non farmi capire bene i risultati grafici....
21/03/2006 18:28 | Felice Pollano
Gravatar

# re: Estrazione dell'elenco dei file di codice da un progetto C#

A grandi linee servono per avere un'indicazione sullo stato di salute del codice. I numeri di per se stessi non servono a nulla se non si ha un obiettivo e dei range di valori che si vogliono raggiungere.
Io lo uso soprattutto per l'indice di complessità e depth per individuare le parti del codice del mio team troppo complesso e che necessita un refactoring.
Per sapere come vengono calcolati puoi guardare sull'help di SourceMonitor.
21/03/2006 20:05 | Antonio Ganci
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET