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 .NETcp /path/to/templates/gitignore-dotnet .gitignore
Structure du projet
- Créer la solution .NET
dotnet new sln -n VotreProjet - Créer les projets nécessaires
dotnet new webapi -n VotreProjet.Api
dotnet new classlib -n VotreProjet.Domain
dotnet new classlib -n VotreProjet.Infrastructure - Ajouter les projets à la solution
dotnet sln add **/*.csproj
📦 Phase 2 : Configuration NuGet
Fichier nuget.config
- Copier le template
nuget.configcp /path/to/templates/nuget.config nuget.config - Vérifier le contenu (doit contenir uniquement les sources, pas de credentials)
- Committer le fichier
git add nuget.config
git commit -m "Add NuGet configuration"
Configuration locale des credentials
-
Sur votre poste de dev, configurer les credentials Nexus
./scripts/dotnet/setup-nuget-credentials.shOu manuellement :
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
dotnet nuget list source -
Tester le restore
dotnet restore
🐳 Phase 3 : Docker
Dockerfiles
-
Créer un Dockerfile pour chaque projet à déployer
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
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
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
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 applicationcontainerRegistry: URL de votre ACR
-
Adapter les étapes de publish/docker pour vos projets
-
Committer le pipeline
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
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
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
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
dotnet new xunit -n VotreProjet.Tests
dotnet sln add VotreProjet.Tests/VotreProjet.Tests.csproj -
Ajouter des étapes de test dans le pipeline
- 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
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
Utilisez le script setup-new-dotnet-project.sh pour automatiser les étapes 1 et 2 :
./scripts/dotnet/setup-new-dotnet-project.sh mon-projet
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.
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.BUILDetlatest