Architecture - M4n0x/Zest.NET GitHub Wiki
Architecture
Un grand travail s'est orienté sur l'architecture de la solution Zest.NET.
Toute cette architecture est décrite au sein de cette page.
Solution
La solution Zest.NET contient deux projets C# :
| Projet | Utilité |
|---|---|
Zest.NET.Entities |
Contient les entités, Client HTTP, Exceptions,... |
Zest.NET.Front |
Contient la Web Application Blazor (Web Assembly version) |

Projet Front
Le projet Zest.NET.Front contient les dossiers suivants :

Descriptif des dossiers
| Dossier | Contenu |
|---|---|
Helpers |
Helpers permettat d'ajouter des propriétés au router |
Pages |
Pages utilisés dans l'application |
Properties |
Informations de déploiements |
Shared |
Composants Blazor réutilisés à travers plusieurs pages |
www |
Fichiers statiques web utilisés (CSS, JS, images,...) |
Projet Entities

Descriptif des dossiers
| Dossier | Contenu |
|---|---|
Attributes |
Attributs (=~ Décorateurs) permettant de spécifier des pages disponibles uniquement pour Logged User ou Unlogged user |
Client |
ZestClient permettant d'effectuer des requêtes HTTP sur l'API développée en Django |
Exceptions |
Exceptions lancées lors de mauvaises requêtes/réponses du client Zest |
Interfaces |
Déclaration d'interfaces utilisées dans le projet |
Models |
Tous les modèles utilisés à travers Zest.NET |
Repositories |
Pattern Repositories pour chaque entité (modèle) déclaré. |
Repository Pattern
Le pattern Repository fait la jonction entre la logique/affichage du produit et la base de données.
En règle général, chaque table en base de données dispose d'un Repository.
En suivant ce formalisme ci-dessus, chaque entité dans le projet dispose d'un Repository qui hérite de GenericHttpRepository.
Celle-ci s'assimile à un Repository générique et contient de nombreuses méthodes permettant d'effectuer un CRUD sur le type spécifié.
Ainsi, chaque Repository concret étend le Repository basique et spécifie le type de Modèle utilisé. Cette architecture permet de gérer simplement la récupération, création, mise à jour et suppression de données pour chaque modèle à un seul endroit.
Source: Codingsight