问题 MVC和MVVM之间有什么区别和相似之处? [重复]


可能重复:
MVC和MVVM有什么区别? 

我是Asp.Net MVC模式的新手。我只有几个与MVC和MVVM有关的问题

  1. 这些模式解决了哪些问题?
  2. 它们有什么相似之处?
  3. 他们有什么不同?

10717
2017-11-16 12:38


起源

考虑一下这个: stackoverflow.com/questions/6258682/... - Abdul Munim


答案:


在ASP.NET MVC中,请求来自Web服务器,由Controller直接处理。 Controller确定适当的视图并使用模型填充它。然后,Controller将这些实例释放到底层系统,该系统将结果呈现给客户端。您可以看到Controller是第一个也是最后一个。

在MVVM中,UI(视图)面向用户并直接接受用户输入。在View中,ViewModel中的命令(View的DataContext)由此活动触发。控制流向ViewModel,它解释View发送它的内容并准备其模型。控制流回View后,它会根据模型中的更改自行更新。如果需要新的View,ViewModel会将此与NavigationService(或您的应用程序使用的任何导航方法)进行通信,这是Window或Frame-UI组件的范围。您可以看到ViewModel不是第一个也是最后一个行为; View比MVC扮演更重要的角色。

至于选择哪一个是最好的,我倾向于以工具支持为指导。例如,如果您使用的是ASP.Net,那么通过MVC项目模板可以实现大量自动化,这有助于锅炉板设置和在应用程序中使用该模式。根据我对Silverlight / WPF的理解,围绕MVVM有很多支持。几年前,当我加速MVC / MVP时,我在电子商务应用程序的结账过程中实施了MVP。这是一次令人满意的结果的绝佳体验,但我手工编写了所有内容,没有任何工具支持和很少的指导。当我编写Silverlight应用程序时,由于支持,我肯定会转向MVVM。


9
2017-11-16 12:58



请求如何从Web服务器进入? Web服务器主要功能是处理来自Web浏览器的请求,并因此给出响应。 - Shirgill Farhan Ansari


网上有很多内容,但作为首发 这个 视频会帮助你


2
2017-11-16 12:40





MVC是一种软件架构模式,允许您进行极好的分离,尤其是域逻辑,用户界面,业务逻辑等,并允许完全分离关注点,并允许单独开发独立逻辑并单独测试以及易于测试多个没有多少ado的实现版本。

模型是指你想要描述你想要捕获的所有内容的实体,包括它的行为,尽管大多数人都会根据数据库表来考虑它,但它只是一个存储模型和模型组合了一切。

如果您喜欢与之交互的UI,则查看

控制器是驱动View制作或进行模型上发生的更改之间的交互的控制器。

MVVM如果你喜欢和MVC一样,但它使用额外的View Model来帮助UI,这个View Model通过控制器与模型同步。

该架构还包含最佳实践,如存储库模式,IOC等。

一个例如比如一个人的模特

class Person
{ 
   int id;
   string type;

}

现在,一个可以帮助UI的View模型可能有一个下拉列表来弹出类型的人,因此同一模型的ViewModel可能是

Class PersonViewModel

{  //Pseudo code
   SelectList {mytype, yourtype}

}

这可能不会在视图中使用 //伪代码 下拉列表(slectList)

希望这可以帮助


2
2017-11-16 12:58