为什么我需要MVVM用于WPF / Silverlight,有什么理由不能使用MVC吗?

时间:2010-07-19 20:09:22

标签: .net model-view-controller mvvm

也许我疯了,但我得到 MVC。这说得通。 MVVM似乎是一种让MVC变得更难的方法,我错了(如果是这样,为什么?)?

3 个答案:

答案 0 :(得分:2)

也许this很有帮助。

答案 1 :(得分:2)

你没有需要 MVVM - 它运作良好。

MVVM只是一种替代方案。您可以自由使用MVC。 MVVM只是利用了WPF和Silverlight中的一些特定功能(主要是令人惊叹的DataBinding支持,还有模板和命令),以使您作为开发人员的生活更简单。 MVVM特别适合将View与代码分离 - 甚至比MVC更好,因为使用DataBinding可以让设计人员更有效地更改View,而不必担心代码更改而不是MVC。

MVVM还具有与WPF和Silverlight背后的基本设计原则密切相关的优势。 MVVM的基本思想与WPF和Silverlight的设计非常相似,处于相当低的水平 - 例如,查看模板如何与自定义控件一起使用,并将其与View / ViewModel分离进行比较,并且有很多相关性可以画出来。

答案 2 :(得分:2)

我认为如果你获得MVC,那么MVVM实际上是相同的 - 增加了1个部分(ViewModel)。在我看来,MVVM更有用的原因与新的DataBinding流程有关。 ViewModel提供了有关数据绑定的有用抽象和清晰度,以及如何呈现或转换绑定。这就是我的想法。

MVC缺少的部分实际上是MVVM模式,在我看来它只是MVVM的隐藏部分。如果你看一下大多数MVVM框架,大多数提供某种消息或通知系统,它真正提供了MVC缺少的控制器方面。

将ViewModel视为View的代码隐藏,View作为View的Designer,Model作为模型,Notification / Messaging系统作为Controller,我们有一个真正等效的模式。 / p>

这对我来说也很难理解(我也来自MVC模式,但现在喜欢MVVM模式)。