




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
组合型智能客户端应用WithCompositeApplicationBlock 曹严明 NET架构顾问微软 中国 日程 组合型应用的应用场景CompositeAppBlock体系架构概述CompositeAppBlock主要概念Demo JPMC 网上银行 集成投资信息 集成分析工具 集成新闻及提醒 集成股票数据 Citibank 信息发布门户 Thomson 金融数据门户 Dell 客服集成桌面 CommonwealthBankofAustralia 柜员系统 CommonwealthBankofAustralia 柜员系统 Clienttier Commonwealth柜员系统体系结构 Datastorage PrivateServices SmartPart ActiveDirectory LocalCache Agent Security Instrumentation Oracle Configuration Authn Orchestration Privateservicen Privateservice Authz Config Legacysystems Mainframen WSProxy IFWServicen SOFA ServiceHelpers DataIntegration SOFA Mainframe IFWService Datacentre Branchsite SmartClient SmartCard LocalAD SOFAFarm HISFarm ADFarm BizTalkFarm Mainframe OtherApplicationServers Oracle EveryServiceauthorizedagainstAD Commonwealth柜员系统部署方案 日程 组合型应用的应用场景CompositeAppBlock体系架构概述CompositeAppBlock主要概念Demo Billing Inventory CRM SmartClientModule 组合型解决方案 将不同的功能模块组合成解决方案运行环境提供基础服务降低开发成本灵活方便 什么是组合型智能客户端应用 SmartClientModule SmartClientModule CompositeUIAppBlock的来由 UIP1PAG UIP2PAG CABPAG CCF Thomson Dell CAB 微软其他部门 客户解决方案 PAG Otherfieldframeworks CompositeUIApplicationBlock创建企业级智能客户端 对系统设计团队的价值 质量与一致性提供一个针对企业级智能客户端应用的公共开发体系结构提供一个一致的和可预测的方法来开发 包装 发布基础组件 以便强制企业应用的体系结构标准对开发团队的价值 生产力提供一个开发环境能很好的隐藏复杂度和提高生产力通过高度抽象和关注点的分离 开发人员能够关注于业务逻辑提高基础框架代码的复用商务目标 提高最终用户的生产力和业务工作的敏捷性公司可以以更敏捷的方式推出新的和升级的功能界面使最终用户更快的 更准确的完成工作任务 避免通过Alt Tab Copy Paste的方式作应用间的数据交换一致的界面降低了培训费用 主要困难 将完全不同的组件组合成一个完整的应用将Shell部分与应用逻辑部分分离开来可扩展性使您能使用自己的设计模式和开发方法 Shell CompositeAppBlock概述 Module UIElementMgr View UIElementMgr View Element Element WorkItemSharedStateSharedEvents CAB体系结构 Shell Host UserInterfaceElements SmartPartManagers BaseClasses HostedControl Layout MDI StatusStripUIElement MenuStripUIElement ToolStripUIElement Services CatalogReader Loader Authentication Logging MainForm Initializer Authorization BizLogic开发 Infrastructure开发 Shell开发 AWorkItem 设计组合型应用 应用逻辑 将views SmartPart 设计为独立于controllers的单元共享模块状态共享基础服务封装用例 重用降低模块间的依赖性尽量使用events services andinterfaces SmartPartA ControllerA SmartPartB ControllerB AWorkItem 设计组合型应用 界面逻辑 SmartParts是控件 Workspaces在一个可视框架中显示它们Shell开发人员开发Workspaces 控件跟Workspaces无关界面元素可以用共同的方法添加以免业务逻辑开发人员把业务逻辑跟特定的界面风格紧耦合可以集中控制用例改变界面的方式和时间Commands连接了可操作界面元素集和一个业务逻辑callback ViewA ControllerA ViewB ControllerB Shell UIElemMgr1 UIElemMgr2 Element1 Element2 UIInit Command Command WindowsWorkspace TabWorkspace 应用启动次序 1of2初始化Shell Host 和初始服务 Shell启动Shell给HostFactory提供基本的启动设置HostFactory根据这些设置创建Authentication CatalogReader Initializer和Loader服务的实例HostFactory创建Host并把这些服务添加给Host Host Shell HostFactory BootstrapConfigData Loader 1 2 3 Authentication Initializer 4 5 CatalogReader 应用启动次序 2of2初始化Host并加载Modules Shell调用Host Initialize 这个由Initializer服务实现Host调用Authentication服务 该服务负责在当前应用程序域中建立principalCatalogReader服务以SolutionProfile返回基本模块设置 CatalogReader服务封装了如何选择正确的SolutionProfile以加载正确的SmartPartsLoader被调用并赋予SolutionProfile 开始以正确的次序加载modules 带有依赖性的属性 Loader调用module的入口类的AddServices 方法 让module注册自己的服务然后调用Start 方法 Host Shell Loader 1 Authentication CatalogReader MyModule IPrincipal 2 HostInitialization SolutionProfile 3 4 IModule LoadAssembly LoadIModule ServiceXYZ 5 AddServices Start Initializer Components Services Containers CAB所有的部分都是围绕着containers componentsandservices这三个概念构建的采用这个体系结构 你可以对CAB的功能进行任意的扩展Components是包含一些逻辑的对象 比如 WindowsControls controllers带有业务逻辑和服务代理Services是被应用中许多components调用的对象 比如securityservices tracingservices eventingservicesContainers是components和services的集合 Container管理其中的components的生命周期 Component可以向container请求一个service Containers可以包含其他的containers ApplicationHost DefaultWorkItem Component1 Component2 Component3 Component4 Component5 添加和定位服务使用ServiceLocator和Injection模式 AddingServicesCABFoundationServicesModule addedservicesProgrammaticallyDeclarativelyAcquiringServicesFindinupstreamcontainersProgrammaticallyDeclaratively ApplicationHost AWorkItem ModuleLoader Module Service typeof IMyService publicclassMyService IMyService View Controller publicclassMyComponent ServiceDependency IMyServicemyService 日程 组合型应用的应用场景CompositeAppBlock体系架构概述CompositeAppBlock主要概念Demo Shell UIElements 你可以改变的shell中的共享元素菜单条 状态条 splashscreens etcWorkspaces 能够显示和隐藏控件的对象Tabbed Zoned Portal MDI Windows Decked Commands 可以映射到多个界面元素的 行动 比如 显示客户明细 命令有工具条项和菜单项UIElements Shell开发人员 创建Shell应用程序添加UIElementManagers注册Workspaces Part开发人员 创建控件 SmartParts 定义Commands映射UIElements到Commands显示Controls在Workspaces里 Workspaces Workspaces可以一致的显示多个控件Shell开发人员创建定制的workspaces以提供 控件周围相似的框架和修饰共享的布局和定位眩目的切换ActivationUIs tabs Alt Tabkeystrokes etc 提供 TabbedWorkspaceWindowsWorkspaceDeckedWorkspaceSmartPart开发人员可以创建独立于Workspace的Parts TabbedWorkspace ASmartPart YourWorkItem WindowsWorkspace SplatWorkspace aWorkspace Show mySmartPart ViewA WorkItemState WorkItems WorkItem代表一个用例包含在Workspace之中服务ServiceAgents并加载状态 同步或异步 创建其他组件 比如Views CAB创建Controllers 组件共享WorkItemState并可以通过它控制用例的生命周期 YourWorkItem Run IWorkspacews ServiceAgent ServiceAgent ControllerA EventBroker Publisher Subscriber Publishers Subscribers 1 NETEventwithAttribute NETmethodwithattribute EventSubscription topic Customer Changed ThreadOption Background PublicvoidCustomerChanged objectsender CustArgsargs gocallsomewebservicesorsomethinglong running EventPublication topic Customer Changed eventEventHandlerCustomerIdChanged firelikeanormal NETeventCustomerIdChanged this newCustArgs EventSubscription topic Customer Changed PublicvoidCustomerChanged objectsender CustArgsargs MessageBox Show args CustomerId newcustomer Publishers和Subscribers对以下达成一致 主题 由URI决定 消息 如果需要一个特定的EventArgs 范畴 全局事件还是局部事件 Subscribers被调用时有对该线程的控制Background Forlong runningwork UIThread toupdateUIcontrolsonappropriatethread Publisher onsamethreadaspublisher AWorkItem 共享WorkItemState 弱类型的 useasadictionary 或是强类型的 wrapanitemwithget set 取决于您希望的耦合度要多少调用State 动态编程访问 或者通过IoCattributes publicvoidSomeMethod Custo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 印刷厂员工入职管理规定
- 人教版七年级体育全一珊 3.3足球 简单战术配合 说课稿
- 2025【各行各业合同协议模板】【各行各业合同协议模板】店铺买卖合同
- 互联网广告投放服务合同
- 7.2 共建美好集体 说课稿- 2024-2025学年统编版道德与法治七年级上册
- 全国粤教版信息技术七年级下册第二章第五节《活动2:制作智能控温机器人》说课稿
- 2024-2025学年高一化学人教版(2019)必修第一册 3.1铁及其化合物 教学设计 教学设计
- 安全主任培训会议讲话课件
- 幼儿园校园综合保洁与消毒服务人员录用合同范本
- 创业担保贷款合同履行告知
- 2025山东济南市莱芜高新投资控股有限公司社会招聘10人笔试参考题库附带答案详解
- 第一二单元月考综合测试(试题)人教版数学六年级上册
- 2025年中小学心理健康教育试卷及答案
- 2025年年少先队知识竞赛考试真题题库及答案
- 高中语文-“病句辨析”模块“语序不当”知识点
- 粮食培训考试题及答案
- 《水利工程生产安全重大事故隐患清单指南》解读与培训
- 2024中国华电集团有限公司湖南分公司本部面向系统内公开招聘5人笔试参考题库附带答案详解
- 三年级上册道德与法治课堂实录.doc
- JJG596-2012《电子式交流电能表检定规程》
- 铁板神数详细取法
评论
0/150
提交评论