WPF MVVM实战系列教程(一、Prism框架介绍)

🧭 WPF MVVM入门系列教程


🍠 WPF MVVM进阶系列教程


⌨️ WPF MVVM实战系列教程



Prism框架介绍

Prism框架是一个基于 WPF 的复合应用程序开发框架。原名Composite Application Guidance for WPF,最初是由Microsoft patterns & practices团队创建,它的目的是为了构建松耦合、可维护且可测试的 XAML 应用程序。

支持 WPF、.NET MAUI、Uno Platform 和 Xamarin Forms 平台,每个平台均提供独立版本,且开发时间线相互独立。

Prism 实现了多项有助于编写结构良好且易于维护的 XAML 应用程序的设计模式,包括 MVVM、依赖注入、命令、事件聚合器等。

Prism的核心功能基于跨编译的.NET Standard.NET 4.5/4.8库共享代码库实现,平台特有的功能则在目标平台的对应库中实现,Prism还实现了这些模式与目标平台的深度集成。

例如Prism for Xamarin Forms提供的导航抽象层既支持单元测试,又基于平台原生导航概念与API构建,使开发者能充分利用平台特性,同时保持MVVM架构的规范性。

Prism 6.3版本是Microsoft patterns & practices 团队维护的最后一个版本,后续将代码放到社区,Prism 7.0版本是社区维护的第一个版本,目前最新是Prism 9.0版本。

Prism 9 标志着应用程序开发领域的一次重大飞跃,其核心在于致力于实现跨平台API的统一。这一突破将为开发者开启无限可能:既能将代码从旧版应用程序中迁移出来,也能实现不同应用开发平台间的无缝转换,从而最大化代码复用率,同时大幅降低开发成本。

说明:稳定项目建议使用Prism 8.1.97版本,Prism9商业使用涉及收费问题,以及存在不稳定性。

注意: MVVM只是Prism框架的一部分。这里放到MVVM系列里来讲,是因为我们需要有前面MVVM的基础,才能更深入的掌握Prism框架。

 

Prism项目地址:

https://github.com/PrismLibrary/Prism

 

Prism WPF示例代码地址:

https://github.com/PrismLibrary/Prism-Samples-Wpf

 

核心设计理念

Prism 的核心设计理念是 “复合应用(Composite Application)” —— 将应用拆分为多个独立的 “模块(Module)”,模块间通过统一的 “通信机制” 协作,最终聚合为完整应用。其核心价值包括:
 
  1. 松耦合:模块独立开发、测试、部署,依赖通过接口而非具体实现;
  2. 可扩展性:支持模块动态加载 / 卸载、功能插件化;
  3. 标准化:统一 MVVM 落地方式、导航、通信、依赖注入等开发规范;
  4. 问题解决方案:内置对 “多视图管理、区域布局、事件通信、命令绑定” 等 WPF 常见难题的成熟解决方案。

 

何时需要使用Prism框架

Prism这个框架的最初目的是为了方便我们构建强大的XAML应用程序,它包含的功能比较多,MVVM只是它的一部分功能。

使用Prism框架没有硬性规定,但是如果我们只是用到它的MVVM功能,推荐使用CommunityToolkit.MVVM包,它更轻量级。

Prism更偏向于大型项目,例如多人协同时需要进行模块化开发。

 

Prism中涉及的概念需要我们对常用的设计模式有一定的了解,例如,模块化/组合式开发、MVVM、观察者模式、中介者模式等等。

大部分在前面的文章中已经介绍过,关于模块化,可以参考下面的文章:

https://en.wikipedia.org/wiki/Modular_programming

正是因为使用了大量的设计模式,一部分初学者刚接触Prism框架时,会难以理解其中的概念。都会有一个疑问,就是:这里为什么是这样调用/设计的?

我的建议是循序渐进,前期不理解没关系,可以根据我文章中的内容和示例代码,多理解几遍,然后再自己尝试用一些小例子去进行演练,慢慢就能理解其中的原理。

也不建议新手刚入门就使用Prism框架进行开发,至少需要一定的软件开发基础,并且理解MVVM开发模式,再去使用Prism框架。

还是前面的那句话 ,框架的作用是为了帮我们更好的解决问题、实现需求,提升可维护性,切勿本末倒置。

 

Prism框架包含的核心组件功能

1. Commands/命令

2. Dependency Injection/依赖注入

3. Dialog Service/对话框服务

4. Event Aggregator/事件聚合器

5. Mvvm

6. Modularity/模块化

7. Navigation/导航

 在后续的文章中,我会详细介绍所有核心组件的功能。

 

参考资料:

https://docs.prismlibrary.com/docs/index.html

posted @ 2025-11-18 17:14  zhaotianff  阅读(240)  评论(0)    收藏  举报