Quel rôle joue MVVM dans les applications Web ASP.NET MVC 4?
Alors que je suis en train de lire le livre "ASP.NET MVC 4" je m'interroge sur MVVM. J'ai commencé à googler et ne peut pas trouver des livres sur le développement d'applications web à l'aide de MVVM, donc je dois être manquant un peu d'informations ici.
De ce que je comprends, MVVM est utilisé dans les applications web côté client via knockout.js et d'autres cadres.
Si toutefois j'ai été de développer une application Windows Phone, j'ai pu utiliser MVVM directement, sans l'aide de la MVC.
Est-ce à dire, le concept de MVVM /liaison de données juste ne s'applique pas aux client-serveur d'applications web?
source d'informationauteur Krumelur
Vous devez vous connecter pour publier un commentaire.
MVVM est vraiment une sorte de parenthèse. Il n'y a pas vraiment de "MVVM" web app cadres. Ils sont tous MVC et vous avez à peu près juste intégrer un modèle de vue si vous le souhaitez.
Avec ASP.NET MVC, en particulier, il vous suffit de créer une classe, généralement avec un nom dans le formulaire de
[Model Name]ViewModel
ou[Model Name]VM
. Cette classe aura uniquement les propriétés de votre modèle, vous aurez besoin de travailler avec et tout ce que ne fait pas sens pour les mettre sur votre base de données actuelle adossés modèle, commeSelectList
s, etc.Dans votre action, vous venez de passer une instance de ce modèle d'affichage de votre point de vue au lieu de votre modèle:
Et, bien sûr, assurez-vous que votre point de vue accepte que:
Le seul un peu compliqué partie est de câblage du modèle de vue pour le modèle (c'est à dire, obtenir des données vers/à partir de la vue du modèle, de modèle. Vous pouvez le faire manuellement explicitement la cartographie des propriétés, ou vous pouvez utiliser quelque chose comme AutoMapper.
MVC est un système de liaison de données.
Remplir votre Model dans Controller, puis la passer à View.
MVVM est dans les deux sens de la liaison de données.
Remplir votre Model, à utiliser dans les View, lorsque le Vvue de l'état des changements, votre Model mise à jour automatiquement.(Vice-versa)
MVVM est le modèle de conception standard pour WPF/Silverlight de développement, et ne doit pas être confondu avec MVC pour ASP.Net développement.
Les deux se ressemblent et partagent un certain nombre de pièces, mais ils sont deux différents modèles de conception.
De ce que j'ai appris à propos de knockout.js il a été conçu pour créer des "liaisons de données" semblable à ce que vous pouvez utiliser dans WPF/Silverlight développement, c'est pourquoi le design pattern MVVM s'y applique.
Pour citer un autre réponse de la mine sur les différences entre le modèle MVVM et MVC