Prism框架的设计目的是用来帮助构建丰富、灵活、易维护的WPF和Silverlight应用程序。
关键概念
Modules: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进行交互。
VIEw Model和Presenters:VIEw Model用来封装应用程序的UI逻辑及其状态。
Model:Model被用来封装数据和相应的验证,以及相关的业务规则来保证数据的一致性和正确性。
Commands:Command被用来封装应用程序功能,Prism提供了Delegate Command和CompositeCommand两个类。
Regions:Regions是应用程序UI的逻辑区域,它很像一个PlaceHolder,VIEws在Regions中展现,很多种控件可以被用作Region:ContentControl、ItemsControl、ListBox、TabControl。VIEws能在Regions编程或者自动呈现,Prism也提供了Region导航的支持。
Shell、Region和VIEw的关系如图所示:
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的创建和初始化。
bootstrapper:bootstrapper用来初始化应用程序级别的组件和服务,它也被用来配置和初始化module catalog和Shell 的VIEw和VIEw Model。功能如图:
Multi-targeting:Prism支持开发的应用程序同时满足WPF和Silverlight平台。
Prism library架构
综合以上,Prism的整体架构如图:
总结以上是内存溢出为你收集整理的Prism应用开发(一)—— 概述全部内容,希望文章能够帮你解决Prism应用开发(一)—— 概述所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)