MVVM 框架的作用是啥? [复制]

Posted

技术标签:

【中文标题】MVVM 框架的作用是啥? [复制]【英文标题】:What is the role of an MVVM Framework? [duplicate]MVVM 框架的作用是什么? [复制] 【发布时间】:2014-09-05 21:10:19 【问题描述】:

我是一名 C# WinForms 开发人员,希望使用 MVVM 模式迁移到 WPF。我看到很多比较各种框架的问题,但它们的作用是什么?为什么我需要一个?

编辑:这不是链接问题的重复。这个问题涉及诸如 PRISM 之类的框架,而不是 MVVM 本身。

【问题讨论】:

我真诚地怀疑这是该问题的重复。 同意。我正在删除它... 太宽泛了,我猜。 鉴于我是这个领域的新手,并且找不到相关的问题,这不是 SO 的重点吗? 我个人认为这是一个相关的问题(因此回答它)。可能只是人们觉得你还没有完成研究(另一个反对票的原因)。 【参考方案1】:

各种框架使 MVVM 的实现更容易,因为您需要一些样板代码,重复编写可能会很乏味。

话虽如此,您绝对不需要需要一个。您可以自己实现 MVVM,它会工作得很好(甚至没有那么难)。事实上,你可能应该至少自己实现一次,这样你就知道框架为你做了什么,但这只是我的意见。

【讨论】:

那么它自动化了多少工作?我在问,因为我的开发团队目前正在讨论使用一个。 @Gyrien 我不能说太多,因为我几乎总是自己滚动(它真的并不难)。它可能会节省一些在 NotifyPropertyChanged 片段上的输入,并且可能会在模型和数据对象的视图模型之间进行一些自动映射。不过,所有这些功能都可以用其他工具/库复制。我肯定会在没有框架的情况下开始,如果你真的觉得它有帮助,以后再添加一个(可能在对你正在考虑的框架进行更多研究之后)。【参考方案2】:

如果您来自 WinForm 背景,您可能习惯于所有东西都采用“代码隐藏”的开发风格 - 应用程序的行为在 UI 的事件处理程序中调用。

如果是这种情况,您的代码库可能变得非常复杂并且难以日常维护和使用。这是 MVVM 或更一般地 MVC 试图通过分离模型、视图和控制器(MVVM 中的视图模型)的关注点来解决的问题之一。

我建议您在尝试解决 MVVM 的实现细节之前阅读 MVC、MVVM 和关注点分离的原则。

【讨论】:

以上是关于MVVM 框架的作用是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

mvvm框架是啥 它和其他框架的区别

MVC和MVVM两框架是啥?

是否可以使用 MVVM 从视图修改视图模型中的属性? [复制]

前端的mvvm是啥意思

mvvm框架根源

mvvm框架根源