Les différences entre FXCop et l'analyse statique de Team System Developer Edition

Une des questions qui revient souvent en avant-vente est : quelles sont les différences entre FXCop et l'analyse statique de Visual Studio Team System Developer Edition ?

Les voici en quelques lignes :

  • FXCop n'est pas supporté par Microsoft.
  • Intégration native de l'analyse statique dans Visual Studio 2008 Team System Developer Edition et Visual Studio Team Suite.
  • L'analyse statique inclut un ensemble de règles supplémentaires, avec 2 catégories en plus: «Reliability» et «Maintenability». Quelques exemples:

AvoidExcessiveClassCoupling, AvoidExcessiveComplexity, AvoidExcessiveInheritance, AvoidUnmaintainableCode, ReviewMisleadingFieldNames, VariableNamesShouldNotMatchFieldNames, AvoidCallingProblematicMethods, DoNotLockObjectsWithWeakIdentity, DoNotTreatFibersAsThreads, RemoveCallsToGCKeepAlive, et UseSafeHandleToEncapsulateNativeResources

  • Les règles présentes dans FXCop 1.35 mais pas dans Team System 20005 sont présentes dans l'édition 2008.
  • L'intégration avec les politiques de checkin. On peut conditionner les checkins avec le respect de règles d'analyse statique définies localement ou sur le serveur TFS.
  • Intégration avec MSBuild, toutes les alertes et les erreurs sont gérées dans les sorties standards des compilations.
  • On peut demander à ne plus faire apparaître les alertes dans les sorties si on le souhaite. Pour se concentrer sur les règles les plus importantes.
  • Support natif des projets Web
  • Affichage de métriques de code du projet (couplage de classe, nombre de ligne de code exécutable, nombre de branchement dans le code, complexité cyclomatique, profondeur d'héritage)

 

Un résumé par version des outils :

 

FxCop 1.35

Visual Studio 2005

FxCop 1.36 beta 2

Visual Studio 2008

Stabilité de la version

Oui

Oui (SP1)

Non

Oui (RTM)

Compatibilité des règles personnalisées possible

VS 2005 (recompilation)

FxCop 1.35 (recompilation)

VS 2008 (sans recompilation)

FxCop 1.36 beta 2 (sans recompilation)

Assemblies analysables

1.0,1.1,2.0

2.0

1.0, 1.1, 2.0,3.0,3.5

2.0, 3.0, 3.5

Performances relatives estimées (sur la base des informations des équipes FxCop et Code Analysis)

-

-

+

+

Il ne faut pas oublier les autres fonctionnalités qui font la valeur de Team System Developer Edition : couverture de code, profiling....