Возможный дубликат:
В чем разница между MVC и MVVM?
Я новичок в шаблоне MVC Asp.Net. У меня просто несколько вопросов, связанных с MVC и MVVM
- Какие проблемы затрагивают эти шаблоны?
- Как они похожи?
- Как они отличаются?
Возможный дубликат:
В чем разница между MVC и MVVM?
Я новичок в шаблоне MVC Asp.Net. У меня просто несколько вопросов, связанных с MVC и MVVM
в 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 из-за поддержки, которая там есть.
Множество контента в Интернете, охватывающее это, но как стартер это видео поможет вам
MVC - это архитектурный образец программного обеспечения, который позволяет вам отличное разделение, особенно логика домена, пользовательский интерфейс, бизнес-логика и т.д., и позволяет полностью разделить проблемы и позволяет самостоятельно разрабатывать независимые логики и тестировать отдельно, а также легкость тестирования нескольких версий реализаций без особого шума.
Модель - это если вам нравится объект, который описывает все, что вы хотите захватить, включая его поведение, хотя большинство людей думают об этом с точки зрения таблицы базы данных, но его просто модель хранения и модель объединяют все.
Просмотр - если вам нравится пользовательский интерфейс, с которым вы взаимодействуете
Контроллер - это тот, который управляет взаимодействием между представлением вида или выполнением изменений, происходящих на модели.
MVVM, если вам нравится, такой же, как MVC, но он использует дополнительную модель просмотра, чтобы помочь с пользовательским интерфейсом и этой моделью View Model синхронизироваться с моделью через контроллер.
Архитектура, которая также объединяет лучшие практики, такие как шаблон репозитория, IOC и т.д.
Быстрый, например. например, модель человека
class Person
{
int id;
string type;
}
Теперь модель View, которая поможет с пользовательским интерфейсом, может иметь раскрывающийся список, чтобы заполнить типы людей, поэтому ViewModel для той же модели может быть
Class PersonViewModel
{ //Pseudo code
SelectList {mytype, yourtype}
}
Это может быть использовано в качестве // псевдокод DropDownList (slectList)
Надеюсь, что это поможет