Question

J'ai trouvé un article à ce sujet par un employé de Microsoft, mais quelqu'un a-t-il mis en place un cadre plus robuste pour cela ?Existe-t-il un framework léger pour WinForms qui pourrait être porté facilement ?J'aimerais me mettre à niveau assez rapidement et éviter de produire mon propre framework/bibliothèque pour gérer cela alors que quelqu'un de plus intelligent l'a déjà fait.

je n'ai pas regardé le Usine de logiciels mobiles du groupe P&P, mais je soupçonne que c'est un peu lourd.Est-ce que ça vaut le détour ?

Modifier:Je ne recherche pas d'informations sur le projet ASP.NET MVC.Je pose des questions sur l'implémentation du framework compact « WinForms » et sur la manière d'implémenter MVC avec cela.

Était-ce utile?

La solution

Personnellement, je pense que la Mobile Software Factory n'apporte pas beaucoup de joie à CF.Nous en utilisons toujours une partie (EventBroker) au travail et j'aimerais même supprimer cette partie si possible (car elle ne prend pas en charge les événements génériques et vous devez convertir les arguments dans leurs types forts à partir d'EventArgs).Un projet sœur au travail l'a utilisé pour une partie de son interface utilisateur, mais a dû le supprimer en raison de problèmes de performances (un autre gros projet, bien qu'il présente également des problèmes de performances supplémentaires).

Le problème que je trouve avec le framework MVP proposé par la bibliothèque P&P est que les formulaires et les contrôles sont PROPRES aux présentateurs au lieu des présentateurs/contrôleurs possédant des formulaires (qui n'ont pas lu "C'est juste une vue" :Programmeur pragmatique ?).Cela correspond parfaitement au mantra de développement rapide d'applications "Form First" de MS, mais c'est nul si l'on considère le coût élevé des poignées de fenêtres en CE (si vous en avez beaucoup).Nous exécutons une très grande application CF au travail et nous avons déployé notre propre framework MVC.Il n'est pas difficile de créer le vôtre, assurez-vous simplement de tout séparer en contrôleurs, vues, objets métier et services et de disposer d'un UIController qui contrôle les interactions entre les contrôleurs.

Nous allons en fait encore plus loin et réutilisons les formulaires/contrôles en utilisant un modèle Contrôleur->Vue->Layout.Le contrôleur est le même que d'habitude, la vue est l'objet qui personnalise une mise en page dans une vue particulière et la mise en page est le véritable UserControl.Nous les échangeons ensuite dans et hors d’un seul formulaire.Cela réduit considérablement la quantité de contrôles Windows que nous utilisons.Ceci + l'initialisation de tous les formulaires au démarrage signifie que nous éliminons la pause notable que vous obtenez lors de la création de nouveaux contrôles Windows "à la demande".

Évidemment, cela ne vaut la peine de faire ce genre de chose que si vous lancez une application volumineuse.Nous avons environ 20+ types de vues différents qui utilisent au total environ 7 mises en page différentes.Cela nuit à notre routine d'initialisation (lorsque nous chargeons les formulaires au démarrage) d'une ampleur d'environ 10 secondes, mais psychologiquement, la plupart des utilisateurs sont prêts à accepter un tel coup au démarrage plutôt que des pauses notables pendant l'exécution.

Le principal problème avec la bibliothèque P&P dans mes livres est qu'il s'agit d'un port FF -> CF et qu'en raison de certaines incompatibilités et différences de performances entre les deux plates-formes, vous perdez beaucoup de fonctionnalités utiles.

D'ailleurs, ce est de loin l'article le plus complet que j'ai jamais lu sur MVC/MVP.Pour les applications Windows (ordinateur de bureau ou CE), je recommanderais d'utiliser la version Taligent Model-View-Presenter sans les interactions, commandes et sélections (par exemple, le contrôleur/présentateur effectue tout le travail).

Autres conseils

Aucun de vous (David ou Kevin Pang) n'a prêté attention au fait qu'il s'intéresse à WinForms, pas Formulaires Web.Il veut un framework qui pousse le modèle de conception Model-View-Controller (davidg, MVC n'est pas seulement le nom d'un framework ASP.NET) dans un projet WinForms utilisant le .NET Compact Framework.Il a très bien posé sa question.

Il y a aussi le Cadre OpenNETCF IoC (qui, je ne pense pas, existait lorsque cette question a été posée) qui est beaucoup plus léger, mais similaire en termes de modèle objet à la Mobile Software Factory de P&P.

@DavidG et @KevenPang

MVC ne se limite pas à une technologie Web, en fait, le MVC smalltalk original était destiné aux applications de bureau.

Cela fonctionne comme ceci :

  • Afficher = Formulaire client
  • Contrôleur = résume les événements client et les marshals entre la vue et le modèle
  • Modèle = Données d'application et logique métier

Dans Smalltalk MVC pur, la vue ne se limite pas à être un formulaire, mais peut être n'importe quelle représentation des données du modèle... Par exemple, si nous avions un modèle qui représentait une feuille de calcul, nous pourrions avoir les vues suivantes :

  • Vue feuille de calcul
  • Vue imprimable
  • Vue par icône

etc, le modèle serait le même, mais la vue créerait un objet de sortie différent dans chaque cas.

Cela dit, je ne sais pas si un tel framework existe pour le framework .NET Compact, je voulais juste souligner que MVC ne veut pas dire WebApp.

Jeter un coup d'œil à MVC mobile de mFly.Je ne l'ai jamais utilisé, mais il est présenté comme un cadre MVC raisonnable pour les FC.

@davidg :"Pourquoi voudriez-vous MVC sur Compact Framework ?"

Pourquoi pas?Ce n'est pas comme si c'était réservé au développement Web, c'est un modèle.

Modifier:Les affiches ci-dessus sont correctes.J'ai vu MVC et j'ai immédiatement pensé aux formulaires Web.Mes excuses.N'hésitez pas à ignorer cela.Je laisserai mon message original en place au cas où quelqu'un est intéressé par les formulaires Web, MVC a besoin des liens.:-)

Il existe quelques frameworks MVC, dont aucun n'est très "léger", mais MVC constitue un changement assez important par rapport aux formulaires Web, ce qui est donc attendu :

  • ASP.NET MVC - Il s'agit de la tentative de Microsoft de créer un framework MVC.Il est toujours en mode aperçu, alors utilisez-le à votre discrétion, mais plusieurs personnes l'utilisent déjà dans leurs applications de production.Vous trouverez une documentation abondante à ce sujet avec une simple recherche sur Google, car il devient très populaire parmi la communauté .NET.
  • Château MonoRail - Le framework MonoRail est un framework MVC open source qui existe depuis un certain temps et est utilisé sur plusieurs applications de production.Il est certainement plus élaboré que le framework ASP.NET MVC, mais compte tenu des efforts déployés par Microsoft pour son offre MVC, je pense que cela changera relativement bientôt.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top