/ / Quelle est la différence entre un ViewModel et un contrôleur en ASP MVC - asp.net-mvc, wpf, silverlight, mvvm

Quelle est la différence entre un ViewModel et un contrôleur en ASP MVC - asp.net-mvc, wpf, silverlight, mvvm

Quelles sont les responsabilités de l'un par rapport à l'autre? Quel genre de logique devrait aller dans l'un vs l'autre? Lequel frappe les services et les bases de données? Comment puis-je décider si mon code doit aller dans le viewmodel ou le contrôleur?

pour mémoire, j'utilise asp mvc

Réponses:

3 pour la réponse № 1

Il n’est pas rare de mélanger des contrôleurs avec ViewModels. Dans un tel scénario, vous pouvez attribuer les responsabilités suivantes aux rôles:

ViewModel représente l'état et le comportement de la présentation.

Manette est responsable du flux de travail de l'application. De plus, il sert de médiateur entre les ViewModels. Cela favorise donc le couplage lâche en empêchant les ViewModels de se référer explicitement les uns aux autres.

Plus d'informations sur ces rôles: Lien


2 pour la réponse № 2

Eh bien, MVVM est vraiment un modèle de conception spécifique à WPF et Silverlight. Elle repose spécifiquement sur les capacités de liaison, de commande et de création de modèles de ces technologies.

Si vous utilisez ASP.NET MVC, MVVM n'est pas une architecture applicable. Il est, par définition, construit autour de Model-View-Controller (d'où ASP.NET MVC) et utilise ce modèle de conception architecturale.


1 pour la réponse № 3

Je suis d'accord avec Reed, bien que, sur HanselminutesRécemment, Phil Haak a parlé de asp.net MVC 2 et a fait plusieurs références à "ViewModel". J'ai donc déduit que des ordinateurs virtuels peuvent être créés même si vous utilisez MVC.

En outre, je pense toujours qu'une application MVVM bénéficie d'au moins une machine virtuelle qui contient des problèmes relatifs à l'ensemble de l'application, tels que la navigation, que je considère comme davantage un contrôleur qu'un ViewModel ...


0 pour la réponse № 4

Je suis d'accord avec vous deux mais je voudrais juste ajouterun autre modèle MVP (Model View Presenter) qui convient le mieux aux formulaires ASP.Net et Windows, mais ne peut pas être utilisé pour WPF et Silverlight. MVVM est spécialement conçu pour les applications WPF et Silverlight.