Žiadny popis

julien.legrand 4186ced43f NEW Ajout de l'exemple Viking avec table liée pour le type 9 rokov pred
CD67.ModeleMVC.Entity 4186ced43f NEW Ajout de l'exemple Viking avec table liée pour le type 9 rokov pred
CD67.ModeleMVC.Factory 4186ced43f NEW Ajout de l'exemple Viking avec table liée pour le type 9 rokov pred
CD67.ModeleMVC.MVC 4186ced43f NEW Ajout de l'exemple Viking avec table liée pour le type 9 rokov pred
CD67.ModeleMVC.Tests b92d27af27 FIX Connexion du modèle à la BDD ok 9 rokov pred
.gitattributes 93b0e6952b NEW initial commit 9 rokov pred
.gitignore 93b0e6952b NEW initial commit 9 rokov pred
CD67.ModeleMVC.sln 262e0c372c NEW Controller Entity ok, passage à Factory à faire 9 rokov pred
README.md 4186ced43f NEW Ajout de l'exemple Viking avec table liée pour le type 9 rokov pred

README.md

Mode d'emploi du projet modle MVC-entity

----- historique v0.1 15/07/2016 (Julien Legrand) : 1re version -----

Actions faire aprs copie

  1. Renommer les projets en suivant ce schma : "CD67.[nom appli].[Entity/Factory/MVC/Tests/Batchs]"
  2. Renommer galement les assemblies et espaces de nom de chaque projet (dans les proprits des projets, onglet "Application")
  3. Option : Ajouter une projet de type base de donnes

x. Mettre jour le modle par rapport la base de donnes pour ajouter de nouvelles tables et vues x. Vrifier les types des entits gnres depuis la base de donnes, particulirement les cls en numro auto ou avec un trigger/sequence Oracle, le champ "StoreGeneratedPattern" doit tre gal "Identity"

x. Crer vos propres fichiers d'extension avec DataAnnotation ici : "CD67.ModeleMVC.Entity\Extend" et supprimer les fichiers d'exemple "CD67.ModeleMVC.Entity\Extend\EXEMPLE_VIKINGS.cs" et "CD67.ModeleMVC.Entity\Extend\EXEMPLE_TYPE_VIKING.cs" x. Crer vos propres factory ici : "CD67.ModeleMVC.Factory" et supprimer les fichiers d'exemple "CD67.ModeleMVC.Factory\VIKINGSFactory.cs" et "CD67.ModeleMVC.Factory\TYPE_VIKINGFactory.cs" x. Crer vos propres controller/vues ici : "CD67.ModeleMVC.MVC\Controllers" et supprimer les fichiers d'exemple (NOTE : personellement j'utilise la cration du controller le modle "Contrleur MV5 avec vues, utilisant Entity Framework" en gnrant les vues et avec la page de disposition que je souhaite, ensuite je modifie le code du contrleur pour utiliser les classes "Factory") x. Modifier le fichier "CD67.ModeleMVC.MVC\App_Start\RouteConfig.cs" par rapport vos contrleurs

  1. supprimer ce fichier pour ne pas que l'on sache que vous avez utilis un modle

Description gnrale

La solution est consitue de 4 projets :

  • CD67.ModeleMVC.Entity : Projet qui contient les objets mtiers, c'est dire dans le cas de projets Entity : le modle 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 comprend le site Web MVC, les packages Bootstrap et FontAwesome sont dj installs
  • CD67.ModeleMVC.Tests : Tests unitaires

CD67.ModeleMVC.Entity

Le modle se nomme par dfaut "EntityModel". Pour se connecter la base de donnes afin de faire voluer le modle, il faut utiliser la connexion "OracleConnection (CD67.ModeleMVC.MVC)".

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 dcrire le donnes en vue d'une gnration de contrles plus appropis dans les vues MVC. Attention bien surveiller l'espace de noms lors de la cration d'une classe dans ce sous-dossier (erreur frquente) :

  • par dfaut ce sera : "CD67.ModeleMVC.Entity.Extend",
  • mais il faut "CD67.ModeleMVC.Entity" (le mme que les classes de bases Entity).

Le dossier "Internal" contient :

  • "FormattedDbEntityValidationException.cs" : classe hrite de Exception qui permet un affichage plus complet dans les messages d'erreur pour les exceptions lies au format de donnes du modle 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 mme type.

CD67.ModeleMVC.Factory

Les classes Factory sont nommes ainsi : "[Nom objet]Factory" On cre autant de classe Factory que d'objet grer Elles doivent contenir un constructeur public avec le context Entities en paramtre qui se base sur le constructeur de la classe parente. Elles contiennent gnralement 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" hrite.

CD67.ModeleMVC.MVC

La partie Model du projet n'est pas ncessaire que pour dfinir des classes ne servant qu' l'affichage, les classes mtiers tant dans le projet Entity.

Le dossier "Views" contient par dfaut :

  • "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 mme nom qui seront utiliss pour crer le contrle l'affichage.

Le dossier "style" contient :

  • un sous dossier "images" destin contenir toutes les images utilises dans la mise en page
  • "AppStyleSheet.css" : feuille de style modifier pour le projet courant
  • "ModeleStyleSheet.css" : feuille de style du modle CD67 ne pas modifier

Les scripts et styles sont chargs l'aide des commandes : "@Scripts.Render("~/bundles/jquery")", "@Scripts.Render("~/bundles/bootstrap")" et "@Styles.Render("~/Content/css")". La configuration de ceci se trouve dans ce fichier : "App_Start\BundleConfig.cs"

Les Glyphicons Bootstrap sont ici : http://getbootstrap.com/components/#glyphicons Et les icnes FontAwesome l : http://fontawesome.io/icons/

CD67.ModeleMVC.Tests

Projet le plus important de la solution :)