MVVM – 框架
MVVM – 框架
在本章中,我们将讨论可用的 MVVM 工具包或框架。您还可以使用这些框架,这样您就不必编写一堆重复的代码来自己实现 MVVM 模式。以下是一些最流行的框架 –
- 棱镜
- MVVM灯
- 卡利本微
棱镜
Prism 以示例和文档的形式提供指导,帮助您轻松设计和构建丰富、灵活且易于维护的 Windows Presentation Foundation (WPF) 桌面应用程序。使用 Microsoft Silverlight 浏览器插件和 Windows 应用程序构建的富 Internet 应用程序 (RIA)。
-
Prism 使用体现重要架构设计原则的设计模式,例如关注点分离和松散耦合。
-
Prism 帮助您使用松散耦合的组件设计和构建应用程序,这些组件可以独立发展,但可以轻松无缝地集成到整个应用程序中。
-
这些类型的应用程序称为复合应用程序。
Prism 具有许多开箱即用的功能。以下是 Prism 的一些重要功能。
MVVM 模式
Prism 支持 MVVM 模式。它有一个 Bindablebase 类,类似于前面章节中实现的类。
它有一个灵活的 ViewModelLocator,它有约定,但允许您覆盖这些约定并以松散耦合的方式声明性地连接您的视图和视图模型。
模块化
它能够将您的代码分解成完全松散耦合的类库,并在运行时将它们组合成一个整体供最终用户使用,同时代码保持完全解耦。
用户界面组成/区域
它能够将视图插入容器,而无需执行插入操作的视图,需要对 UI 容器本身进行显式引用。
导航
Prism 具有位于区域之上的导航功能,例如向前和向后导航以及允许您的视图模型直接参与导航过程的导航堆栈。
命令
Prism 有命令,所以它们有一个委托命令,它与我们在前几章中使用的 MyICommand 非常相似,只是它有一些额外的健壮性来保护您免受内存泄漏。
发布/订阅事件
Prism 还支持 Pub/Sub 事件。这些是松散耦合的事件,其中发布者和订阅者可以有不同的生命周期,并且不必彼此显式引用以通过事件进行通信。
MVVM灯
MVVM Light 由 Laurent Bugnion 开发,可帮助您将视图与模型分开,从而创建更清洁、更易于维护和扩展的应用程序。
-
它还创建可测试的应用程序并允许您拥有更薄的用户界面层(这更难以自动测试)。
-
该工具包特别强调在 Blend 中打开和编辑用户界面,包括创建设计时数据,使 Blend 用户在使用数据控件时能够“看到一些东西”。
卡利本微
这是另一个小型开源框架,可帮助您实现 MVVM 模式并支持许多开箱即用的功能。
-
Caliburn Micro 是一个小而强大的框架,专为跨所有 XAML 平台构建应用程序而设计。
-
凭借对 MVVM 和其他经过验证的 UI 模式的强大支持,Caliburn Micro 将使您能够快速构建解决方案,而无需牺牲代码质量或可测试性。