ReadMe.txt 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. Mode d'emploi du projet modèle MVC-entity
  2. *-*-*-*-*-*
  3. historique
  4. v0.1 13/07/2016 (Julien Legrand) : 1ère version
  5. *-*-*-*-*-*
  6. # Actions à faire après copie
  7. 1. Renommer les projets en suivant ce schéma : "CD67.[nom appli].[Entity/Factory/MVC/Tests/Batchs]"
  8. 2. Renommer également les assemblies et espaces de nom de chaque projet (dans les propriétés des projets, onglet "Application")
  9. 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"
  10. x. Créer vos propres factory ici : "CD67.ModeleMVC.Factory" et supprimer le fichier d'exemple "CD67.ModeleMVC.Factory\PARAMFactory.cs"
  11. 10. supprimer ce fichier pour ne pas que l'on sache que vous avez utilisé un modèle
  12. # Description générale
  13. La solution est consituée de 4 projets :
  14. - CD67.ModeleMVC.Entity : Projet qui contient les objets métiers, c'est à dire dans le cas de projets Entity : le modèle entity framework
  15. - CD67.ModeleMVC.Factory : Projet qui contient les classes permettant la gestion des objets : les actions CRUD pour chacun à minima
  16. - CD67.ModeleMVC.MVC : Projet qui comprent le site Web MVC
  17. - CD67.ModeleMVC.Tests : Tests unitaires
  18. # CD67.ModeleMVC.Entity
  19. Le modèle se nomme par défaut "EntityModel"
  20. Le dossier "Extend" contient les extensions éventuelles de classe Entity (qui se trouvent dans "EntityModel.edmx\EntityModel.tt\").
  21. 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.
  22. Attention à bien surveiller l'espace de noms lors de la création d'une classe dans ce sous-dossier (erreur fréquente) :
  23. - par défaut ce sera : "CD67.ModeleMVC.Entity.Extend",
  24. - mais il faut "CD67.ModeleMVC.Entity" (le même que les classes de bases Entity).
  25. Le dossier "Internal" contient :
  26. - "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
  27. - "Entities.cs" : classe partielle permettant d'utiliser les nouvelles Exceptions FormattedDbEntityValidationException en surchargeant "SaveChanges()"
  28. En cas d'ajout d'une nouvelle connexion avec Entity Framework, il faut ajouter une nouvelle classe d'extension du même type.
  29. # CD67.ModeleMVC.Factory
  30. Les classes Factory sont nommées ainsi : "[Nom objet]Factory"
  31. On crée autant de classe Factory que d'objet à gérer
  32. Elles doivent contenir un constructeur public avec le context Entities en paramètre qui se base sur le constructeur de la classe parente.
  33. Elles contiennent généralement les fonctions suivantes : getById, getAll, add, update, delete.
  34. C'est à adapter à chaque cas.
  35. Le dossier "Internal" contient la classe de base "baseFactory" dont chaque "Factory" hérite.
  36. # CD67.ModeleMVC.MVC
  37. 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.
  38. Le dossier "Views" contient par défaut :
  39. - "Shared\_AppLayout.cshtml" : une page de disposition pour l'application
  40. - "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.
  41. Le dossier "style" contient :
  42. - un sous dossier "images" destiné à contenir toutes les images utilisées dans la mise en page
  43. - "AppStyleSheet.css" : feuille de style à modifier pour le projet courant
  44. - "ModeleStyleSheet.css" : feuille de style du modèle CD67 à ne pas modifier
  45. # CD67.ModeleMVC.Tests
  46. Projet le plus important de la solution :)