Visualization & Modeling Feature Pack : du neuf pour le C++

Les développeurs C++ ont tendance à être oublié par Microsoft quant il s’agit d’ALM pour les outils client. Il faut dire que l’éditeur s’est penché sur cette discipline après la sortie de .net et celui-ci rend plus facile la réalisation de certains points comme les outils liés à l’architecture.

Par exemple lorsque Visual Studio 2010 est sortit, les fonctionnalités Modeling liées à l’architecture étaient réservées au monde de .net. On peut le comprendre car pour développer ce genre de fonctionnalités on pourra se reposer sur le mécanisme de réflexion qu’offre la plateforme .net.

Lorsqu’un langage ne permet pas de faire de la réflexion (comme le C++), seul le parsing des sources d’un projet permet d’extraire les données que l’on souhaite analyser. Ceux qui font du C++ savent que parser efficacement un fichier .cpp relève de l’exploit que seul le parseur de votre compilateur préféré sait réellement faire.

Voilà pourquoi logiquement (malheureusement) les développeurs natifs ont été privés de ce genre d’outil…jusqu’à ce que le Visualization & Modeling Feature Pack point le bout de son .vsix.

Cette extension de Visual Studio est disponible pour les abonnés de la MSDN qui utilisent Visual Studio Ultimate, celle-ci offre bon nombre de nouvelles fonctionnalités (qui auront été coupées de la RTM ou demandées massivement par les utilisateurs).

Ce billet est consacré, vous l’aurez deviné, aux fonctionnalités liées au C++.

Génération de graphe de dépendances

Cette fonctionnalité de la brique Architect est maintenant iso fonctionnelle avec .net, il est possible de générer des graphes de dépendances pour les binaires, namespace et classes en C++. C’est une excellente nouvelle car même si un projet n’est pas gros il devient vite difficile de s’y retrouver lorsqu’il s’agit de C++. Cerise sur le gâteau, Microsoft nous offre une nouvelle fonctionnalité spécifique au C++: la possibilité de générer un graphe de dépendance des fichiers d’include!

A noter qu’il faudra attendre que l’Intellisense construise sa base de données avant de pouvoir générer un graphe

Pour générer un graphe des includes:

Voilà un exemple sur un projet du SDK de Direct X:

Créer un diagramme de couche et valider l’architecture

Encore une fonctionnalité qui était disponible en .net et qui l’est maintenant en C++. Le principe ne change pas:

  • Vous pouvez créer un diagramme de couches logiques.
  • Créer des relations entre les couches
  • Associer des namespaces ou classes à celles-ci
  • Vérifier que le diagramme logique est respecté dans la pratique en analysant les éléments de la solution.

Conclusion

Ces deux fonctionnalités apportent vraiment un plus au développement C++, certains outils comme CppDepend le faisait déjà, mais voilà un geste envers les développeurs natifs que l’on apprécie, en espérant qu’il y en aura d’autres.