В чем разница между MVC и MVVM? - PullRequest
1224 голосов
/ 20 марта 2009

Есть ли разница между стандартным шаблоном "Model View Controller" и шаблоном Microsoft Model / View / ViewModel?

Ответы [ 23 ]

2 голосов
/ 08 ноября 2016

В дополнение ко многим из приведенных ответов я хотел добавить дополнительную перспективу с современной клиентской сети - или многофункционального веб-приложения с точки зрения.

Действительно, в наши дни простые веб-сайты и более крупные веб-приложения обычно создаются со многими популярными библиотеками, такими как Bootstrap. Построенный Стивом Сандерсоном, Knockout обеспечивает поддержку шаблона MVVM, который имитирует одно из самых важных действий в шаблоне: привязку данных через модель представления. Небольшой JavaScript позволяет реализовать данные и логику, которые затем можно добавлять к элементам страницы с помощью простых data-bind атрибутов HTML, аналогично использованию многих функций Bootstrap . Вместе эти две библиотеки предлагают интерактивный контент; и в сочетании с маршрутизацией этот подход может привести к простому, но мощному подходу к созданию одностраничного приложения .

Аналогичным образом, современная инфраструктура на стороне клиента, такая как Angular , следует соглашению с шаблоном MVC, но также добавляет Сервис. Интересно, что это рекламируется как модель-вид-что угодно (MVW). (См. этот пост о переполнении стека .)

Кроме того, с появлением прогрессивных веб-фреймворков, таких как Angular 2, мы наблюдаем изменение в терминологии и, возможно, новый архитектурный шаблон, в котором Компоненты включают в себя представление или шаблон и взаимодействуют со службой. - все, что может содержаться в модуле; и серия модулей составляет приложение.

1 голос
/ 12 июня 2019

В настоящее время MVC осуждается, а не в пользу альтруистических разработчиков.

Viper, React, MVVM, это хорошо, MVC плохо и дерьмо ...

Правда или миф?

Что ж, MVC действительно стар, и у него есть свои недостатки, наиболее распространенные из которых - «контроллеры массивного представления», которых боятся.

Но хотя новые вышеупомянутые архитектуры предлагают некоторые решения внутренних проблем MVC, у них также есть некоторые недостатки, да, «никто не совершенен».

MVC великолепен, программисты слишком небрежны.

Вы всегда можете улучшить MVC с помощью простых советов:

https://www.jazzcoding.com/an-easy-way-to-make-mvc-great-again/

1 голос
/ 03 января 2018

mvc на стороне сервера, а mvvm на стороне клиента (в браузере) при веб-разработке

Большую часть времени JavaScript используется для mvvm в браузере. Есть много серверных технологий для MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...