Structure typique du code et du projet
Plus un projet grossit, plus est nécessaire d'avoir de l'ordre une structure solide dans un projet. La raison est fort, simple vous risquez d'introduire des illogismes et ou des incohérences dans votre projet lorsqu'il devra plus gros. Il est vrai que si le but d'un projet est simple d'afficher un «Hello World», il n'est pas nécessaire d'avoir de tel structure, mais les logiciels répondant à des demandes de toute sorte, mettre très vite à l'épreuve une structure mal pensés.
Structure de répertoire
La structure de répertoire typique d'un projet ASP.NET Core bien organisé, incluant des éléments comme la documentation, des API, des pipelines Azure, des scripts, des bibliothèques, des exemples, des tests, des outils, et des ressources, pourrait ressembler à ceci :
Dossier | Description |
---|---|
/MonProjetAspNetCore | Ce répertoire contient le projet |
/.build | Ce répertoire contient des scripts de build et configurations spécifiques |
azure-pipelines.yml | Ce fichier contient la configuration pour Azure Pipelines |
docker-compose.yml | Ce fichier contient la configuration Docker |
build.ps1 | Ce fichier contient le script PowerShell pour automatiser la compilation |
/.config | Ce répertoire contient la configuration locale nécessaire pour installer le projet sur les machines de développement. |
/artifacts | Ce répertoire contient les artifacts générés (builds, paquets, journal de bord,...) |
/azure | Ce répertoire contient les scripts et la configurations Azure |
/infrastructure | Ce répertoire contient les scripts pour déployer l'infrastructure Azure |
/templates | Ce répertoire contient les gabarits ARM/Bicep pour l'infrastructure |
/bd | Ce répertoire contient les scripts de construction de la base de données |
/docs | Ce répertoire contient la documentation du projet |
/architecture | Ce répertoire contient le diagrammes d'architecture |
/api | Ce répertoire contient la documentation API (par exemple Swagger) |
/guides | Ce répertoire contient les guides d'utilisation |
/lib | Ce répertoire contient les bibliothèques externes (si non gérées par NuGet) |
external-library.dll | Ce fichier contient une bibliothèque externe |
/src | Ce répertoire contient le code source de l'application |
/MyApp.Api | Ce répertoire contient le projet ASP.NET Core (API) |
/Controllers | Ce répertoire contient les contrôleurs API |
/Models | Ce répertoire contient les modèles utilisés par l'API |
/Services | Ce répertoire contient les services métier |
appsettings.json | Ce fichier contient la configuration de l'application |
Program.cs | Ce fichier contient le point d'entrée de l'application |
Startup.cs | Ce fichier contient la configuration ASP.NET Core |
MonApp.Api.csproj | Ce fichier contient le projet C# |
/MonApp.Library | Ce répertoire contient la bibliothèque de classes (réutilisable) |
MonApp.Library.csproj | Ce fichier contient le projet de la bibliothèque |
/Site | Ce répertoire contient le projet principal ASP.NET Core |
/Controllers | Ce répertoire contient le contrôleurs du site |
/Models | Ce répertoire contient les modèles utilisés par le site |
/View | Ce répertoire contient les vues utilisés par le site |
/resources | Ce répertoire contient les ressources statiques (images, fichiers,...) |
/css | Ce répertoire contient les feuilles de styles CSS |
site.css | Ce fichier contient les CSS principale du site |
/js | Ce dossier contient les JavaScript |
site.js | Ce fichier contient le code JavaScript principale du site |
/locales | Ce répertoire contient les fichiers de localisation |
/images | Ce répertoire contient les images du projet |
/config | Ce répertoire contient les fichiers de configuration supplémentaires |
/samples | Ce répertoire contient des exemples de code ou d'utilisation de l'application, des Kick-Off, des preuves de concepts,... |
/SampleApp | Ce répertoire contient des exemples avec un petit projet d'application |
SampleApp.csproj | Ce fichier contient les spécifications du projet SampleApp. |
/scripts | Ce répertoire contient les scripts utilitaires (déploiement, build,...) |
deploy.ps1 | Ce répertoire contient le script de déploiement |
/tests | Ce répertoire contient les tests d'applications |
/MyApp.Tests.Unit | Ce répertoire contient les tests unitaires |
/MyApp.Tests.Integration | Ce répertoire contient les tests d'intégration |
/MyApp.Tests.Functional | Ce répertoire contient les tests fonctionnels |
/tools | Ce répertoire contient les scripts et les outils pour le développement et la maintenance |
/migration-scripts | Ce répertoire contient les scripts de migration de base de données |
global.json | Ce fichier contient les spécifications de la version .NET SDK utilisée |
README.md | Ce fichier contient la documentation générale du projet |
.gitignore | Ce fichier contient les informations pour ignorer certains fichiers dans Git |