Comment configurer un projet .NET ? Dans cet article, nous allons passer en revue six étapes clés pour améliorer l’expérience des développeurs sur vos projets .NET. Ces pratiques s’appliquent aussi bien à vous qu’à votre équipe, en garantissant un code propre et une configuration optimisée.
1. Création d’un projet ASP.NET Core Web API
Pour commencer, créez une solution vide dans Visual Studio, puis ajoutez un nouveau projet ASP.NET Core Web API. Voici les principales configurations initiales :
- Utilisez la version .NET 9.
- Configurez HTTPS mais laissez de côté le support des conteneurs et l’orchestration Aspire.
- Utilisez des Controllers au lieu des APIs minimales.
Après la génération de votre projet, ouvrez le fichier Program.cs
, où vous trouverez des services configurés par défaut, ainsi que des composants middleware et OpenAPI.
2. Mise en place d’un fichier EditorConfig
Pour standardiser le style de code dans votre projet :
- Faites un clic droit sur le projet, ajoutez un fichier EditorConfig.
- Ce fichier s’appliquera à tous les fichiers du projet. Si vous en ajoutez dans des sous-dossiers, ils auront précédence.
Vous pouvez utiliser un fichier EditorConfig préconfiguré depuis le dépôt officiel de .NET Runtime pour un contrôle plus précis.
3. Configuration des options de build avec Directory.Build.props
Créez un fichier Directory.Build.props
à la racine de votre solution pour centraliser les propriétés de build :
- Définissez le framework cible pour tous les projets (ég. .NET 9).
- Activez les usings implicites et les types de référence nullables.
Supprimez les propriétés en doublon dans les fichiers projet individuels pour une configuration plus propre.
4. Gestion centralisée des packages NuGet avec Directory.Packages.props
Pour gérer les versions des packages NuGet de manière centralisée :
- Créez un fichier
Directory.Packages.props
. - Ajoutez les versions des packages NuGet ici, par exemple :
<ItemGroup>
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.0" />
</ItemGroup>
Ensuite, dans vos projets, utilisez simplement des références de package sans spécifier la version. Cela simplifie énormément la gestion des dépendances.
5. Amélioration de la qualité du code
Ajoutez des outils d’analyse statique, comme SonarAnalyzer.CSharp, pour détecter les problèmes de qualité. Vous pouvez :
- Ajouter ce package à tous les projets via
Directory.Build.props
. - Traiter les avertissements comme des erreurs pour garantir un code de haute qualité.
Pour exclure certaines règles, personnalisez la sévérité dans le fichier EditorConfig.
6. Support pour la conteneurisation avec Docker
Ajoutez un fichier Docker à votre projet pour déployer votre application comme conteneur :
- Faites un clic droit sur le projet, puis ajoutez le support Docker.
- Visual Studio générera un fichier Docker multi-étapes prêt à l’emploi.
Vous pouvez également activer l’orchestration avec Docker Compose ou .NET Aspire, selon vos besoins. Ces outils permettent d’ajouter des services externes comme une base de données PostgreSQL en quelques lignes de configuration YAML.
7. Configuration d’une intégration continue
Créez un workflow GitHub Actions pour automatiser le build, les tests et le déploiement :
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 9.0
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
Ce workflow exécutera les builds à chaque push sur la branche principale, assurant ainsi un feedback rapide.
Conclusion
Avec ces six étapes, nous savons maintenant comment configurer un projet .NET et sera prêt à être maintenu sur le long terme, offrant un environnement de travail efficace et standardisé. Si vous souhaitez aller plus loin, pensez à automatiser le déploiement dans le cloud via un pipeline CI/CD.
Faites-moi part de vos retours en commentaire, et n’hésitez pas à partager vos propres astuces pour optimiser vos projets .NET. Jusqu’à la prochaine fois, restez motivés !