2016-05-01 2 views
3

J'ai installé NDepend (version d'essai de 14 jours) en tant qu'extension Visual Studio 2015, et cela fonctionne maintenant.Comment afficher les métriques de code lke Fan-In/Fan-Out avec NDepend

Je voudrais obtenir des mesures de certaines classes dans ma solution:

    longueur
  • des identifiants
  • ventilateur/ventilateur sur
  • méthode pondérée de couplage classe
  • d'objets classe

Je n'ai trouvé aucune instruction utile de son site officiel, est-ce que quelqu'un sait?

Merci.

Répondre

5

Vous pouvez écrire C# LINQ code queries pour obtenir à peu près n'importe quelle métrique de code dont vous avez besoin.

longueur d'identificateurs

from t in Application.Types 
select new { t, t.SimpleName.Length } 

ventilateur/ventilateur sur

from t in Application.Types 
select new { t, t.TypesUsed, t.TypesUsingMe } 

méthode pondérée de classe

from t in Application.Types 
select new { t, t.CyclomaticComplexity } 

couplage d'objets de classe (selon this definition)

from n in Application.Namespaces 
let NumberOfClasses = n.ChildTypes.Count() 
let NumberOfLinks = n.ChildTypes.SelectMany(t => t.TypesUsed).Distinct().Count() 
select new { n, CBO = NumberOfLinks/(float)NumberOfClasses } 

Vous pouvez ensuite transformer une requête de code en une règle de code avec le préfixe warnif count > 0 et enregistrer la règle pour l'exécuter dans Visual Studio et/ou dans votre BuildProcess.

// <Name>Type name shouldn't exceed 25 char</Name> 
warnif count > 0 
from t in Application.Types 
where t.SimpleName.Length > 25 
orderby t.SimpleName.Length descending 
select new { t, t.SimpleName.Length } 

enter image description here

+0

Cependant, je suis encore à explorer NDepend, pourriez-vous jeter un oeil à cette question: http: //stackoverflow.com/questions/37083906/how-to-use-cqlinq-to- get-metrics-of-methods-and-fields-within-a-single-query, c'est à peu près la même chose, mais je pense que je ferais mieux d'en discuter dans une question séparée, merci. – VincentZHANG

+0

En outre, quel est l'algorithme de complexité cyclomatique pour les méthodes? Est-ce le même que décrit ici: http://staff.unak.is/andy/StaticAnalysis0809/metrics/cyclomatic_complexity.html? J'ai trouvé une discordance. – VincentZHANG

+0

Retrouvez tous les détails sur NDepend CC ici: http://www.ndepend.com/docs/code-metrics#CC –