ASP.Net MVC和MVVM

A_V*_*Var 7 model-view-controller mvvm

MVVM是ASP.Net MVC之前存在的Microsoft设计模式.任何人都可以通过光线了解MVVM和新的MVC模式之间的差异吗?

Jam*_*ing 13

任何人都可以了解MVVM和新的MVC模式之间的差异吗?

是:使用ASP.NET MVC时,MVC模式使用控制器将模型直接呈现到视图中.对于具有少量对象的琐碎项目,这是完全可以接受的.如果这可能成为一个问题,那么UI层的关注点可能会渗透到底层(域)模型.

当使用MVVM时,您将在Model和View之间添加一个抽象,这当然是ViewModel.这允许作者将视图最容易消耗的对象投影到视图中.ViewModel可以包含(域)模型中不合适的内容.与此相关的成本是您需要具有映射逻辑,该逻辑将数据从模型转换为视图模型.像AutoMapper这样的工具可以帮助完成这项苦差事.

一个简单的例子可能是Model不需要某些字段,但是特定的View可以.不是将此逻辑烘焙到用户界面中,如果它附加到ViewModel,那么其他UI可以使用相同的VM而不必复制烘焙到第一个用户界面的逻辑.