| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- Mode d'emploi du projet modèle MVC-entity
- *-*-*-*-*-*
- historique
- v0.1 13/07/2016 (Julien Legrand) : 1ère version
- *-*-*-*-*-*
- # Actions à faire après copie
- 1. Renommer les projets en suivant ce schéma : "CD67.[nom appli].[Entity/Factory/MVC/Tests/Batchs]"
- 2. Renommer également les assemblies et espaces de nom de chaque projet (dans les propriétés des projets, onglet "Application")
- x. Créer vos propres fichiers d'extension avec DataAnnotation ici : "CD67.ModeleMVC.Entity\Extend" et supprimer le fichier d'exemple "CD67.ModeleMVC.Entity\Extend\PARAM.cs"
- x. Créer vos propres factory ici : "CD67.ModeleMVC.Factory" et supprimer le fichier d'exemple "CD67.ModeleMVC.Factory\PARAMFactory.cs"
- 10. supprimer ce fichier pour ne pas que l'on sache que vous avez utilisé un modèle
- # Description générale
- La solution est consituée de 4 projets :
- - CD67.ModeleMVC.Entity : Projet qui contient les objets métiers, c'est à dire dans le cas de projets Entity : le modèle entity framework
- - CD67.ModeleMVC.Factory : Projet qui contient les classes permettant la gestion des objets : les actions CRUD pour chacun à minima
- - CD67.ModeleMVC.MVC : Projet qui comprent le site Web MVC
- - CD67.ModeleMVC.Tests : Tests unitaires
- # CD67.ModeleMVC.Entity
- Le modèle se nomme par défaut "EntityModel"
- Le dossier "Extend" contient les extensions éventuelles de classe Entity (qui se trouvent dans "EntityModel.edmx\EntityModel.tt\").
- C'est notamment utile pour ajouter les DataAnnotations permettant de décrire le données en vue d'une génération de contrôles plus appropiés dans les vues MVC.
- Attention à bien surveiller l'espace de noms lors de la création d'une classe dans ce sous-dossier (erreur fréquente) :
- - par défaut ce sera : "CD67.ModeleMVC.Entity.Extend",
- - mais il faut "CD67.ModeleMVC.Entity" (le même que les classes de bases Entity).
- Le dossier "Internal" contient :
- - "FormattedDbEntityValidationException.cs" : classe héritée de Exception qui permet un affichage plus complet dans les messages d'erreur pour les exceptions liées au format de données du modèle Entity
- - "Entities.cs" : classe partielle permettant d'utiliser les nouvelles Exceptions FormattedDbEntityValidationException en surchargeant "SaveChanges()"
- En cas d'ajout d'une nouvelle connexion avec Entity Framework, il faut ajouter une nouvelle classe d'extension du même type.
- # CD67.ModeleMVC.Factory
- Les classes Factory sont nommées ainsi : "[Nom objet]Factory"
- On crée autant de classe Factory que d'objet à gérer
- Elles doivent contenir un constructeur public avec le context Entities en paramètre qui se base sur le constructeur de la classe parente.
- Elles contiennent généralement les fonctions suivantes : getById, getAll, add, update, delete.
- C'est à adapter à chaque cas.
- Le dossier "Internal" contient la classe de base "baseFactory" dont chaque "Factory" hérite.
- # CD67.ModeleMVC.MVC
- La partie Model du projet n'est pas nécessaire que pour définir des classes ne servant qu'à l'affichage, les classes mêtiers étant dans le projet Entity.
- Le dossier "Views" contient par défaut :
- - "Shared\_AppLayout.cshtml" : une page de disposition pour l'application
- - "DisplayTemplates\YesNo.cshtml" et "EditorTemplates\YesNo.cshtml" : ils s'agit d'exemple de personnalisation d'affichage pour un type de champ, ici "YesNo". On attribut un type avec la DataAnnotation "[UIHint("YesNo")]" dans la classe Metadata et ce sont les fichiers dans DisplayTemplates et EditorTemplates du même nom qui seront utilisés pour créer le contrôle à l'affichage.
- Le dossier "style" contient :
- - un sous dossier "images" destiné à contenir toutes les images utilisées dans la mise en page
- - "AppStyleSheet.css" : feuille de style à modifier pour le projet courant
- - "ModeleStyleSheet.css" : feuille de style du modèle CD67 à ne pas modifier
- # CD67.ModeleMVC.Tests
- Projet le plus important de la solution :)
|