Jan 11

Je me suis récemment lancé dans le développement en WPF et MVVM et j’ai vite constaté un problème : c’est bien beau tout ce binding de propriétés, tout ces éléments automatiques mais du coup cela devient très difficile de suivre ce qu’il se passe, de mettre des points d’arrêt et de déboguer tout ce petit monde.

Pour cela, j’ai trouvé pas mal d’outil permettant de pallier ce problème. D’ailleurs je n’ai pas trouvé grand chose qui soit réellement intégré à la Visual Studio, j’imagine que c’est encore un peu trop « récent » pour que Microsoft soit correctement outillé.

Bref, le meilleur outil que j’ai trouvé à ce jour, c’est WPF Inspector.

Le principe (pour ce logiciel et généralement pour les autres) : il s’agit d’une application standalone qui affiche la liste des applications WPF actuellement lancées afin de s’attacher à son processus. Une fois la liaison établie, l’outil affiche une arborescence des éléments de l’application (fenêtres, contrôles…) avec toutes leurs propriétés.

Elle permet donc :

  • D’analyser la structure des contrôles,
  • De voir et modifier les propriétés des différents contrôles,
  • D’appliquer un point d’arrêt lorsqu’une propriété change de valeur,
  • D’accéder au DataContext et ainsi pouvoir analyser les objets sur lesquels sont mappés les contrôles, ce qui facilite l’identification de problèmes de binding,
  • De déboguer les triggers,
  • D’analyser des styles et des différents héritages afin d’identifier la cause de problèmes visuels,
  • D’analyser des ressources disponibles pour un contrôle,
  • D’identifier des problèmes de performance, maintenabilité ou stabilité grâce à un outil d’analyse qui vérifie qu’un certain nombre de règles sont respectées.

Cet outil m’a plusieurs fois sauvé la mise, donc je le recommande chaudement.

Il y a également un autre outils du même acabit : Snoop – the WPF Spy Utility qui semble fournir à peu près les mêmes fonctionnalités que WPF Inspector.

Leave a Reply


*/ ?>