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)

fullzest

Projet Front

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

zestfront

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

zestentities

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. Repository pattern Source: Codingsight