Mode d'emploi du projet modèle MVC-entity
----- historique v0.1 15/07/2016 (Julien Legrand) : 1ère version -----
x. Mettre à jour le modèle par rapport à la base de données pour ajouter de nouvelles tables et vues x. Vérifier les types des entités générées depuis la base de données, particulièrement les clés en numéro auto ou avec un trigger/sequence Oracle, le champ "StoreGeneratedPattern" doit être égal à "Identity"
x. Créer 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. Créer 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. Créer vos propres controller/vues ici : "CD67.ModeleMVC.MVC\Controllers" et supprimer les fichiers d'exemple (NOTE : personellement j'utilise à la création du controller le modèle "Contrôleur MV5 avec vues, utilisant Entity Framework" en générant les vues et avec la page de disposition que je souhaite, ensuite je modifie le code du contrôleur pour utiliser les classes "Factory") x. Modifier le fichier "CD67.ModeleMVC.MVC\App_Start\RouteConfig.cs" par rapport à vos contrôleurs
La solution est consituée de 4 projets :
Le modèle se nomme par défaut "EntityModel". Pour se connecter à la base de données afin de faire évoluer le modèle, 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 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) :
Le dossier "Internal" contient :
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.
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 :
Le dossier "style" contient :
Les scripts et styles sont chargés à 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 icônes FontAwesome là : http://fontawesome.io/icons/
Projet le plus important de la solution :)