NDepend Queries And Rules Edit Box

NDepend est un produit bien connu des développeurs soucieux de produire des applications robustes puisqu'il analyse de façon statique votre code source grâce à des outils très puissants.

Cette version 4.0 apporte son lot de nouveautés :

  • Complète intégration à Visual Studio 11 (futur VS2012),
  • Création de requêtes et de règles en LINQ grâce à CQLinq,
  • CQLinq est basé sur la nouvelle API de NDepend.

Au programme, vous pourrez retrouver plus de 60 nouvelles règles (personnalisables) écrites avec CQLinq mais aussi la mise à jour et l'optimisation des règles précédemment présentent. Mieux encore, un outil permet de convertir vos requêtes CQL en CQLinq automatiquement !
Vous trouverez aussi 14 Power Tools open-sources basés sur NDepend.API que vous pourrez adapter facilement pour vos besoins !

Un petit exemple de la puissance de NDepend, le code suivant permet de rechercher toutes les instances d'objet Disposable qui n'appellent pas la méthode Dispose() :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            
              // <Name>Types with disposable instance fields must be disposable</Name>
              
warnif count > 0

let iDisposable = ThirdParty.Types.WithFullName("System.IDisposable").FirstOrDefault()
where iDisposable != null // iDisposable can be null if the code base doesn't use at all System.IDisposable

from t in Application.Types where
!t.Implement(iDisposable) &&
!t.IsGeneratedByCompiler

let instanceFieldsDisposable =
t.InstanceFields.Where(f => f.FieldType != null &&
f.FieldType.Implement(iDisposable))

where instanceFieldsDisposable.Count() > 0
select new { t, instanceFieldsDisposable }

Pour en savoir plus, je vous conseille vivement d'aller voir la page consacrée à NDepend v4.