Prism框架(一)——概述Prism框架的设计目的是用来帮助构建丰富、灵活、易维护的WPF和Si...
Prism框架(一)——概述Prism框架的设计目的是用来帮助构建丰富、灵活、易维护的WPF和Si
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框架的设计目的是用来帮助构建丰富、灵活、易维护的WPF和Si...相关推荐
- android http最新框架,Android框架学习笔记02AndroidAsycHttp框架
上一篇中我们介绍了OkHttp3.0框架的基本使用方法,这一篇我们学习一下Android的另外一个网络请求框架--AsyncHttpClient框架.Asynchttpclient框架是一个开源的异步 ...
- Set集合框架的概述及应用
Set集合框架的概述及应用 我们可以通过查询API文档来来了解Set集合框架 Set集合框架就是一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) ...
- 基于SpringBoot框架的古风乐曲网站的设计与实现 毕业设计-附源码271611
springboot古风乐曲网站 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法, ...
- 基于SpringBoot框架的古风乐曲网站的设计与实现毕业设计源码271611
springboot古风乐曲网站 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法, ...
- 基于SSM框架的大学生自主学习网站的设计与开发/在线学习系统
摘 要 随着信息技术的不断发展,催生了许多新的行业产生,比如在线教育行业就是一种新兴的技术产业.尤其是在今年,武汉的疫情导致了大量学生无法正常上课,只能在网络上进行在线教育学习.这让原本仅仅是运用于 ...
- 基于SSM框架的服饰商城系统的设计与实现(文末附源码)
摘要 现如今我们处于大数据时代,我们对网上商城的概念并不感到生疏,随着互联网科技的发展,网络在人们生活中的运用越来越广泛,网上购物已经成为了现代购物的主流趋势.网上购物具有多种选择.性价比高等优势,网 ...
- 计算机基于Springboot框架的美食发现系统的设计与实现.rar(毕业论文+源码+数据库文件)
1 绪论 3 1.1 系统开发目的 3 1.2 系统开发意义 3 2 系统开发工具介绍 4 2.1 JSP技术概述 4 2.2 JAVA语言 4 2.3 IDEA开发工具简介 5 2.4 MYSQL数 ...
- 基于SSM框架的书影音社区前端设计与实现
随着互联网通讯技术和计算机信息技术的深入发展,利用互联网开展业务已经成为社会发展的潮流,通过互联网进行各种业务信息交流变的更加方便.面对高速发展的互联网技术,基于互联网的应用系统如雨后春笋不断的涌现. ...
- (附源码)基于SpringBoot框架的古风乐曲网站的设计与实现 毕业设计271611
springboot古风乐曲网站 摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法, ...
最新文章
- c#五子棋实验报告_C#五子棋完整项目
- RGBA和ARGB的区别
- 2015年各银行无抵押信用贷款利率及额度是多少?
- perl模块的安装,查询
- hdu1394 Minimum Inversion Number 线段树和树状数组
- 新无限天空服务器,天空魔域3782版最新服务端(含网站程序)
- Linux x64 下 Matlab R2013a 300 kb 脚本文件调试的 CPU 占用过高问题的解决办法
- 两个小知识:C#如何设置开机启动时自动执行程序|C# WinForm打开超链接
- jmeter对乱码如何处理_JMeter读取 Excel 表中用例数据实现接口压测
- pptv如何绑定邮箱账号
- OpenCV中图像轮廓检测
- 常用api查询网站记录
- 冒险岛单机版mysql_冒险岛单机版
- 微信云开发要避开的坑
- Unity镜头特写效果
- 分布式系统----时钟同步
- ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning
- ABCD输出ABCDDCBA
- 新神奇传说补丁_如何在神奇宝贝Go中捕捉传说中的神奇宝贝
- 医院就诊系统-C语言
热门文章
- pandas镜像安装_Python安装库太慢?配置好这个速度飞起
- 信息学奥赛一本通(2046:【例5.15】替换字母)
- 线性代数 —— 矩阵的行列式
- Hello,World!(信息学奥赛一本通-T1001)
- 信息学奥赛一本通C++语言——1119:矩阵交换行
- 书籍《智能交通》-观后感-2021年12月-下期分享
- oracle单节点加入rac,实验:Oracle单节点RAC添加节点
- 解决/usr/local/lib/libglog.so.0: error adding symbols: DSO missing from command line
- python时域信号特征提取(各种因子)
- 04_使用Influxdb自带函数查询