MVVM——框架


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

  • 棱镜
  • MVVM 光
  • 卡利本微型
MVVM 框架

棱镜

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

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

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

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

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

MVVM模式

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

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

模块化

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

UI 组成/区域

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

导航

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

命令

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

发布/订阅活动

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

MVVM 光

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

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

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

卡利本微型

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

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

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