(翻译)UIP Application Block学习系列 ( 七 ) UIP Application Block的设计
UIP Application Block提供了一个这样的架构,允许你创建复杂的用户界面导航和工作流进程。它也让你可以随着你的应用程序的发展来重用和扩展这些进程。本章概述了UIP Application Block的设计,让你可以理解怎样在你的环境中使用这个Block。
UIP Application Block架构
在前一部分提及到UIP Application Block是基于MVC模式的。每一个MVC的对象在UIP AB中的描述如下:
l 模型----state类中实现。它在用户界面进程中存储了用户信息和控制信息。
l 视图----WebFormView,WindowsFormView和WindowsFormControlView类。这些用来在 你的应用程序中创建视图。
l 控制器----在源自ControllerBase抽象类的类中实现。这些类负责在用户界面进程中开始,导航,和结束。
UIP Application Block包含几个类和接口,它们一起提供了一个基础架构使你可以把它们用到自己的应用程序中。下面的图说明了UIP Application Block的设计,展现了block的整体组成和他们是如何交互来为你的足实提供服务的。
表一描述了图一中显示的各个元素
表一:UIP Application Block元素
Block 元素 |
提供者 |
描述 |
你的应用程序 |
你的组织 |
在UIP Manager中包含适当时间开始作业的代码(方法) |
配置文件 |
你的组织 |
包含应用程序配置信息 |
你的控制器, |
你的组织 (UIP Application Block 提供了ControllerBase抽象类,你可以用它来创建控制器). |
作为一个用户界面层和业务层的外观,控制View和动作之间的导航。访问你应用程序的业务逻辑 |
服务, 业务组件 |
你的组织 |
应用程序的服务(例如web或者数据服务)和业务逻辑。 |
UIP Manager |
UIP Application Block |
提供uip ab的入口点,根据不同的导航器开始或者读取一个作业 |
Navigator |
UIP Application Block |
管理并确定合适的View被显示 |
UIP Configuration |
UIP Application Block |
找回,校验和存储包含在应用程序配置文件中的信息 |
Your Views, Views |
你的组织 (UIP Application Block 提供了view类,你可以继承它从而创建你应用程序的Views) |
用户交互的接口. |
View Manager |
UIP Application Block提供的一些实现 |
创建和激活导航器请求的View. |
State |
UIP Application Block 提供了一个实现 |
维护用户进程状态和作业的当前View |
状态保持提供者 |
UIP Application Block 提供了一些实现. |
捕获状态 |
状态持续存储 |
你的组织 |
保护状态 |
UIP Application Block使用View Manager抽象了View的创建。确保你可以用UIP统一创建和配置View。这让你可以在winform和webform中使用相同的状态管理。
在高层,UIP Application Block像下面那样显示View:
1,应用程序在UIP Manager中调用合适的StartNavigationTask,StartOpenNavigationTask或者StartUserControlsTask方法。作业启动后,通过UIP实现创建View,导航和状态管理。
2,UIP Manager创建合适的导航器(如the graph navigator, user controls navigator, or wizard navigator),并传递需要的信息给这个导航器。
3,导航器调用UIPConfigSettings类从配置文件中找到配置信息。
4,导航器基于使用的View的类型创建合适的View Manager.(在配置文件中也被指定)
5,导航器创建或读取作业
6,导航器决定激活哪个View.
7,导航器通过UIP Manager传出一个NavigateEvent事件,它可以被其它使用UIP的应用程序所使用。
8,导航器在State对象中调用save方法;state对象访问合适的状态持久对象来保存这个状态。
9,导航器在合适的View Manager中调用ActivateView方法然后把ViewName传递给View Manager.ActivateView方法负责创建控制器和显示View.具体的发生的过程依赖于应用是web的还是windows的。
10,View显示出来之后由用户控制,在用户没有任何动作之前UIP什么都不做。
11,用户做了一个动作,View中的一个事件引发了一个方法,在控制器中轮流调用一个方法。依赖于用户的动作,控制器做如下之一的事情:
●执行或者代理一个业务逻辑层方法(例如保存信息到数据库)然后引起View刷新和状态改变。如果方法引起了当前状态的修改,state类将产生一个StateChanged事件,通知任何有兴趣的监听者状态已经发生了改变。
●在导航器中调用Navigate方法掉转到下一个View或者用户控件,然后更新状态对象。
●调用SuspendTask方法从内存中清除状态对象(不清除持久存储对象)
●调用CompleteTask方法清除从内存和持久存储对象中的状态对象
●调用OnstartTask方法指向下一个作业。.
客户有用的软件。