Prism学习历程二、设计概念
2010-08-06 22:57
225 查看
UI Composition组合UI
如上图,该界面有六个View组合而成,各个View之间具有低藕合,轻依赖。他们之间可以通过Services,Command event进行交互。
布局
上图是布局的概念图,在Shell上定义了两个Region,Navigation和Main。订单列表的View被注入Navigation区域,订单View被注入Main区域。
命令系统
分为Command Delegation和Command Composition
这里的命令和WPF的不太一样,用起来也麻烦的多,通过DelegationCommand和CompositionCommand二个泛形类进行
如下代码
通过构造函数指定Save方法为SaveOrderCommand的执行方法,当命令Execte时会调用该方法,CanSave方法为命令的CanExecte方法。外界能过SaveOrderCommand进行交互。
CompositionCommand通过RegisterCommand方法注册子命令,如果有一条子命令的CanExecte为false则整个组合命令不能执行。
事件系统
分成Event Service和Event Aaaregation
模块之间通过服务接口进行交互,模块之间不直接依赖,这和标准的.NET事件不同,Event Aaaregation类似,只是一个多个事件的组合服务。
模块化设计的好处
简化模块,定化高内聚低藕合的模块,模块间通过清晰的接口进行交互
模块可以独立开发布署
从不同的地方加载模块
最小化下载时间,下载时先下载启动必须的模块,其它模块在后台下载
最小化启动时间,可以运行时动态加载模块,减少程序的启动时间。
模块的概念图
内容都相对好理解,里面还针对Stock Trader 讲解了模块化设计的例子。
Container这部分参见Untity Application Block,
Multi-Targeting是讲在WPF和Silverlight之间最大化复用代码,由于WPF和Silverlight不兼容,并不共享assembly,只能共享代码,由于silverlight的API只是.net的子集,为了共享代码你可能需求变通的方法来实现某种功能,如果你只使用基本用户控件也可以在他们之间共享View。
总之复用代码并不是简单。
由于只是简单的概念介绍,打算到技术概念的时候再展现代码。
如上图,该界面有六个View组合而成,各个View之间具有低藕合,轻依赖。他们之间可以通过Services,Command event进行交互。
布局
上图是布局的概念图,在Shell上定义了两个Region,Navigation和Main。订单列表的View被注入Navigation区域,订单View被注入Main区域。
命令系统
分为Command Delegation和Command Composition
这里的命令和WPF的不太一样,用起来也麻烦的多,通过DelegationCommand和CompositionCommand二个泛形类进行
如下代码
public OrderPresentationModel() { SaveOrderCommand = new DelegateCommand<object>(this.Save, this.CanSave); DeliveryDate = DateTime.Now; PropertyChanged += this.OnPropertyChangedEvent; Validate(); }
通过构造函数指定Save方法为SaveOrderCommand的执行方法,当命令Execte时会调用该方法,CanSave方法为命令的CanExecte方法。外界能过SaveOrderCommand进行交互。
CompositionCommand通过RegisterCommand方法注册子命令,如果有一条子命令的CanExecte为false则整个组合命令不能执行。
事件系统
分成Event Service和Event Aaaregation
模块之间通过服务接口进行交互,模块之间不直接依赖,这和标准的.NET事件不同,Event Aaaregation类似,只是一个多个事件的组合服务。
模块化设计的好处
简化模块,定化高内聚低藕合的模块,模块间通过清晰的接口进行交互
模块可以独立开发布署
从不同的地方加载模块
最小化下载时间,下载时先下载启动必须的模块,其它模块在后台下载
最小化启动时间,可以运行时动态加载模块,减少程序的启动时间。
模块的概念图
内容都相对好理解,里面还针对Stock Trader 讲解了模块化设计的例子。
Container这部分参见Untity Application Block,
Multi-Targeting是讲在WPF和Silverlight之间最大化复用代码,由于WPF和Silverlight不兼容,并不共享assembly,只能共享代码,由于silverlight的API只是.net的子集,为了共享代码你可能需求变通的方法来实现某种功能,如果你只使用基本用户控件也可以在他们之间共享View。
总之复用代码并不是简单。
由于只是简单的概念介绍,打算到技术概念的时候再展现代码。
相关文章推荐
- PHP与MySQL学习笔记8:重要概念与设计Web数据库
- 《软件架构设计》学习笔记--8--6大步骤4:概念架构设计
- AutoCAD学习笔记——常用快捷方式及家装设计相关概念
- Android学习历程21-代码设计规范
- Prism学习历程一,概览
- Node.js的学习历程五设计模式的解读
- 算法设计和复杂性理论学习笔记_1(基本概念)
- 数据库基本概念学习-数据库设计
- 我学习USB设计的历程
- 设计模式学习1 -- 概念
- 从Prism中学习设计模式之Event Aggregator 模式
- C# 设计模式学习三 Abstract Factory 抽象工厂(概念)
- 我学习USB设计的历程
- WPF、MVVM和Prism学习历程
- 从Prism中学习设计模式之Adapter模式
- PHP与MySQL学习笔记8:重要概念与设计Web数据库
- 嵌入式科普:基本概念,设计流程,开发特点,如何学习
- HBase概念学习(八)开发一个类twitter系统之表设计
- 架构设计深入学习02-概念架构与细化架构
- Prism学习历程四、Container和Services