|
|
@@ -1,25 +1,55 @@
|
|
|
Mode d'emploi du projet modèle MVC-entity
|
|
|
|
|
|
-*-*-*-*-*-*
|
|
|
-historique
|
|
|
-v0.1 15/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")
|
|
|
-3. Option : Ajouter une projet de type base de données
|
|
|
-
|
|
|
-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
|
|
|
+# Historique
|
|
|
+v0.1 19/07/2016 (Julien Legrand) : 1ère version
|
|
|
+
|
|
|
+
|
|
|
+# Démarrage d'un nouveau projet avec le modèle : pas-à-pas
|
|
|
+
|
|
|
+1. GIT
|
|
|
+1.1. Cloner le projet modèle dans le dossier de votre choix : "git clone [adresse du projet]" à faire dans le dossier parent (le dossier CD67.ModeleMVC sera créé automatiquement)
|
|
|
+2.2. Renommer le dossier du projet avec le nom de votre choix
|
|
|
+2.3. Supprimer le sous-dossier caché ".git" à la racine du projet pour supprimer le lien avec le projet modèle
|
|
|
+2.4. Initialiser un nouveau dépôt GIT : "git init" à faire dans le dossier du projet
|
|
|
+2.5. C'est le bon moment pour faire un premier commit : "git commit -m "NEW Reprise du projet modèle""
|
|
|
+2.6. Ajout de la référence du repository en ligne : "git remote add origin [adresse du nouveau projet]"
|
|
|
+2.7. 1er envoi sur le serveur : "git push --set-upstream origin master" (par la suite, "git push" suffira)
|
|
|
+
|
|
|
+2. Renommer et exéctuer la maquette :
|
|
|
+2.1. Renommer la solution et les projets en suivant ce schéma : "CD67.[nom appli].[Entity/Factory/MVC/Tests/Batchs]"
|
|
|
+2.2. Renommer également les assemblies et espaces de nom de chaque projet (dans les propriétés des projets, onglet "Application")
|
|
|
+2.3. Quitter Visual Studio
|
|
|
+2.4. Supprimer si nécessaire tous les fichiers commencant par "CD67.ModeleMVC.*" dans les dossiers suivants : "\CD67.Toto.MVC\bin", "\CD67.Toto.Factory\bin\Debug", "\CD67.Toto.Entity\bin\Debug", "CD67.Toto.Tests\bin\Debug"
|
|
|
+2.5. Modifier le noms des dossiers des projets en conséquence et modifier le chemin des fichiers projets dans le fichier solution *.sln
|
|
|
+2.4. Ouvrir à nouveau la solution et faire un rechercher/remplacer global à la solution pour remplacer "CD67.ModeleMVC" par "CD67.[nom appli]"
|
|
|
+2.5. Nettoyer et régénere la solution
|
|
|
+2.6. Exécuter là pour contrôler qu'elle fonctionne correctement à ce stade avec les données de tests
|
|
|
+2.7. Noter dans le code les exemples à disposition
|
|
|
+2.8. Un petit commit avant de continuer : "git commit -m "NEW Renommage du projet modèle""
|
|
|
+
|
|
|
+2. Nouvelle connexion :
|
|
|
+2.1. Mettre à jour la chaine de connexion "Entities" dans les fichiers : "CD67.Toto.Entity\App.config" et "CD67.Toto.MVC\Web.config"
|
|
|
+2.2. Option : il est possible d'ajouter une projet de type base de données pour gérer votre base de données dans la même solution (en vous connectant avec la chaine de connexion mis à jour au point précédent)
|
|
|
+2.3. Ouvrer le model Entity : "CD67.Toto.Entity\EntityModel.edmx" et supprimer les tables d'exemples
|
|
|
+2.4. Supprimer les classes partielles d'exemple : "CD67.ModeleMVC.Entity\Extend\EXEMPLE_VIKINGS.cs" et "CD67.ModeleMVC.Entity\Extend\EXEMPLE_TYPE_VIKING.cs"
|
|
|
+2.5. Supprimer les fichiers "Factory" d'exemple : "CD67.ModeleMVC.Factory\VIKINGSFactory.cs" et "CD67.ModeleMVC.Factory\TYPE_VIKINGFactory.cs"
|
|
|
+2.6. Supprimer les contrôleurs et vues d'exemple dans : "CD67.ModeleMVC.MVC\Controllers" et "CD67.ModeleMVC.MVC\Views"
|
|
|
+2.7. C'est le moment du commit : "git commit -m "NEW Fin de l'initialisation du projet modèle""
|
|
|
+2.8. A ce stade le nouveau projet est prêt à réellement démarrer, on créer donc une nouvelle branche "develop" : "git branch develop" et "git checkout develop"
|
|
|
+2.9. On pousse la nouvelle branche en ligne : "git push --set-upstream origin develop" (par la suite, "git push" suffira)
|
|
|
+
|
|
|
+3. Démarrage du nouveau projet :
|
|
|
+3.1. Mettre à jour le modèle par rapport à la base de données pour ajouter de nouvelles tables et vues nécessaire à l'application
|
|
|
+3.2. Vérifier les types des entités générées depuis la base de données, particulièrement les chiffres et clés en numéro auto ou avec un trigger/sequence Oracle (le champ "StoreGeneratedPattern" doit être égal à "Identity" pour les clés automatiques)
|
|
|
+3.3. Créer vos propres fichiers d'extension avec DataAnnotation ici : "CD67.ModeleMVC.Entity\Extend"
|
|
|
+3.4. Créer vos propres factory ici : "CD67.ModeleMVC.Factory"
|
|
|
+3.5. Créer vos propres controller/vues ici : "CD67.ModeleMVC.MVC\Controllers" et "CD67.ModeleMVC.MVC\Views"
|
|
|
(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
|
|
|
+3.7. Modifier le fichier "CD67.ModeleMVC.MVC\App_Start\RouteConfig.cs" par rapport à vos contrôleurs et variables nécessaires
|
|
|
+3.8. Ajout des tests unitaires pour tester les fonctions principales dans le projet dédié "CD67.ModeleMVC.Tests" (CRUD sur les classes, processus complet, etc.)
|
|
|
+3.9. On fait des commits à chaque avancée majeure, on fait une fusion avec la branche "master" dès que l'outil est en production, puis son continue les développements sur "develop"
|
|
|
|
|
|
-10. supprimer ce fichier pour ne pas que l'on sache que vous avez utilisé un modèle
|
|
|
+4. Supprimer ce fichier à la fin pour ne pas que l'on sache que vous avez utilisé un modèle :p
|
|
|
|
|
|
|
|
|
# Description générale
|
|
|
@@ -30,7 +60,7 @@ La solution est consitu
|
|
|
- CD67.ModeleMVC.Tests : Tests unitaires
|
|
|
|
|
|
|
|
|
-# CD67.ModeleMVC.Entity
|
|
|
+# Description du projet : CD67.ModeleMVC.Entity
|
|
|
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)".
|
|
|
|
|
|
@@ -46,7 +76,7 @@ Le dossier "Internal" contient :
|
|
|
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
|
|
|
+# Description du projet : CD67.ModeleMVC.Factory
|
|
|
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.
|
|
|
@@ -56,7 +86,7 @@ C'est
|
|
|
Le dossier "Internal" contient la classe de base "baseFactory" dont chaque "Factory" hérite.
|
|
|
|
|
|
|
|
|
-# CD67.ModeleMVC.MVC
|
|
|
+# Description du projet : 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.
|
|
|
|
|
|
Le dossier "Views" contient par défaut :
|
|
|
@@ -77,5 +107,5 @@ Et les ic
|
|
|
Le dossier "Internal" contient du code permettant l'ajout de la commande "@Html.DescriptionFor" dans les vues.
|
|
|
|
|
|
|
|
|
-# CD67.ModeleMVC.Tests
|
|
|
+# Description du projet : CD67.ModeleMVC.Tests
|
|
|
Projet le plus important de la solution :)
|