MVVM - 框架

在本章中,我们将讨论可用的MVVM工具包或框架.您也可以使用这些框架,这样您就不必编写一堆重复的代码来自己实现MVVM模式.以下是一些最受欢迎的框架 :

  • Prism

  • MVVM Light

  • Caliburn Micro

MVVM Frameworks

Prism

Prism以样本和文档的形式提供指导,帮助您轻松设计和构建丰富,灵活且易于维护的Windows Presentation Foundation(WPF)桌面应用.使用Microsoft Silverlight浏览器插件和Windows应用程序构建的富Internet应用程序(RIA).

  • Prism使用的设计模式体现了重要的架构设计原则,例如关注点分离和松散耦合.

  • Prism可以帮助您使用可以独立演变的松散耦合组件来设计和构建应用程序

  • 这些类型的应用程序称为复合应用程序.

Prism具有许多开箱即用的功能.以下是Prism的一些重要功能.

MVVM模式

Prism支持MVVM模式.它有一个类似于前面章节中实现的Bindablebase类.

它有一个灵活的ViewModelLocator,它有约定但允许你覆盖这些约定并声明性地挂钩你的视图和ViewModel以松散耦合的方式.

模块化

能够将代码分解为完全松散耦合的类库中的部分和在运行时将它们组合成最终用户的整体,同时代码保持完全解耦.

UI组成/区域

这是能够将视图插入到容器中而不需要进行插件的View,需要明确引用UI容器本身.

导航

棱镜具有位于区域顶部的导航功能,例如前进和后退导航以及允许您的视图模型直接参与导航过程的导航堆栈.

Com mands

Prism有命令,所以他们有一个委托命令,它与我们在前面章节中使用的MyICommand非常相似,只是它有一些额外的健壮性来保护你免受内存泄漏.

发布/子事件

Prism还支持Pub/Sub事件.这些是松散耦合的事件,其中发布者和订阅者可以具有不同的生命周期,并且不必具有彼此明确的引用以通过事件进行通信.

MVVM Light

MVVM Light由Laurent Bugnion制作,可帮助您将View与模型分开,从而创建更清晰,更易于维护和扩展的应用程序.

  • 它还可以创建可测试的应用程序,并允许您拥有更薄的用户界面层(更难以自动测试).

  • 此工具包特别强调打开并编辑Blend的用户界面,包括创建设计时数据,以使Blend用户在使用数据控件时"看到某些内容".

Caliburn Micro

这是另一个小型开源框架,可帮助您实现MVVM模式并支持事物的数量e-box.

  • Caliburn Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计.

  • 凭借对MVVM和其他经过验证的UI模式的强大支持,Caliburn Micro将使您能够快速构建解决方案,而无需牺牲代码质量或可测试性.