/ / Каква е разликата между ViewModel и контролера в ASP MVC - asp.net-mvc, wpf, silverlight, mvvm

Каква е разликата между ViewModel и контролера в ASP MVC - asp.net-mvc, wpf, silverlight, mvvm

Какви са отговорностите на един срещу друг? Каква логика трябва да върви в една срещу друга? Коя от тях набира услуги и бази данни? Как да реша дали моят код трябва да отиде в viewmodel или контролера?

за записа, аз съм с asp mvc

Отговори:

3 за отговор № 1

Не е толкова необичайно да се смесват контролери с ViewModels.В такъв сценарий може да зададете следните отговорности на ролите:

ViewModel представлява състоянието и поведението на презентацията.

контрольор е отговорен за работния процес на приложението. Освен това, тя посредничи между ViewModels. По този начин се насърчава разхлабване на връзката, като се запази ViewModels да се позовават един на друг изрично.

Повече информация за тези роли: връзка


2 за отговор № 2

Е, MVVM е наистина специален дизайн на WPF и Silverlight. Тя специално разчита и изисква данните, които обвързват, командват и шаблонират способностите на тези технологии.

Ако използвате ASP.NET MVC, MVVM не е приложима архитектура. Тя по дефиниция е изградена около Model-View-Controller (оттам ASP.NET MVC) и използва този архитектурен дизайн.


1 за отговор № 3

Съгласен съм с Рийд, макар и на Hanselminutesнаскоро Фил Хаак говори за asp.net MVC 2 и направи няколко препратки към "ViewModel" - така че предположих, че VM може да бъде създаден дори ако използвате MVC

Също така - винаги мисля, че приложението MVVM се възползва от поне един VM, който съдържа проблеми, свързани с приложението, като навигация, която според мен е по-скоро контролер от ViewModel ...


0 за отговор № 4

Аз съм съгласен и с двамата ви, но просто искам да добавядруг модел MVP (Model View Presenter), който е най-подходящ за ASP.Net и Windows формат, но не може да се използва за WPF и Silverlight.MVVM е специално проектиран за приложения WPF и Silverlight.