棱镜是纯粹的mvvm平台吗?

时间:2013-03-06 10:19:31

标签: wpf mvvm prism

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

最近我潜入Prism,我看到许多代码隐藏的例子(例如 数据上下文或属性变更事件是理所当然的事。

Prism被认为是纯粹的mvvm平台吗?

虽然IoC的实现仍然违反了mvvm的规则:

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

  • 基本视图模型 - NotifyProertyChangesBase
  • 命令 - DelegateCommand
  • 视图模型之间的通知(适用于复合应用程序) - EventAggregator
  • 对可以使用的用户通知的抽象 在视图模型级别 - 通知
  • 尊重单位的DI原则 测试视图模型
  • 将视图模型映射到视图的扩展能力 - 区域

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

答案 2 :(得分:0)

PrismMVVM的推动者,而非平台。开发人员的角色是遵循MVVM的原则。我怀疑有许多Prism应用程序不遵循MVVM的原则。我甚至做过一个。