SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
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
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
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
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
• 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 BELUT2. Installation de StyleCop
Si Visual Studio était lancé vous devrez le fermer et le relancer pour trouver StyleCop.
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.
• 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 BELUT4. Le paramétrage (StyleCop Settings)
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)
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).
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)MSBuildStyleCopv4.6StyleCop.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 !
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
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
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

Contenu connexe

En vedette

Iluminação LED - Eficiência Energética
Iluminação LED - Eficiência EnergéticaIluminação LED - Eficiência Energética
Iluminação LED - Eficiência EnergéticaFlavio Casemiro
 
Detente
DetenteDetente
Detentemoipc
 
Calentamiento global
Calentamiento globalCalentamiento global
Calentamiento globalmirashiro81
 
L'hydrogène dans tous ses états - 1er décembre 2016
L'hydrogène dans tous ses états - 1er décembre 2016L'hydrogène dans tous ses états - 1er décembre 2016
L'hydrogène dans tous ses états - 1er décembre 2016Cluster TWEED
 
Grupo 7 a eng amb
Grupo 7 a eng ambGrupo 7 a eng amb
Grupo 7 a eng ambYuri José
 
141014 projet power to gas aful chantrerie emn
141014 projet power to gas aful chantrerie emn141014 projet power to gas aful chantrerie emn
141014 projet power to gas aful chantrerie emnInterconsulaire 909
 
Risco de incêndio e explosão
Risco de incêndio e explosãoRisco de incêndio e explosão
Risco de incêndio e explosãoisabelourenco
 
Resíduos sólidos industrias
Resíduos sólidos industriasResíduos sólidos industrias
Resíduos sólidos industriasDenise Marinho
 
Galopades du patrimoine 2015
Galopades du patrimoine 2015Galopades du patrimoine 2015
Galopades du patrimoine 2015Laurent Rebours
 
Absorção gasosa
Absorção gasosaAbsorção gasosa
Absorção gasosaKatia Souza
 
référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)Ludovic Renoult
 
Cadrage et composition d'une Image
Cadrage et composition d'une ImageCadrage et composition d'une Image
Cadrage et composition d'une ImagePierric CHALOIS
 
Geochimie des hydrocarbures mpgp1 14 15
Geochimie des hydrocarbures mpgp1 14 15Geochimie des hydrocarbures mpgp1 14 15
Geochimie des hydrocarbures mpgp1 14 15Hassene AFFOURI
 

En vedette (20)

Silverlight
SilverlightSilverlight
Silverlight
 
Iluminação LED - Eficiência Energética
Iluminação LED - Eficiência EnergéticaIluminação LED - Eficiência Energética
Iluminação LED - Eficiência Energética
 
Detente
DetenteDetente
Detente
 
Calentamiento global
Calentamiento globalCalentamiento global
Calentamiento global
 
L'hydrogène dans tous ses états - 1er décembre 2016
L'hydrogène dans tous ses états - 1er décembre 2016L'hydrogène dans tous ses états - 1er décembre 2016
L'hydrogène dans tous ses états - 1er décembre 2016
 
Energie
EnergieEnergie
Energie
 
Solda tig aula
Solda tig aulaSolda tig aula
Solda tig aula
 
Usinagem a laser
Usinagem a laserUsinagem a laser
Usinagem a laser
 
Grupo 7 a eng amb
Grupo 7 a eng ambGrupo 7 a eng amb
Grupo 7 a eng amb
 
141014 projet power to gas aful chantrerie emn
141014 projet power to gas aful chantrerie emn141014 projet power to gas aful chantrerie emn
141014 projet power to gas aful chantrerie emn
 
Risco de incêndio e explosão
Risco de incêndio e explosãoRisco de incêndio e explosão
Risco de incêndio e explosão
 
Sanclarpps
SanclarppsSanclarpps
Sanclarpps
 
Resíduos sólidos industrias
Resíduos sólidos industriasResíduos sólidos industrias
Resíduos sólidos industrias
 
