Prism应用开发(一)—— 概述

Prism应用开发(一)—— 概述,第1张

概述Prism框架的设计目的是用来帮助构建丰富、灵活、易维护的WPF和Silverlight应用程序。 关键概念 Modules:Modules是能够独立开发、测试、部署的功能单元,Modules可以被设计成实现特定业务逻辑的模块(如Profile Management),也可以被设计成实现通用基础设施或服务的模块(如Logging、Exception Management)。 Module Cata

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应用开发(一)—— 概述所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存