- C#
- Xamarin
Lorsque vous développez un projet, vous travaillez probablement au sein d’une équipe. Chaque développeur a ses propres habitudes de programmation. Pour éviter d’avoir un code différent dans chaque classe, nous devons trouver un moyen de l’harmoniser.
StyleCop
est un analyseur de code source C# qui vous permet d’appliquer un ensemble de règles de style et de contrôle de cohérence. Vous pouvez adapter les règles que vous ne souhaitez pas vérifier en fonction de vos besoins. Ce type d’outils vous aide à avoir un code:
Pour ajouter StyleCop
à votre project vous avez différentes possibilités :
StyleCop.MSBuild
Je vais concentrer ce tutoriel sur la première solution, ses avantages sont :
StyleCop
avec votre projetTout d’abord ajoutez le package Nuget StyleCop.MSBuild
dans le projet que vous voulez analyser.
Maintenant, par exemple, créons une nouvelle class appelée MyViewModel.cs
, voici ce qui est généré de base :
using System;
namespace StyleCopDemo
{
public class MyViewModel
{
public MyViewModel()
{
}
}
}
Si vous compilez votre projet, vous verrez immédiatement de nombreux warnings dans cette class :
Ajoutons un nouveau fichier appelé Settings.StyleCop
à votre projet, celui-ci vous aidera à configurer et ajuster les règles que vous voulez ou non dans votre projet.
Ajoutons une configuration par défaut:
<StyleCopSettings Version="4.3">
<GlobalSettings>
<StringProperty Name="MergeSettingsFiles">NoMerge</StringProperty>
<StringProperty Name="Culture">en-US</StringProperty>
<CollectionProperty Name="RecognizedWords">
<Value>Dll</Value>
</CollectionProperty>
</GlobalSettings>
<Parsers>
<Parser ParserId="StyleCop.CSharp.CsParser">
<ParserSettings>
<BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
</ParserSettings>
</Parser>
</Parsers>
<Analyzers>
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
<Rules>
</Rules>
<AnalyzerSettings>
<StringProperty Name="CompanyName">https://github.com/YourCompany</StringProperty>
<StringProperty Name="Copyright">MS-PL</StringProperty>
<BooleanProperty Name="IgnorePrivates">True</BooleanProperty>
<BooleanProperty Name="IgnoreInternals">True</BooleanProperty>
<BooleanProperty Name="IncludeFields">False</BooleanProperty>
</AnalyzerSettings>
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.NamingRules">
<AnalyzerSettings>
<CollectionProperty Name="Hungarian">
<Value>as</Value>
<Value>do</Value>
<Value>id</Value>
<Value>if</Value>
<Value>in</Value>
<Value>ip</Value>
<Value>is</Value>
<Value>mx</Value>
<Value>my</Value>
<Value>no</Value>
<Value>on</Value>
<Value>to</Value>
<Value>ui</Value>
<Value>vs</Value>
<Value>x</Value>
<Value>y</Value>
<Value>z</Value>
</CollectionProperty>
</AnalyzerSettings>
</Analyzer>
<Analyzer AnalyzerId="StyleCop.CSharp.OrderingRules">
<AnalyzerSettings>
<BooleanProperty Name="GeneratedCodeElementOrder">False</BooleanProperty>
</AnalyzerSettings>
</Analyzer>
</Analyzers>
</StyleCopSettings>
Selon ce que vous voulez et ce dont vous avez besoin, vous pouvez désactiver certaines règles. Prenons un exemple, si vous regardez la capture d’écran ci-dessus, vous constaterez que StyleCop
se plaint à propos de plusieurs règles. La régle SA1633 a pour message d’erreur :
SA1633 : CSharp.Documentation : The file has no header, the header Xml is invalid, or the header is not located at the top of the file.
Si vous souhaitez désactiver cette règle, il vous suffit de:
Ensuite, vous pouvez la désactiver en le spécifiant dans les balises Rules :
<Rule Name="FileMustHaveHeader">
<RuleSettings>
<BooleanProperty Name="Enabled">False</BooleanProperty>
</RuleSettings>
</Rule>
Maintenant, si vous recompilez, l’avertissement disparaîtra. Il est temps que vous l’expérimentiez dans vos projets ! J’ai crée un projet de démonstration juste pour vous montrer un exemple simple.
Vous trouverez un exemple de code sur ce répertoire Github.
Happy codding !
Vous avez aimé ce tutoriel ? Laissez une étoile sur le répertoire Github associé !