begin process at 2012 02 11 02:10:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Pb architecture (MVC)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb architecture (MVC)

mercredi 19 juillet 2006 à 11:13:01 | Pb architecture (MVC)

fregolo52

Membre Club
Bonjour,

Je viens du langage C et je galère un peu.
Je voudrais utiliser le design pattern MVC pour éviter de tout pèter si le design de l'IHM ne plait pas au marketing.

Je veux essayer de faire un système multi vues, mais j'ai du mal à voir comment instancier le tout.

Donc mon modèle possède plusieurs classes, ainsi que le controleur. J'ai choisi de passer par les interfaces (pas par les événéments) pour communiquer.

Pour que le modèle soit unique pour toutes les vues, je pense qu'il faut un(des) singleton(s).

Ai-je pris la bonne méthode ? : interfaces.

Je pense faire une dll pour la définition des interfaces, une autre pour le modèle et une dernière pour le controleur, et l'exe pour la vue.
Dans le 'main' de l'exe, je compte instancier le modèle et la vue. Le contrôleur étant instancié par le modèle.
Si le modèle est un singleton, est ce tous les exe vont faire référence au même modèle ?

Vais-je droit dans le mur avec une architecture comme celle-ci ?

Merci.

PS : je sais que c'est difficile de répondre sans connaitre le projet. Les exemples trouvés sur le Net m'ont appris à comprendre les principe de MVC.
mercredi 19 juillet 2006 à 19:38:47 | Re : Pb architecture (MVC)

leprov

faire des singletons tempechera juste d'instancier plusieurs fois.....
de toutes facons, C# = références....
evidemment il y a des cas ou tu travaille sur des copies, mais dans la plupart des cas, tu passe par référence. alors pas la peine de te poser de questions, ton modele sera bien le meme pour tout le monde pour peu que tu code tout proprement....
si tu veux savoir dans quels cas des copies temporaires sont crées, la MSDN référence les rares cas ou ceci est fait....essaie une recherche sur "get", tu devrais avoir le lien vers la page a priori (car le "get" renvoie une copie de l'objet).

au niveau de larchitecture, le MVC est a mon sens adapté a tout type de projet,  et permet de bien tout poser a plat....une architecture comme celle ci est sympa pour des petits projets histoire de bien s'organiser, et devient un vrai bonheur pour des projets de moyenne/grosse envergure....y'a vraiment aucune raison que tu aille droit dans le mur avec un telle architecture....

séparer les composants dans des dll, tres bonne idée (j'ai facilement tendance a procéder ainsi lorsque j'utilise le MVC).

dans le main, jaurais plutot lancé instancié la vue tout bêtement, vue qui instancie le controlleur, et controlleur qui instancie le modèle. Apres ca depend aussi un peu de ton appli.

enfin, si tu as beaucoup de vues, plusieurs solutions pour une bonne clarté :
-une interface de controlleur par vue, et un controlleur qui implémente toutes les interfaces
-un controlleur par vue, et un controlleur global qui gere les différents gérants (plus ou moins la meme chose que les interfaces, mais code plus séparé dans des fichiers, on évite d'avoir 452 directives #region pour bien tout séparer...j'ai une préférence pour cette solution a cause de ca)

j'espere t'avoir aidé et avoir répondu à la plupart de tes questions. Au pire reposte, je viendrais surement rejetter un oeil ;)
mercredi 19 juillet 2006 à 19:42:10 | Re : Pb architecture (MVC)

leprov

PS : attention, le MVC version web est assez mal adapté au MVC version applis standalone....j'espere que tu as fait la différence, sinon tu vas te trouver devant qqs problématiques par moments.....de plus, n'hesite pas a parfois prendre quelques libértés avec le pattern....pas trop non plus pour garder une cohésion, etc....mais dans certains cas, il vaux mieux mettre le pattern un peu de coté et ne pas se borner a le respecter au maximum
jeudi 20 juillet 2006 à 10:08:09 | Re : Pb architecture (MVC)

fregolo52

Membre Club
Merci beaucoup pour toutes ces infos.

En réalité mon appli est une "TreeView", ou plutot une arborescence et chaque niveau de noeuds représente un type d'objet.

C'est un autre module qui va créer les objets, je pensais donc faire comme ceci :
- créer l'objet (modèle)
- l'objet crée un controleur (pour détecter des modification)
- la fonction qui a créé l'objet envoie (par un moyen ou un autre : le controleur global, je pense) l'objet à la vue pour créer "l'objet graphique" (qui pour le moment serait un noeud de treeview)
- Ma classe dérivée de TreeNode s'abonne au controleur de l'objet


P.S. : j'ai voulu faire un truc propre avec des namespaces différents pour le M, V, C et les Interfaces, mais ça deconne avec les interfaces, pour le moment, j'ai remis un namespace unique et je reviendrai sur ce pb plus tard. Pour le moment, c'est plutot une appli test (avec 'reuse' important) pour appréhender MVC.


Cette discussion est classée dans : exe, modèle, mvc, architecture, interfaces


Répondre à ce message

Sujets en rapport avec ce message

Architecture en couches(modele MVC) [ par ri2kardo1417 ] Salut a tous!!Je veux faire un petit programme qui fait la gestion partielle d'une banque(Client,Compte,Transaction) en utilisant l'architecture en co Erreur d'exécution [ par trublue ] salut les amis, en essayant d'exécuter mon prog avec ctrl=F5 cette erreur est apparue: MSB3021 : Impossible de copier le fichier "obj\Release\form1. Générer du Word [ par thierryoo ] Bonjour, Je cherche à créer un document Word à partir du C#. J'ai un modèle de document Word (qui tient sur une page), que je dois reproduire sur plu Ajouter le modèle service windows [ par nadibb ] Bonjour, Je veux créer un service windows, le problème c'est quand je clique sur nouveau projet je ne trouve pas ce modèle . Je ne sais pas qu'est c Manipuler les commandes d'un programme ouvert [ par draonix ] Bonjour à tous, Je rencontre actuellement un problème concernant l'ouverture et la manipulation d'un programme .exe à partir de mon programme C#. En Interaction en 2 executables [ par gregbsk ] Bonjour à tous, je vais essayer d'être le plus clair possible. Mon problème est le suivant : Je développe sous visual studio 2005 en C# Ma solution architecture client/serveur pour détecter utilisateur inactif [ par vboussema ] salut je veux implémanter une architecture permettant de détecter si un utilisateur est connecté .cette architecture doit notifier un serveur chaque x notion de l'architecture 3 couches en c# [ par tlilikhaled ] slt,j'ai trouve une difficulté pour la notion de l'architecture 3 couches en c#.je vous demande si quelqu'un a un tutoriel ou une vidéo ou document c Architecture logicielle C# .NET WPF DLL [ par jon_private ] Bonjour à tous, Je suis actuellement en train de travailler sur un projet, et j'aimerais avoir l'avis d'experts sur l'architecture que je souhaite me Installation dun exe en mode silence [ par rsx602 ] Bonjours, je suis sur un petit projet qui consiste à télécharger le programme désiré et le faire installer seulement j'aimerais savoir si il a un moye


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales