Может кто-нибудь пролить свет на различия между MVVM и новым шаблоном MVC?
Да: при использовании ASP.NET MVC шаблон MVC использует контроллер для визуализации модели непосредственно в виде.Это вполне приемлемо для тривиальных проектов с небольшим количеством объектов.Проблема может возникнуть из-за того, что проблемы уровня пользовательского интерфейса могут перетекать в базовую (доменную) модель.
При использовании MVVM вы добавляете абстракцию между моделью и представлением, котораяКонечно, ViewModel.Это позволяет автору проецировать в представление объект, который наиболее легко используется представлением.ViewModel может содержать вещи, которые будут неуместны в (доменной) модели.Стоимость, связанная с этим, заключается в том, что вам нужна логика сопоставления, которая переносит данные из модели в модель представления.Такие инструменты, как AutoMapper, могут помочь в этой рутинной работе.
Простым примером этого может быть то, что Модель не требует определенных полей, как это требуется, но конкретный Вид делает.Вместо того, чтобы вставлять эту логику в пользовательский интерфейс, если она присоединена к ViewModel, другие пользовательские интерфейсы могут использовать ту же виртуальную машину без необходимости дублировать логику, которая была встроена в первый пользовательский интерфейс.