MVVM – 框架



本章将讨论可用的MVVM工具包或框架。您也可以使用这些框架,这样您就不必编写大量重复代码来自己实现MVVM模式了。以下是一些最流行的框架:

  • Prism
  • MVVM Light
  • Caliburn Micro
MVVM Frameworks

Prism

Prism通过示例和文档的形式提供指导,帮助您轻松设计和构建丰富、灵活且易于维护的Windows Presentation Foundation (WPF)桌面应用程序。使用Microsoft Silverlight浏览器插件和Windows应用程序构建的富互联网应用程序(RIA)。

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

  • Prism帮助您使用松散耦合的组件设计和构建应用程序,这些组件可以独立演变,但可以轻松无缝地集成到整个应用程序中。

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

Prism有很多开箱即用的功能。以下是Prism的一些重要功能。

MVVM模式

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

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

模块化

它能够将您的代码分解成完全松散耦合的类库部件,并在运行时将它们组合成一个对最终用户而言具有凝聚力的整体,而代码仍然完全解耦。

UI组合/区域

它能够将视图插入容器,而无需进行插入操作的视图需要对UI容器本身进行显式引用。

导航

Prism具有构建在区域之上的导航功能,例如向前和向后导航以及允许您的视图模型直接参与导航过程的导航堆栈。

命令

Prism有命令,它们有一个委托命令,这与我们在前面章节中使用的MyICommand非常相似,只是它有一些额外的鲁棒性来保护您免受内存泄漏。

发布/订阅事件

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

MVVM Light

MVVM Light由Laurent Bugnion开发,帮助您将视图与模型分离,从而创建更清晰、更易于维护和扩展的应用程序。

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

  • 此工具包特别强调打开和编辑用户界面到Blend中,包括创建设计时数据,以使Blend用户在使用数据控件时能够“看到某些内容”。

Caliburn Micro

这是另一个小型开源框架,可帮助您实现MVVM模式,并开箱即用地支持许多功能。

  • Caliburn Micro是一个小型但功能强大的框架,旨在为所有XAML平台构建应用程序。

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

广告