Нет описания

julien.legrand dcb12bfe54 NEW Mise à jour du .gitignore 8 лет назад
CD67.ModeleMVC.Entity 886447fdc8 NEW DatePicker jquery 8 лет назад
CD67.ModeleMVC.Factory e18cf79bee NEW Mise à jour des packages NuGet 9 лет назад
CD67.ModeleMVC.MVC 886447fdc8 NEW DatePicker jquery 8 лет назад
CD67.ModeleMVC.Tests 886447fdc8 NEW DatePicker jquery 8 лет назад
.gitattributes 93b0e6952b NEW initial commit 9 лет назад
.gitignore dcb12bfe54 NEW Mise à jour du .gitignore 8 лет назад
CD67.ModeleMVC.sln 262e0c372c NEW Controller Entity ok, passage à Factory à faire 9 лет назад
README.md 423063f4a0 CHG Changement du nom du layout pour prendre celui par défaut 8 лет назад

README.md

Mode d'emploi du projet modle MVC-entity

Historique

v0.1 19/07/2016 (Julien Legrand) : 1re version

Dmarrage d'un nouveau projet avec le modle : pas--pas

  1. Visual Studio 0.1. Avant toute chose, vrifier que le gestionnaire de packages Nuget est jour dans Visual Studio 0.2. Si ncessaire, executer "console manager nuget" et accepter avec "T" les messages dans l'cran console 0.3. Installer les outils : "Oracle Developer Tools for Visual Studio" prsents ici : "\home\bin-span$\Logiciels (Lecture seule)\Oracle\Oracle Developer Tools for Visual Studio" 0.4. Au besoin, changer la politique Powershell du poste quant la signature du code comme expliqu ici : "http://codebox/snippets/4"

  2. GIT 1.1. Cloner le projet modle dans le dossier de votre choix : "git clone [adresse du projet]" faire dans le dossier parent (le dossier CD67.ModeleMVC sera cr automatiquement) 1.2. Renommer le dossier du projet avec le nom de votre choix 1.3. Supprimer le sous-dossier cach ".git" la racine du projet pour supprimer le lien avec le projet modle 1.4. Initialiser un nouveau dpt GIT : "git init" faire dans le dossier du projet 1.5. C'est le bon moment pour faire un premier commit : "git add ." et "git commit -m "NEW Reprise du projet modle"" 1.6. Crer un nouveau projet sur CodeBox et copier l'adresse pour GIT (SSH ou HTTP) 1.7. Ajout de la rfrence du repository en ligne : "git remote add origin [adresse du nouveau projet]" 1.8. 1er envoi sur le serveur : "git push --set-upstream origin master" (par la suite, "git push" suffira)

  3. Renommer et exctuer la maquette : 2.1. Renommer la solution et les projets en suivant ce schma : "CD67.[nom appli].[Entity/Factory/MVC/Tests/Batchs]" 2.2. Renommer galement les assemblies et espaces de nom de chaque projet (dans les proprits des projets, onglet "Application") 2.3. Quitter Visual Studio 2.4. Supprimer si ncessaire tous les fichiers commencant par "CD67.ModeleMVC.*" dans les dossiers suivants : "\CD67.ModeleMVC.MVC\bin", "\CD67.ModeleMVC.Factory\bin\Debug", "\CD67.ModeleMVC.Entity\bin\Debug", "CD67.ModeleMVC.Tests\bin\Debug" 2.5. Modifier le noms des dossiers des projets en consquence et modifier le chemin des fichiers projets dans le fichier solution *.sln 2.6. Ouvrir nouveau la solution et faire un rechercher/remplacer global la solution pour remplacer "CD67.ModeleMVC" par "CD67.[nom appli]" 2.7. Nettoyer, rgnrer la solution et restorer les packages Nuget 2.8. Dfinir le projet "CD67.ModeleMVC.MVC" comme projet de dmarrage 2.9. Excuter l pour contrler qu'elle fonctionne correctement ce stade avec les donnes de tests 2.10. Noter dans le code les exemples disposition 2.11. Un petit commit avant de continuer : "git add ." et "git commit -m "NEW Renommage du projet modle""

  4. Nouvelle connexion : 3.1. Pour Oracle : Mettre jour la chaine de connexion "Entities" active dans les fichiers : "CD67.ModeleMVC.Entity\App.config", "CD67.ModeleMVC.MVC\Web.config" et "CD67.ModeleMVC.Tests\App.config" Pour SQL server :

    • Commenter la chaine de connexion "Entities" actuellement active et mettre jour et d-commenter la chaine de connexion SQLserver dans les fichiers : "CD67.ModeleMVC.Entity\App.config", "CD67.ModeleMVC.MVC\Web.config" et "CD67.ModeleMVC.Tests\App.config"
    • Modifier le fichier "EntityModel.edmx" pour n'activer que le provider SQL server
    • Ouvrir le gestionnaire de package NuGet de la solution et supprimer le package : "Official Oracle ODP.NET, Managed Entity Framework Driver", cela devrait supprimer en cascade "Official Oracle ODP.NET, Managed Driver" et "EntityFramework"
    • Et rinstaller le pakage "EntityFramework" seul dans sa dernire version 3.2. Option : il est possible d'ajouter une projet de type base de donnes pour grer votre base de donnes dans la mme solution (en vous connectant avec la chaine de connexion mis jour au point prcdent) 3.3. Ouvrer le model Entity : "CD67.ModeleMVC.Entity\EntityModel.edmx" et supprimer les tables d'exemples 3.4. Supprimer les classes partielles d'exemple : "CD67.ModeleMVC.Entity\Extend\EXEMPLE_VIKINGS.cs" et "CD67.ModeleMVC.Entity\Extend\EXEMPLE_TYPE_VIKING.cs" 3.5. Supprimer les fichiers "Factory" d'exemple : "CD67.ModeleMVC.Factory\VIKINGSFactory.cs" et "CD67.ModeleMVC.Factory\TYPE_VIKINGFactory.cs" 3.6. Supprimer les contrleurs et vues d'exemple dans : "CD67.ModeleMVC.MVC\Controllers" et "CD67.ModeleMVC.MVC\Views" 3.7. C'est le moment du commit : "git add .", "git commit -m "NEW Fin de l'initialisation du projet modle"" et push de cette branche "git push" 3.8. A ce stade le nouveau projet est prt rellement dmarrer, on crer donc une nouvelle branche "develop" : "git branch develop" et "git checkout develop" 3.9. On pousse la nouvelle branche en ligne : "git push --set-upstream origin develop" (par la suite, "git push" suffira)
  5. Dmarrage du nouveau projet : 4.1. Mettre jour le modle par rapport la base de donnes pour ajouter de nouvelles tables et vues ncessaire l'application 4.2. Vrifier les types des entits gnres depuis la base de donnes, particulirement les chiffres et cls en numro auto ou avec un trigger/sequence Oracle (le champ "StoreGeneratedPattern" doit tre gal "Identity" pour les cls automatiques) 4.3. Crer vos propres fichiers d'extension avec DataAnnotation ici : "CD67.ModeleMVC.Entity\Extend" 4.4. Crer vos propres factory ici : "CD67.ModeleMVC.Factory" 4.5. Crer vos propres controller/vues ici : "CD67.ModeleMVC.MVC\Controllers" et "CD67.ModeleMVC.MVC\Views" (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") 4.6. Modifier le fichier "CD67.ModeleMVC.MVC\App_Start\RouteConfig.cs" par rapport vos contrleurs et variables ncessaires 4.7. Ajout des tests unitaires pour tester les fonctions principales dans le projet ddi "CD67.ModeleMVC.Tests" (CRUD sur les classes, processus complet, etc.) 4.8. On fait des commits/push chaque avance majeure, on fait une fusion avec la branche "master" ds que l'outil est en production, puis son continue les dveloppements sur "develop"

  6. Supprimer ce fichier la fin pour ne pas que l'on sache que vous avez utilis un modle :p

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

Description du projet : 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.

Description du projet : 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.

Description du projet : 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_Layout.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/

Le dossier "Internal" contient du code permettant l'ajout de la commande "@Html.DescriptionFor" dans les vues.

Description du projet : CD67.ModeleMVC.Tests

Projet le plus important de la solution :)