13
StyleCop avec Visual Studio 2010 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com 02/11/2011 De Alain BELUT

StyleCop avec visual studio 2010

Embed Size (px)

Citation preview

Page 1: StyleCop avec visual studio 2010

StyleCop avec Visual Studio 2010

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

02/11/2011

De Alain BELUT

Page 2: StyleCop avec visual studio 2010

Sommaire

1. Présentation de StyleCop

2. Installation de StyleCop

3. Exécution de StyleCop 4. Le paramétrage (StyleCop Settings)

5. Exécution de StyleCop

5.1 Exécution automatique de StyleCop à chaque compilation 5.2 Faire en sorte que les Warnings StyleCop deviennent des Erreurs

6. Ignorer des règles pour une classe spécifique

7. Conclusion

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/11/2011

De Alain BELUT

Page 3: StyleCop avec visual studio 2010

1. Présentation de StyleCop

• StyleCop analyse le code C# et impose plus de 200 règles syntaxiques qui permettent une meilleure présentation, une meilleure lisibilité, une meilleure maintenabilité et oblige que soit documenté le code.

• C’est un outil mis à disposition par Microsoft désormais en libre téléchargement sur CodePlex. Microsoft l’avait initialement imaginé pour ses propres équipes pour les développeurs C#.

• Que ce soit à titre personnel ou pour travailler en équipe, StyleCop est indispensable. Pourtant quand on me l’avait imposé il y a quelques années, j’ai fortement pu m’en plaindre. Aujourd’hui, je ne peux plus m’en passer ! Et je le préconise fortement !

• Intégrer StyleCop dans un projet existant sera évidemment plus difficile que lors du lancement d’un nouveau projet. Toutefois, comme il est possible de désactiver des règles, on peut parfaitement décider de l’intégrer et de désactiver toutes les règles pour les réactiver petit à petit… Et laisser ainsi le temps aux développeurs de faire les adaptations à leur code.

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/11/2011

De Alain DELUT

Page 4: StyleCop avec visual studio 2010

1. Présentation de StyleCop (suite)

• Voici les domaines couverts par les règles StyleCop :

• Disposition des éléments, des déclarations, des expressions et des clauses de requête

• Placement des accolades, parenthèses, crochets, etc

• Espacement autour des mots clés et de symboles d'opérations

• Interligne

• Placement des paramètres de la méthode dans les déclarations de méthode ou d'appels de méthodes

• Ordonnancement des éléments dans une classe

• Formatage de la documentation au sein des en-têtes des éléments et des en-têtes de fichiers

• Nommage des éléments, des champs et des variables

• Utilisation des types intégrés

• Utilisation des modificateurs d'accès

• Contenu autorisé des fichiers

• Le débogage du texte

• L’intérêt pour un projet c’est que StyleCop oblige tous les intervenants à présenter leur code de la même façon. La lisibilité est donc la même quel que soit celui qui intervient sur telle ou telle partie du code. StyleCop va obliger les développeurs à documenter leur code ce qui facilitera la reprise par de nouveaux intervenants. Enfin, StyleCop va corriger certaines erreurs syntaxiques.

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/11/2011

De Alain BELUT

Page 5: StyleCop avec visual studio 2010

• Rendez-vous ici pour télécharger StyleCop : http://stylecop.codeplex.com/ • La version récupérée pour cette présentation est la version 4.6 • Procéder à l’installation par défaut qui permet une intégration dans Visual Studio 2010 et

MSBUILD.

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/11/2011

De Alain BELUT

2. Installation de StyleCop

Si Visual Studio était lancé vous devrez le fermer et le relancer pour trouver StyleCop.

Page 6: StyleCop avec visual studio 2010

2. Utilisation de StyleCop (suite)

• Pour exécuter, paramétrer StyleCop pour un projet, faites un clic droit sur le projet voulu et vous visualiserez les options relatives à StyleCop :

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/11/2011

De Alain BELUT

Run StyleCop exécutera immédiatement une analyse du code. StyleCop Settings vous permet de modifier le paramétrage des règles à appliquer.

Page 7: StyleCop avec visual studio 2010

• Cliquez sur StyleCop Settings pour faire apparaître la fenêtre de configuration de StyleCop :

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/11/2011

De Alain BELUT

4. Le paramétrage (StyleCop Settings)

Page 8: StyleCop avec visual studio 2010

26/08/2011 02/11/2011

De Alain BELUT

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

Par défaut, toutes les règles sont actives (à gauche). Par défaut, le code des fichiers générés par les assistants de Visual Studio ne seront pas analysés. (et c’est préférable). Il est bon aussi de faire ignorer le code des fichiers design.cs et pour cela décochez Analyse designer files. Si on décide de modifier les règles actives, un fichier Settings.StyleCop va être généré dans le répertoire de notre application. Ce fichier n’est pas inclus dans la solution et ne dois pas l’être, par contre n’oubliez pas de l’ajouter éventuellement à votre gestionnaire de code source pour qu’il soit bien associé au code.

