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
.gitignorepour .NETbash 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.configbash 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.shOu 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.ymlpour 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 Settings → Service 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 connectionimageRepository: 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 Pipelines → New 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.mdavec : - 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
.gitignoreest 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
:::