Prism是一个开发和设计模块化WPF应用的基础框架,里面包含了MVVM pattern和设计示例。当前最新的版本是Prism 5.0,官方网站:https://compositewpf.codeplex.com/
Prism 5.0较4.0有相当的改动,其中主要变动的两个部分:
1. 提供Portal Class Library(PCL)库。这样就可支持WPF,Windows Phone 8,Windows Store 8.1平台而不用修改代码。
2. 把之前一个大的Prism DLL拆分成多个功能块,这些功能块可以单独应用。模块主要有Prism.Composition, Prism.Mvvm, Prism.PubSubEvents, 和 Prism.Interactivity。
- 我们可以只引入我们想用的模块,如果只用event相关的,只需引用PubSubEvent模块;
- 使用PCL,平台无关;
- 更新快且简单;
注意,如果想在.NET 4.0,Sliverligh, Windows Phone 7.0开发,得使用Prism 4.1及以下版本。
Prism设计目标
- 模块化(module)
- 减少相互依赖,松耦合
- 重用
- 高质量
- 可扩展
Prism主要概念
- Module: Module是可以被独立开发、测试和部署的包或功能块。比如一个独立的业务模块,一个基础的Logging模块等。
- Module Catalog: 主要是用来指定加载哪些module,什么时候加载,加载的顺序。可以使用代码或XAML文件或config文件来设置。
- Shell: 应用程序的Host,用来定义应用程序UI的全局区域结构,容纳加载的modules。
- Views: 定义应用程序的UI。
- View Model:处理UI行为和状态。
- Model:应用程序的业务模型和数据。
- Commands
- Regions:定义UI区域
- Navigation
- EventAggregator
- DI Container
- Services
- Controllers
- Bootstrapper
后续文章会逐个解读Prism这些主要概念是如何实现的。