Précédent   Forum du club des développeurs et IT Pro > Dotnet > Développement Windows > Windows Forms
Windows Forms Forum d'entraide sur le développement Windows Forms & Applications Windows. Avant de poster -> Articles Windows Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/12/2012, 00h35   #1
touftouf57
Membre habitué
 
Avatar de touftouf57
 
Étudiant
Inscription : décembre 2007
Messages : 296
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2007
Messages : 296
Points : 130
Points : 130
Par défaut Quel pattern MVC ou MVP utilisez-vous dans une application Winform MDI?

Bonjour à tous,

Cela fait 2 jours que je cherche une façon "optimale" de découpler le code d'un projet que j'ai fait en version sauvage pour une démonstration de l'IHM. Toute la logique se trouve actuellement dans mes Winforms (C'était pour faire vite)

La démonstration faite, on me dit que cela leur plait.

Maintenant je me casse donc la tête pour bien tout découpler, puisqu'il se pourrait que dans le futur, l'IHM ne soit plus en Winform mais en version web.
Idem pour la partie modèle qui pourrait provenir d'une autre source (BDD, fichiers, XML,...)
C'est pourquoi je voudrais un découplage optimal.
Actuellement mon modèle est OK. Il se trouve dans un autre projet visual studio (bibliothèque de classes). Il doit rester à part car ce modèle pourrait être utiliser dans d'autres applications.

Depuis ces 2 derniers jours, je n'avance plus. Je ne trouve pas de solution "miracle". Je parcours le web en long et en large mais rien de concluant.

Je me suis tourné vers MVC, mais j'ai du mal à implémenter le fait que certaines forms soient des MdiChilds.
Puisque je veux des MDIChilds chaque form aura son controleur. Or pour créer un controleur il faut lui définir sa vue. Et la le découplage est rompu puisque dans mon MainController je fais:
Code :
1
2
IChildController childController = new ChildController(data,new MyChildForm());
J'ai aussi essayé avec MVP, mais je ne suis pas sur d'y avoir tout compris.

Donc comment gérez-vous votre découplage pour que vos applications soient facilement modulables? quel pattern utiliseriez-vous? Si vous aviez un exemple efficace à me proposer, je suis preneur.

Ensuite sur les childForm, j'affiche des fenêtres modales. Imaginez mon modèle comme un tableau. Sur double clic, j'ouvre une fenêtre modale permettant de définir les données de la case. Lorsque je valide la fenetre modale, cela modifie la case cliquée.
Mettriez-vous aussi ces fenêtres modales sous MVC avec M=la case cliquée? ou la traitez-vous comme si vous utilisiez une PrintDialog avec using et DialogResult?

Merci de votre aide
__________________
Venez affronter mes brutes http://touftouf57.labrute.com - http://mori-turi.labrute.fr
Mon blog CV : http://c-elsensohn.site50.net/
touftouf57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 22h56   #2
ElTotor
Membre confirmé
 
Homme François DORIN
Chef de Projet
Inscription : décembre 2012
Messages : 104
Détails du profil
Informations personnelles :
Nom : Homme François DORIN
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Chef de Projet
Secteur : Associations - ONG

Informations forums :
Inscription : décembre 2012
Messages : 104
Points : 226
Points : 226
Bonsoir,

Un moyen peut être pour garder le découplage serait d'utiliser de l'injection de dépendance. Je ne connais que le principe, je ne l'ai jamais mise en oeuvre, mais je pense que cela pourrait répondre à ton problème (en gros, tu n'aurais plus de dépendance dans ton code, mais seulement dans un fichier de configuration).

Concernant l'utilisation de MVC pour l'édition de tes cases, je dirais oui. J'ai réalisé plusieurs applications en client lourd et c'est toujours l'approche que j'ai utilisée. Cela m'a toujours apporté beaucoup de souplesse (par contre, comme il s'agit d'applications réalisées dans le cadre de mon travail, je ne peux pas te donner d'exemple).
ElTotor est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h47.


 
 
 
 
Partenaires

Hébergement Web