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. Supprimer les fichiers Exemples : - CD67.ModeleMVC.Entity\Extend\PARAM.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 sont nommées ainsi : "[Nom objet]Factory" Chaque "Factory" hérite de la classe de base "baseFactory" # 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. # CD67.ModeleMVC.Tests Projet le plus important de la solution :)