我现在和WPF合作已有一段时间了。 我使用的平台是MVVM Light。 我必须说我不会在代码隐藏文件中添加一行代码。
最近我潜入Prism,我看到许多代码隐藏的例子(例如 数据上下文或属性变更事件是理所当然的事。
Prism被认为是纯粹的mvvm平台吗?
虽然IoC的实现仍然违反了mvvm的规则:
[Import]
public MainViewModel ViewModel
{
set { DataContext = value; }
}
答案 0 :(得分:1)
不,Prism是Composite Application平台(如果 platform 是正确的名称,可能 Library 更好)。
您想要使用MVVM这一事实与Prism本身无关。你可以一起使用MVVM和Prism。
答案 1 :(得分:1)
Prism是一个构建复杂的复合应用程序的框架,它基于Microsoft的推荐实践。 MVVM就是那些实践,另一个是应用程序的模块化。这就是为什么你可以看到一个使用Prism但不遵循MVVM的应用程序 - 它只是具有模块化结构并使用Prism来进行懒惰模块下载,声明模块包括等等。
但Prism本身就是优秀的MVVM框架。它提供了基本MVVM模式的实现:
Prism作为MVVM框架对于小型应用程序来说很重要,但它非常强大且可扩展,我看到了使用Prism创建的良好复合MVVM设计应用程序。
答案 2 :(得分:0)
Prism
是MVVM
的推动者,而非平台。开发人员的角色是遵循MVVM
的原则。我怀疑有许多Prism应用程序不遵循MVVM
的原则。我甚至做过一个。