2010-08-08 4 views
0


Selon la définition du modèle MVC classique, le contrôleur est responsable du traitement des entrées utilisateur et de l'interaction avec les modèles, ainsi que déterminant la vue à rendre.MVC non implémentable dans Winforms?

Wikipedia definition of MVC:
« Le contrôleur reçoit l'entrée et déclenche une réponse en faisant des appels sur les objets du modèle. Un contrôleur accepte l'entrée de l'utilisateur et indique le modèle et viewport pour effectuer des actions basées sur cette entrée. »

Selon la définition, n'est-il pas possible d'implémenter MVC via les winforms .NET? Parce que c'est toujours la vue qui devrait recevoir l'entrée, même si elle peut déléguer la demande au contrôleur par la suite. Dans les applications MVC winforms que j'ai vu jusqu'à présent, c'est ce qui se passe et le contrôleur est pas celui qui reçoit l'entrée directement et détermine quelle vue à rendre.

Pour moi, il semble que toutes les implémentations MVC Winform sont différentes variations de MVP et non MVC.

(Je comprends le fait que ASP.NET MVC adhère à la définition classique MVC que le contrôleur reçoit la première entrée à travers le moteur de routage et détermine alors quelle vue à rendre etc ..)

Can Quelqu'un clarifier? Merci.

+0

@ ig105: J'ai vu tellement de choses que les gens appellent MVC, je ne suis pas sûr de m'inquiéter à ce sujet. Tant que quelqu'un a l'idée générale de la façon d'encapsuler la vue à partir des tripes d'applications spécifiques à partir des types de données de bas niveau, je ne suis pas sûr que cela compte. Personnellement, je pense que la première ligne de saisie devrait faire partie de la vue/présentation. Il y a beaucoup plus de choses intéressantes à faire dans le contrôleur que de simplement manipuler des boutons ou des clics de souris. À ce stade, je suis habitué à MVVM, alors peut-être que je suis partial. –

Répondre

1

C'est toujours la vue qui devrait recevoir l'entrée, même si elle peut déléguer la demande au contrôleur par la suite. Dans les WinForms applications MVC que je l'ai vu jusqu'à présent, ce qui arrive et le contrôleur est pas celui qui reçoit l'entrée directement

Le concepteur Windows Forms aime ajouter des gestionnaires d'événements pour les contrôles à la former lui-même, mais vous n'avez ont de le faire de cette façon. Vous pouvez utiliser n'importe quelle autre classe pour gérer ces événements d'entrée si vous le souhaitez.

Je recommanderais certainement d'utiliser une approche MVP, cependant. C'est relativement facile à mettre en place et ça a bien fonctionné pour moi jusqu'ici.

Vous voudrez peut-être lire les réponses à la question "How would you implement MVC in a WindowsForms application?" pour plus d'informations.

0

Vous avez raison Le modèle MVP est applicable aux Winforms, et il fonctionne très bien. Un ami avait un projet avec winforms, où il a appliqué le modèle mvp.

Je ne suis pas sûr mais je pense que MVC ne peut pas être appliqué à Winforms, et pour cette raison je pense que les gens se sont tournés vers les différentes variantes de MVP.