+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    décembre 2007
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2007
    Messages : 324
    Points : 136
    Points
    136

    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

  2. #2
    Membre confirmé
    Homme Profil pro
    Chef de Projet
    Inscrit en
    décembre 2012
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

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

    Informations forums :
    Inscription : décembre 2012
    Messages : 107
    Points : 227
    Points
    227

    Par défaut

    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).

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •