Каковы различия и сходства между MVC и MVVM?

Возможный дубликат:
В чем разница между MVC и MVVM?

Я новичок в шаблоне MVC Asp.Net. У меня просто несколько вопросов, связанных с MVC и MVVM

  • Какие проблемы затрагивают эти шаблоны?
  • Как они похожи?
  • Как они отличаются?

Ответ 1

в ASP.NET MVC запрос поступает с веб-сервера и обрабатывается непосредственно контроллером. Контроллер определяет соответствующий View и заполняет его с помощью моделей. Затем контроллер выдает эти экземпляры в базовую систему, которая возвращает результат клиенту. Вы можете видеть, что контроллер работает первым и последним.

В MVVM пользовательский интерфейс (вид) обращен к пользователю и принимает вход пользователя напрямую. Внутри представления в этой функции активируются команды в ViewModel (который является DataContext представления). Элемент управления переходит в ViewModel, который интерпретирует то, что его отправил, и готовит его Модели. После того, как управление возвращается к представлению, оно обновляется в соответствии с изменениями в Модели. Если требуется новый вид, ViewModel связывается с ним с помощью NavigationService (или любого другого способа навигации, используемого вашим приложением), который является областью компонентов Window или Frame - UI. Вы можете видеть, что ViewModel не первый и последний, чтобы действовать; представление играет гораздо большую роль, чем в MVC.

Что касается выбора того, какой из них лучше, я бы склонен руководствоваться поддержкой инструментов. Например, если вы используете ASP.Net, существует огромный объем автоматизации с помощью шаблона проекта MVC, который помогает с настройкой плиты котла и использованием этого шаблона в приложении. Из того, что я понимаю о Silverlight/WPF, вокруг MVVM существует большая поддержка. Когда несколько лет назад я был на скорости MVC/MVP, я реализовал MVP в процессе проверки приложения электронной коммерции. Это был отличный опыт с удовлетворительным результатом, но я писал все вручную без поддержки инструментов и небольшого руководства. Когда я пишу приложение Silverlight, я обязательно перейду к MVVM из-за поддержки, которая там есть.

Ответ 2

Множество контента в Интернете, охватывающее это, но как стартер это видео поможет вам

Ответ 3

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

Модель - это если вам нравится объект, который описывает все, что вы хотите захватить, включая его поведение, хотя большинство людей думают об этом с точки зрения таблицы базы данных, но его просто модель хранения и модель объединяют все.

Просмотр - если вам нравится пользовательский интерфейс, с которым вы взаимодействуете

Контроллер - это тот, который управляет взаимодействием между представлением вида или выполнением изменений, происходящих на модели.

MVVM, если вам нравится, такой же, как MVC, но он использует дополнительную модель просмотра, чтобы помочь с пользовательским интерфейсом и этой моделью View Model синхронизироваться с моделью через контроллер.

Архитектура, которая также объединяет лучшие практики, такие как шаблон репозитория, IOC и т.д.

Быстрый, например. например, модель человека

class Person
{ 
   int id;
   string type;

}

Теперь модель View, которая поможет с пользовательским интерфейсом, может иметь раскрывающийся список, чтобы заполнить типы людей, поэтому ViewModel для той же модели может быть

Class PersonViewModel

{  //Pseudo code
   SelectList {mytype, yourtype}

}

Это может быть использовано в качестве // псевдокод DropDownList (slectList)

Надеюсь, что это поможет