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,它有约定,但允许您覆盖这些约定,并以松散耦合的方式声明性地连接您的视图和视图模型。

模块化

它能够将您的代码分解为完全松散耦合的类库,并在运行时将它们组合成一个有凝聚力的整体,供最终用户使用,同时代码保持完全解耦。

UI 组合/区域

它能够将视图插入到容器中,而无需执行插入操作的视图,也不需要对 UI 容器本身有明确的引用。

导航

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

命令

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

发布/订阅事件

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

MVVM Light

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

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

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

Caliburn Micro

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

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

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