Où puis-je trouver un bon exemple sur la façon d'implémenter complètement le modèle MVC dans Windows Forms?
J'ai trouvé de nombreux tutoriels et exemples de code sur divers sites (par exemple, The Code Project et .NetHeaven), mais beaucoup sont plus représentatifs du modèle d'observateur que MVC. Puisque l'application que je souhaite développer est destinée à un projet scolaire, je suis réticent à utiliser des frameworks comme PureMVC ou MVC # .
Réponses:
Je suis d'avis que les applications sont si différentes les unes des autres et que notre compréhension de la manière dont les applications doivent être rédigées est encore très limitée. Les applications Windows Forms sur lesquelles j'ai travaillé étaient si différentes les unes des autres. Certaines des différences de conception que j'ai constatées sont (y compris la plupart des combinaisons):
Par conséquent, je ne pense pas qu'il soit possible de créer une implémentation de MVC (ou MVP) qui s'adapte toujours bien.
Les meilleurs articles que j'ai vus expliquant vraiment MVC et pourquoi un système MVC est construit comme il est, sont la série "Build Your Own CAB" de Jeremy D Miller . Après avoir travaillé, vous devriez être en mesure de mieux comprendre vos options. Les conseils de Microsoft Smart Client (CAB / Microsoft Composite Application Block) doivent également être pris en compte. C'est un peu complexe, mais cela peut bien fonctionner pour des applications bien adaptées.
La sélection d'une implémentation MVC / MVP pour un projet Winforms donne un aperçu qui vaut la peine d'être lu. Beaucoup de gens aiment PureMVC . Je ne l'ai jamais utilisé, mais je le regarderais la prochaine fois que j'aurais besoin d'un framework MVC.
« Presenter First » est une approche de développement logiciel qui combine les idées du modèle de conception Model View Presenter (MVP) et le développement piloté par les tests . Il vous permet de commencer par rédiger des tests dans la langue du client. Par exemple:
Je n'ai aucune expérience de l'utilisation de «Presenter First», mais je vais essayer quand j'en aurai l'occasion, car cela semble très prometteur.
D'autres questions sur Stack Overflow que vous voudrez peut-être examiner sont ici et ici .
Si vous envisagez d'utiliser WPF à tout moment, jetez un œil au modèle Model-View ViewModel (MVVM) . Voici une très bonne vidéo que vous devriez regarder: Jason Dolinger sur Model-View-ViewModel .
Le modèle de conception MVVM (Model View View Model) pour Winforms offre une autre option qui peut faciliter la conversion en WPF si nécessaire. Magical.Trevor est encore un autre exemple MVVM pour Windows Forms qui inclut également la liaison automatique basée sur les noms de propriété.
Demandez-vous également pourquoi vous utilisez MVC.
Une fois que vous êtes clair sur vos objectifs , il devient plus facile de choisir une mise en œuvre ou une autre.
la source
MISE À JOUR: En plus de ma réponse précédente ci-dessous, je suggère de lire sur l' approche "Presenter First" (en particulier les articles PDF)
Je recommanderais MVP (modèle PassiveView en fait) au lieu de MVC. Vous n'avez pas vraiment besoin de frameworks spéciaux pour cela, c'est juste comment vous organisez votre code.
Une approche (que j'adopte généralement) consiste à diviser chaque formulaire de fenêtre en trois entités:
Exemple de code (un pseudo-code simple, juste à titre d'illustration):
la source
Avez-vous regardé PureMVC ? J'ai constaté que personne ne peut s'entendre sur ce à quoi ressemble vraiment MVC une fois qu'il a commencé à créer une implémentation spécifique.
Mise à jour: vous pouvez créer le vôtre en commençant par quelque chose de plus simple comme MobileMVC . Le code Compact Framework doit être compilé / exécuté correctement sous Windows. Puisqu'il s'agit d'un travail scolaire, je vous suggère de passer du temps à apprendre comment MVC fonctionne réellement.
la source
Vous voudrez peut-être jeter un coup d'œil à l' exécution différentielle .
Le voici dans SourceForge
IMO, c'est une grande amélioration par rapport au MVC, même si c'est encore assez inhabituel.
la source
Un bon exemple de déploiement de votre propre implémentation de MVC à l'aide de Windows Forms peut être trouvé ici . Le code source est inclus.
En lisant, en étudiant et en écrivant du code pour cette affectation, vous constaterez qu'il y a beaucoup de désaccords sur la façon dont MVC doit être implémenté. Celui-ci est un cas simple qui reflète la séparation des préoccupations ainsi qu'un bon exemple de la «plomberie» nécessaire pour le raccorder.
Lorsque vous ne serez pas scolarisé, vous voudrez probablement vous rabattre sur un cadre comme les autres affiches l'ont recommandé.
la source
Le bloc d'application d'interface composite Microsoft a commencé sa vie en tant qu'implémentation MVC (parmi d'autres modèles qu'il a implémentés). La version finale, cependant, a évolué vers une implémentation MVP, qui peut être considérée comme une sorte d'interprétation différente du concept MVC.
Si vous souhaitez vérifier le code d'une implémentation MVP très complète (et en quelque sorte complexe), vous pouvez trouver le MS-CAB comme l'un des composants de Microsoft Smart Client Software Factory. Il est livré avec le code source. Vous pouvez le trouver ici . Bonne chance!
la source