Galopades du patrimoine 2015
Galopades du patrimoine 2015Galopades du patrimoine 2015
Galopades du patrimoine 2015
 
Absorção gasosa
Absorção gasosaAbsorção gasosa
Absorção gasosa
 
référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)référencement naturel site Internet (CCI Landes)
référencement naturel site Internet (CCI Landes)
 
Cadrage et composition d'une Image
Cadrage et composition d'une ImageCadrage et composition d'une Image
Cadrage et composition d'une Image
 
Hamburg - Die Metropole am Wasser
Hamburg - Die Metropole am WasserHamburg - Die Metropole am Wasser
Hamburg - Die Metropole am Wasser
 
Geochimie des hydrocarbures mpgp1 14 15
Geochimie des hydrocarbures mpgp1 14 15Geochimie des hydrocarbures mpgp1 14 15
Geochimie des hydrocarbures mpgp1 14 15
 
clase_9mayo_Curso Fotografia histórica (2)
clase_9mayo_Curso Fotografia histórica (2)clase_9mayo_Curso Fotografia histórica (2)
clase_9mayo_Curso Fotografia histórica (2)
 

Similaire à StyleCop avec visual studio 2010

Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
Les générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienLes générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienNicolas Carlo
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6Microsoft
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)LaNetscouade
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
Qq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsodyQq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsodyCERTyou Formation
 
Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1
Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1
Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1CERTyou Formation
 
Proposition_commerciale_ISARTIS-PERENCO_VF
Proposition_commerciale_ISARTIS-PERENCO_VFProposition_commerciale_ISARTIS-PERENCO_VF
Proposition_commerciale_ISARTIS-PERENCO_VFThierry Serranou
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)Nicolas Aguenot
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)guicara
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQubeVincent Biret
 
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...Adrian CID ALMAGUER
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Rs512 g formation-utiliser-ibm-rational-clearcase-pour-unix
Rs512 g formation-utiliser-ibm-rational-clearcase-pour-unixRs512 g formation-utiliser-ibm-rational-clearcase-pour-unix
Rs512 g formation-utiliser-ibm-rational-clearcase-pour-unixCERTyou Formation
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...
Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...Pierre-Henri Gache
 

Similaire à StyleCop avec visual studio 2010 (20)

Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Les générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidienLes générateurs de code, pour se simplifier la vie au quotidien
Les générateurs de code, pour se simplifier la vie au quotidien
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Qq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsodyQq001 g formation-introduction-a-ibm-rational-rhapsody
Qq001 g formation-introduction-a-ibm-rational-rhapsody
 
Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1
Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1
Rs504 g formation-utiliser-ibm-rational-clearcase-pour-windows-v7-1
 
Proposition_commerciale_ISARTIS-PERENCO_VF
Proposition_commerciale_ISARTIS-PERENCO_VFProposition_commerciale_ISARTIS-PERENCO_VF
Proposition_commerciale_ISARTIS-PERENCO_VF
 
Visual studio 2012
Visual studio 2012Visual studio 2012
Visual studio 2012
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)
 
Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)Formation JavaScript full-stack (JS, jQuery, Node.js...)
Formation JavaScript full-stack (JS, jQuery, Node.js...)
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Php 100k
Php 100kPhp 100k
Php 100k
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube
 
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node...
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Rs512 g formation-utiliser-ibm-rational-clearcase-pour-unix
Rs512 g formation-utiliser-ibm-rational-clearcase-pour-unixRs512 g formation-utiliser-ibm-rational-clearcase-pour-unix
Rs512 g formation-utiliser-ibm-rational-clearcase-pour-unix
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...
Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...Testez en continu avec le Cloud  ou "Comment réduire le TTM  et le coût de l’...
Testez en continu avec le Cloud ou "Comment réduire le TTM et le coût de l’...
 

Plus de Novencia Groupe

Datalake de l'idée à la plateforme
Datalake de l'idée à la plateformeDatalake de l'idée à la plateforme
Datalake de l'idée à la plateformeNovencia Groupe
 
