Skip to content

Checklist Nouveau Projet .NET

Liste de vérification complète pour démarrer un nouveau projet .NET avec notre stack technique.

📋 Phase 1 : Initialisation du projet

Configuration Git

  • [ ] Créer le repository sur Azure DevOps / GitHub
  • [ ] Cloner le repository localement
  • [ ] Copier le template .gitignore pour .NET bash cp /path/to/templates/gitignore-dotnet .gitignore

Structure du projet

  • [ ] Créer la solution .NET bash dotnet new sln -n VotreProjet
  • [ ] Créer les projets nécessaires bash dotnet new webapi -n VotreProjet.Api dotnet new classlib -n VotreProjet.Domain dotnet new classlib -n VotreProjet.Infrastructure
  • [ ] Ajouter les projets à la solution bash dotnet sln add **/*.csproj

📦 Phase 2 : Configuration NuGet

Fichier nuget.config

  • [ ] Copier le template nuget.config bash cp /path/to/templates/nuget.config nuget.config
  • [ ] Vérifier le contenu (doit contenir uniquement les sources, pas de credentials)
  • [ ] Committer le fichier bash git add nuget.config git commit -m "Add NuGet configuration"

Configuration locale des credentials

  • [ ] Sur votre poste de dev, configurer les credentials Nexus bash ./scripts/dotnet/setup-nuget-credentials.sh Ou manuellement : bash dotnet nuget add source https://nexus.homelab.j-it.be/repository/nuget-prerelease/index.json \ --name nexus-prerelease \ --username USERNAME \ --password PASSWORD \ --store-password-in-clear-text

  • [ ] Vérifier la configuration bash dotnet nuget list source

  • [ ] Tester le restore bash dotnet restore

🐳 Phase 3 : Docker

Dockerfiles

  • [ ] Créer un Dockerfile pour chaque projet à déployer ```dockerfile FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443

FROM base AS final WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "VotreProjet.dll"] ```

  • [ ] Tester le build Docker localement bash dotnet publish -c Release -o ./publish docker build -t votreprojet:test ./publish docker run -p 8080:80 votreprojet:test

Docker Compose (optionnel pour dev)

  • [ ] Créer un docker-compose.yml pour le développement local
  • [ ] Tester le démarrage avec docker-compose bash docker-compose up

🔄 Phase 4 : Pipeline Azure DevOps

Service Connections

  • [ ] Vérifier que le service connection vers Azure Container Registry existe
  • Aller dans Project SettingsService connections
  • Chercher le connection pour votre ACR
  • Noter l'ID du service connection

Créer le pipeline

  • [ ] Copier le template de pipeline bash cp /path/to/templates/azure-pipelines-docker.yml azure-pipelines.yml

  • [ ] Adapter les variables dans azure-pipelines.yml :

  • dockerRegistryServiceConnection : ID du service connection
  • imageRepository : nom de votre application
  • containerRegistry : URL de votre ACR

  • [ ] Adapter les étapes de publish/docker pour vos projets

  • [ ] Committer le pipeline bash git add azure-pipelines.yml git commit -m "Add Azure DevOps pipeline" git push

Créer le pipeline dans Azure DevOps

  • [ ] Dans Azure DevOps, aller dans PipelinesNew pipeline
  • [ ] Sélectionner votre repository
  • [ ] Choisir "Existing Azure Pipelines YAML file"
  • [ ] Sélectionner azure-pipelines.yml
  • [ ] Sauvegarder (ne pas encore exécuter)

Configuration des agents (si nouveaux agents)

  • [ ] Vérifier que les agents sont en ligne dans le pool jit-azure-devops-agents
  • [ ] Si nouveaux agents : configurer NuGet avec Ansible bash ansible-playbook scripts/ansible/configure-nuget-agents.yml

🚀 Phase 5 : Premier déploiement

Créer la première version

  • [ ] Créer une branche de version bash git checkout -b docker/1.0.0 git push origin docker/1.0.0

  • [ ] Vérifier que le pipeline se déclenche automatiquement

  • [ ] Surveiller l'exécution du pipeline dans Azure DevOps

  • [ ] Corriger les erreurs éventuelles

  • [ ] Vérifier que les images Docker sont bien poussées vers ACR bash az acr repository list --name votreregistry az acr repository show-tags --name votreregistry --repository votre-app/votre-projet

📚 Phase 6 : Documentation

README du projet

  • [ ] Créer un README.md avec :
  • Description du projet
  • Prérequis
  • Instructions de build local
  • Instructions de déploiement
  • Architecture technique

Documentation de déploiement

  • [ ] Documenter les variables d'environnement nécessaires
  • [ ] Documenter la configuration Docker/Kubernetes
  • [ ] Créer un guide de déploiement pour la production

🧪 Phase 7 : Tests et qualité

Tests unitaires

  • [ ] Créer des projets de tests bash dotnet new xunit -n VotreProjet.Tests dotnet sln add VotreProjet.Tests/VotreProjet.Tests.csproj

  • [ ] Ajouter des étapes de test dans le pipeline ```yaml

  • task: DotNetCoreCLI@2 displayName: 'Run tests' inputs: command: 'test' projects: '*/Tests.csproj' arguments: '--configuration Release --collect:"XPlat Code Coverage"' ```

