Comme beaucoup d’entre nous, le 11 Février dernier je me trouvais au Palais des Congrès à Paris pour les Techdays 2014. Je vous passerai les sessions inintéressantes, ainsi que celles abordées dans les précédentes publications. Pour ma part je vais vous parler de NDepend. En effet, nous avons eu la chance d’avoir une session dédiée exclusivement à NDepend dans sa version 5 et présentée par Bruno Boucard et Patrick Smacchia, ce dernier étant ni plus ni moins que le créateur en personne.

Pour ceux qui ne connaissent pas encore NDepend, cet outil connu et reconnu par la communauté, utilisé par plus de 4000 clients dans le monde (Microsoft, NASA, Intel, Google, Sony….), permet d’analyser votre code .Net soit à l’aide du client lourd, soit à l’aide du plugin compatible avec les versions 2008, 2010, 2012 et 2013 de Visual Studio. NDepend peut même s’intégrer dans votre process de build à travers Team Foundation Server par exemple.

Au cours de la présentation, Patrick et Bruno nous ont fait une démonstration de l’outil sur un projet que Patrick connait bien puisqu’il s’agit de NDepend lui-même ! Les équipes de NDepend utilisent leur propre produit au quotidien pour analyser le code de NDepend.

Mais NDepend ça sert à quoi concrètement ? Bien évidemment à analyser le code comme nous l’avons dit précédemment, mais cette analyse vous permettra de :

  • Rendre le code plus maintenable,
  • Œuvrer pour le moyen et long terme,
  • Reprendre en main un code legacy,
  • Rendre le métier du développeur plus agréable et stimulant,
  • Donner des métriques au management pour prévenir les dérives.

NDepend vous permet tous cela grâce à ces fonctionnalités :

  • Règles et requête de code en C# Linq
  • Visualisation de dépendances, Graph et Matrice
  • Métriques de code
  • Analyse de couverture de code
  • Tendances
  • Code diff
  • Génération de rapports

NDepend vous fournit par défaut 200 règles permettant de contrôler la qualité de votre code. Ces règles ne sont ni plus ni moins que des requêtes C# Linq, en effet un des points forts de NDepend et de pouvoir requêter votre code à l’aide de C# Linq, en effet NDepend parse votre code pour le modéliser sous forme objet, vous pouvez ensuite utiliser ce modèle à partir de votre requête Linq. Les possibilités sont très vastes et vous pouvez visualiser le résultat graphiquement. Prenons l’exemple suivant :

 NDepend project graph

Source: http://www.ndepend.com

Dans cette vue les méthodes sont représentées par des carrés dont la surface est proportionnelle au nombre de lignes de code. Elles sont regroupées par projet comme on peut le voir. Dans la partie droite on peut voir une requête Linq demandant les plus grosses méthodes, le résultat est affiché en bleu. L’avantage du plugin est que vous pouvez effectuer ces actions directement dans Visual Studio.

Une autre vue très intéressante proposée par NDepend : le graph de dépendances.

NDepend dependency graph

Source: http://www.ndepend.com

Ce graph est très utile pour analyser l’architecture de votre solution, que ce soit pour découvrir un projet ou en améliorer la structure. Vous avez évidemment la possibilité d’analyser plus finement mais aussi d’épurer le graph pour ne garder que les éléments qui vous intéressent.

Jusqu’ici les habitués n’ont rien découvert, alors voyons une nouvelle fonctionnalité de NDepend 5 : le Dashboard.

NDepend dashboard

 Source: http://www.ndepend.com

Le dashboard est une vue synthétique vous fournissant des métriques sur l’évolution de projet. Ici on peut voir le dashboard du projet NDepend entre les versions 4 et 5. Comme vous pouvez le remarquer ce dashboard offre également des informations sous forme graphique :

NDepend detail dashboard

Source: http://www.ndepend.com

Ici on voit l’évolution de la couverture de code sur plusieurs années. On ne manquera pas de noter que le graphique est paramétrable.

Vous l’aurez bien compris, NDepend vous permet de découvrir ou redécouvrir votre projet et d’en améliorer la qualité.

Je ne ferai pas le tour de toutes les nouveautés et je vous invite à vous rendre directement sur le site de NDepend (http://www.ndepend.com) afin d’avoir de plus amples informations et de télécharger la version d’essai, car la meilleure façon de prendre conscience de la puissance de l’outil c’est encore de le tester 😉