Ambient intelligence & bigdata
Ambient intelligence & bigdataAmbient intelligence & bigdata
Ambient intelligence & bigdataNovencia Groupe
 
Workshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance uniqueWorkshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance uniqueNovencia Groupe
 
Workshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOURWorkshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOURNovencia Groupe
 
L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2Novencia Groupe
 
L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2Novencia Groupe
 
Les Acronymes financiers de 2014
Les Acronymes financiers de 2014Les Acronymes financiers de 2014
Les Acronymes financiers de 2014Novencia Groupe
 
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...Novencia Groupe
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la detteNovencia Groupe
 
Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012Novencia Groupe
 
Les systèmes de compensation
Les systèmes de compensationLes systèmes de compensation
Les systèmes de compensationNovencia Groupe
 
Présentation des marché de capitaux
Présentation des marché de capitauxPrésentation des marché de capitaux
Présentation des marché de capitauxNovencia Groupe
 
Nouveautés disponibles dans asp
Nouveautés disponibles dans aspNouveautés disponibles dans asp
Nouveautés disponibles dans aspNovencia Groupe
 
Les 3 modes de concurrence wcf
Les 3 modes de concurrence wcfLes 3 modes de concurrence wcf
Les 3 modes de concurrence wcfNovencia Groupe
 
Introduction à la finance de marché
Introduction à la finance de marchéIntroduction à la finance de marché
Introduction à la finance de marchéNovencia Groupe
 
Utilisation d'une api web avec asp
Utilisation d'une api web avec aspUtilisation d'une api web avec asp
Utilisation d'une api web avec aspNovencia Groupe
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Novencia Groupe
 

Plus de Novencia Groupe (20)

Datalake de l'idée à la plateforme
Datalake de l'idée à la plateformeDatalake de l'idée à la plateforme
Datalake de l'idée à la plateforme
 
Ambient intelligence & bigdata
Ambient intelligence & bigdataAmbient intelligence & bigdata
Ambient intelligence & bigdata
 
Workshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance uniqueWorkshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance unique
 
Workshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOURWorkshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOUR
 
L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2
 
L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2
 
Les Acronymes financiers de 2014
Les Acronymes financiers de 2014Les Acronymes financiers de 2014
Les Acronymes financiers de 2014
 
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la dette
 
Sonar
Sonar Sonar
Sonar
 
Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012
 
Les systèmes de compensation
Les systèmes de compensationLes systèmes de compensation
Les systèmes de compensation
 
Présentation des marché de capitaux
Présentation des marché de capitauxPrésentation des marché de capitaux
Présentation des marché de capitaux
 
Mobile development
Mobile developmentMobile development
Mobile development
 
Nouveautés disponibles dans asp
Nouveautés disponibles dans aspNouveautés disponibles dans asp
Nouveautés disponibles dans asp
 
La crise de l'euro
La crise de l'euroLa crise de l'euro
La crise de l'euro
 
Les 3 modes de concurrence wcf
Les 3 modes de concurrence wcfLes 3 modes de concurrence wcf
Les 3 modes de concurrence wcf
 
Introduction à la finance de marché
Introduction à la finance de marchéIntroduction à la finance de marché
Introduction à la finance de marché
 
Utilisation d'une api web avec asp
Utilisation d'une api web avec aspUtilisation d'une api web avec asp
Utilisation d'une api web avec asp
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010
 

StyleCop avec visual studio 2010

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. • 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 BELUT2. Installation de StyleCop Si Visual Studio était lancé vous devrez le fermer et le relancer pour trouver StyleCop.
  • 6. 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.
  • 7. • 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 BELUT4. Le paramétrage (StyleCop Settings)
  • 8. 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)
  • 9. 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).
  • 10. 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)MSBuildStyleCopv4.6StyleCop.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 !
  • 11. 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
  • 12. 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
  • 13. 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