【问题标题】:is prism a pure mvvm platform?prism 是纯 mvvm 平台吗?
【发布时间】:2013-03-06 10:19:30
【问题描述】:

我使用 WPF 已经有一段时间了。 我使用的平台是 MVVM Light。 我必须说我没有在代码隐藏文件中添加一行代码。

最近我深入研究了 Prism,我看到了很多代码隐藏的示例(例如 数据上下文或属性更改事件)是理所当然的事情。

Prism 是否被视为纯 mvvm 平台?

虽然这个IoC的实现还是打破了mvvm的规则:

[Import]
public MainViewModel ViewModel
{
    set { DataContext = value; }
}

【问题讨论】:

    标签: wpf mvvm prism


    【解决方案1】:

    不,Prism 是一个Composite Application 平台(如果 platform 是正确的名称,可能 Library 更好)。

    您想使用 MVVM 的事实与 Prism 本身无关。您可以一起使用 MVVM 和 Prism。

    【讨论】:

      【解决方案2】:

      Prism 是一个基于 Microsoft 推荐的实践构建复杂、复合应用程序的框架。 MVVM 是一种实践,另一种是应用程序的模块化。这就是为什么你可以看到一个使用 Prism 但不遵循 MVVM 的应用程序 - 它只是具有模块化结构并使用 Prism 来延迟模块下载、声明性模块等。

      但是 Prism 本身就是优秀的 MVVM 框架。它提供了基本 MVVM 模式的实现:

      • 基础视图模型 - NotifyProertyChangesBase
      • 命令 - 委托命令
      • 视图模型之间的通知(用于复合应用程序)- 事件聚合器
      • 可以使用的用户通知的抽象 在视图模型级别 - 通知
      • 遵守DI原则的单位 视图模型的测试
      • 将视图模型映射到视图的扩展能力 - 区域

      Prism 作为 MVVM 框架对于小型应用程序来说很重,但它非常强大且可扩展,我看到了使用 Prism 创建的优秀的复合 MVVM 设计应用程序。

      【讨论】:

        【解决方案3】:

        PrismMVVM 的促进者,而不是平台。遵循MVVM 的原则是开发人员的职责。我怀疑有许多 Prism 应用程序不遵循 MVVM 的原则。我什至做过一个。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-07-29
          • 2011-10-06
          • 2019-07-16
          • 2011-11-14
          • 2011-08-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多