Prism 框架

Prism 框架应用-基础知识篇

Prism 框架概念

prism was the code name for the guidance formally known as the Composite Application Guidance for WPF and Silverlight. For brevity and conciseness, and due to customer demand, this guidance is now referred to simply as Prism.

Prism用来开发具有多个界面、丰富交互以及数据可视化特点的WPF和Silverlight的应用程序的具体呈现和商业逻辑。

Prism 框架应用目的

  • 模块间解耦
  • UI与后台开发解耦
  • 程序设计初期减少功能耦合

Prism 框架详情

框架示意图

框架结构

框架模块介绍

Modoules:Modules是能够独立开发、测试、部署的功能单元,Modules可以被设计成实现特定业务逻辑的模块(如Profile Management),也可以被设计成实现通用基础设施或服务的模块 (如Logging、Exception Management)

Module Catalog:在Prism中,Module Catalog指明了要Load哪些Module,和用什么样的顺序去Load这些Module。

Shell:Shell是宿主应用程序(host application),modules将会被load到Shell中。Shell定义了应用程序的整体布局和结构,而不关心寄宿其中的Module,Shell通常实现通用的application service和infrastructure,而应用的逻辑则实现在具体的Module中,同时,Shell也提供了应用程序的顶层窗口。

Views:Views是应用中展现特定功能的视图,它展现UI、定义交互行为,并且通过数据绑定的方式与ViewModel进行交互。

Regions:Regions是应用程序UI的逻辑区域,它很像一个PlaceHolder,Views在Regions中展现,很多种控件可以被用作Region:ContentControl、ItemsControl、ListBox、TabControl。Views能在Regions编程或者自动呈现,Prism也提供了Region导航的支持。

Navigation:Prism支持两种导航:state-based导航和view-switching导航。

EventAggregator:组件通常要和其它的组件或者服务进行通信。为此,Prism提供了
EventAggregator组件,这个组件实现pub-sub事件机制,允许一些组件发布事件,另一些组件去订阅事件而无需两个组件之间的引用。

Dependency Injection container:Prism使用依赖注入模式来管理组件之间的依赖,Prism被设计使用Unity、Mef等依赖注入容器。

Services:Services是用来实现非UI相关功能的逻辑,例如logging、exception management、data access。Services可以被定义在应用程序中或者是Module中,Services通常被注册在依赖注入容器中,使得其它的组件可以很容易的定位这个服务。

Controllers:Controller被用来控制在Region中哪个View将会被呈现,同时控制这个View的创建和初始化。

MVVM 相关模块

View Model和Presenters:View Model用来封装应用程序的UI逻辑及其状态。

Model:Model被用来封装数据和相应的验证,以及相关的业务规则来保证数据的一致性和正确性。

Commands:Command被用来封装应用程序功能,Prism提供了Delegate Command和CompositeCommand两个类。

Bootstrapper:Bootstrapper用来初始化应用程序级别的组件和服务,它也被用来配置和初始化module catalog和Shell 的View和View Model。功能如图:

bootstrapper

原文地址:https://www.cnblogs.com/yuyue5945/p/14144282.html