Analyse de code (optionnel)

  • [ ] Configurer SonarQube/SonarCloud
  • [ ] Ajouter l'analyse au pipeline

🔒 Phase 8 : Sécurité

Secrets et configuration

  • [ ] Vérifier qu'aucun secret n'est dans le code source
  • [ ] Configurer Azure Key Vault (si nécessaire)
  • [ ] Utiliser des variables de pipeline pour les secrets

Scan de vulnérabilités

  • [ ] Configurer le scan des dépendances NuGet
  • [ ] Vérifier les CVE dans les packages bash dotnet list package --vulnerable

✅ Phase 9 : Validation finale

Checklist de validation

  • [ ] Le code build sans erreur en local
  • [ ] Le code build sans erreur dans le pipeline
  • [ ] Les images Docker sont créées correctement
  • [ ] Les images sont poussées vers ACR
  • [ ] La documentation est à jour
  • [ ] Les tests passent
  • [ ] Aucun secret dans le code source
  • [ ] Le .gitignore est correct
  • [ ] Les credentials NuGet ne sont pas committés

Review

  • [ ] Faire une review du code avec l'équipe
  • [ ] Valider l'architecture technique
  • [ ] Valider les choix de déploiement

📝 Templates et ressources

Fichiers à copier

Template Emplacement Destination
nuget.config /static/templates/nuget.config Racine du projet
.gitignore /static/templates/gitignore-dotnet Racine du projet
azure-pipelines.yml /static/templates/azure-pipelines-docker.yml Racine du projet
Dockerfile À créer manuellement Chaque projet à déployer

Scripts utiles

  • Setup NuGet : ./scripts/dotnet/setup-nuget-credentials.sh
  • Setup nouveau projet : ./scripts/dotnet/setup-new-dotnet-project.sh
  • Config agents Ansible : ansible-playbook scripts/ansible/configure-nuget-agents.yml

🔗 Liens utiles

💡 Tips

:::tip Automatisation Utilisez le script setup-new-dotnet-project.sh pour automatiser les étapes 1 et 2 :

./scripts/dotnet/setup-new-dotnet-project.sh mon-projet

:::

:::warning Attention aux credentials Ne JAMAIS committer : - Les credentials Nexus - Les connection strings de production - Les clés d'API - Les certificats

Utilisez toujours Azure Key Vault ou des variables de pipeline sécurisées. :::

:::info Convention de nommage Branches de version : docker/X.Y.Z - Exemple : docker/1.0.0, docker/1.2.3 - Déclenche automatiquement le pipeline - Crée les tags Docker : X.Y.Z.BUILD et latest :::