Ce fichier surcharge le fichier de règles par défaut que vous avez dans le répertoire d’installation de StyleCop : En effet vous trouverez aussi dans son répertoire d’installation un fichier Settings.StyleCop qui contient l’ensemble des règles. Cette définition des règles s’applique pour tous les projets qui feront appels à StyleCop. Vous pouvez modifier ce fichier pour désactiver des règles au niveau global donc : les règles désactivées ici, le seront pour tous les projets qui feront appel à StyleCop. A priori, il n’est donc pas recommandé de modifier ici les

règles. Il vaudra mieux désactiver des règles par projet comme nous venons de le voir.

4. Le paramétrage (StyleCop Settings) (suite)

Page 9: StyleCop avec visual studio 2010

02/11/2011 De Alain BELUT

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

5. Exécution de StyleCop

A ce stade pour exécuter une analyse de code avec StyleCop vous devez la demander explicitement en faisant clic droit sur le projet puis Run StyleCop. Les problèmes détectés par StyleCope vont apparaître en tant qu’Avertissements (Warnings). Heureusement nous pouvons faire en sorte d’automatiser l’exécution de StyleCop à chaque Build et nous allons voir que nous pouvons aussi faire en sorte que les Avertissements deviennent des Erreurs (dans le but d’obliger la rigueur du code).

Page 10: StyleCop avec visual studio 2010

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

26/08/2011 02/112011

De Alain BELUT

5.1 Exécution automatique de StyleCop à chaque compilation

Il est possible de faire en sorte que StyleCop s’exécute à chaque Compilation du projet. Mais vous allez devoir modifier le fichier csproj du projet concerné. Faire un clic droit sur le projet puis cliquer sur Ouvrir le dossier dans l’explorateur Windows puis éditez le fichier csproj avec n’importe quel éditeur de texte (même Notepad fera l’affaire). Voici le début d’un fichier csproj. <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> […] Recherchez la ligne contenant : csharp.targets. Ajoutez ce qui suit (en rouge) juste après la ligne trouvée : <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(ProgramFiles)\MSBuild\StyleCop\v4.6\StyleCop.targets" />

ATTENTION : en fonction de la version de StyleCop la ligne, ci-dessus en rouge, pourra changer. Vérifiez au préalable le chemin vers StyleCop.Targets Sauvegardez le fichier modifié. Quand vous allez retourner dans Visual Studio, si le projet était ouvert, Visual Studio vous proposera de le recharger puisque vous avez modifié son contenu. Acceptez !

Page 11: StyleCop avec visual studio 2010

02/11/2011 De Alain BELUT

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

. Si vous voulez garantir que les développeurs feront l’effort d’améliorer le code, pas d’autre

choix que de faire apparaître les Avertissements StyleCop en véritable Erreurs ce qui empêchera ainsi la compilation d’un code de mauvaise qualité.

• Il faut de nouveau modifier le fichier csproj. (voir le point précédent pour voir comment faire)

• Le fichier csproj commence ainsi :

• <?xml version="1.0" encoding="utf-8"?>

• <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

• <PropertyGroup>

• On va ajouter dans la section <PropertyGroup>…</PropertyGroup> ceci :

• <StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>

• Si le projet était ouvert dans Visual Studio, il vous sera proposé de recharger le projet. Acceptez !

5.2 Faire en sorte que les Warnings StyleCop deviennent des Erreurs

Page 12: StyleCop avec visual studio 2010

02/11/2011 De Alain BELUT

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

Utilisez l’attribut SuppressMessage. Par exemple … [SuppressMessage("Microsoft.StyleCop.CSharp.MaintainabilityRules", "SA1400:AccessModifierMustBeDeclared", Justification = "Global.asax par defaut")] public class Global : System.Web.HttpApplication { … Dans l’extrait ci-dessus, nous avons spécifié que la règle SA1400 devait être ignorée pour le classe Global (Global.asax.cs) SuppressMessage attend au moins 3 paramètres : la catégorie, l’identifiant du message et une justification qui explique brièvement pourquoi on ignore la règle. Conclusion Nous avons vu comment configurer un projet pour que le code soit de meilleure qualité en utilisant StyleCop et en imposant la mise en pratique des recommandations de Microsoft pour ce qui concerne la mise en forme du code.

6. Ignorer des règles pour une classe spécifique

Page 13: StyleCop avec visual studio 2010

02/11/2011 De Alain BELUT

Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS Tel: +33 1 44 63 53 13 Fax: 33 1 44 63 53 14 www.novencia.com

Nous avons vu comment configurer un projet pour que le code soit de meilleure qualité en utilisant StyleCop et en imposant la mise en pratique des recommandations de Microsoft pour ce qui concerne

la mise en forme du code.

7. Conclusion