(翻译)UIP Application Block学习系列(三)UIP概念
为了有助于管理你的应用程序的表现层,你应该把它分成可管理的小单元。A number of terms related to this concept are heavily used in this guide. These include:
l A user interface process----一组有关系的用户活动实现一个目标。用这个方式把活动分组,你可以定义每个组中的视图并且决定它们之间是如何导航的。
l A UIP task----一个UIP运行实例。
l UIP状态----可以被保存的作业快照。
这些terms,连同其它重要的相关UIP terms将在”UIP Application Block术语表”中被详细的讨论。
UIP Application Block允许你抽象应用程序中表现层的代码到另外一个层。使用 UIP Application Block的应用程序把表现层分为以下两层:
l UI组件----这些组件组成了应用程序的UI。用户看到并与这些组件交互。UI组件负责获得数据并展现给用户。
l UIP组件----这些组件管理UI元素并且整理后台的活动,比如说导航,工作流控制,状态和视图管理。用户看不到UIP组件,然而这些组件对UI组件给予了重要的支持。
下图展现了在一个基于.net的分布式应用程序中这两个层的架构:
图一 基于.net的分布式应用程序组件层次
UIP Application Block 是一个构建用户界面组件的框架,这些组件主要负责:
l 通过用户界面组件管理信息流
l 在用户界面进程的活动中管理事务
l 在出现异常时修改用户进程
l Separating the conceptual user interaction flow from the implementation or device where it occurs
l 维护相关业务状态,通常保持一个或多个用户交互所影响的业务实体
这意思是它也会管理:
l 从UI层收集数据并在服务器端执行批处理(更新)操作
l 在一个user interface process中保持一个任务进程的跟踪
把你的用户进程组件从你的用户界面组件中分离出来,你就能把应用程序中控制本质行为的代码从用户界面中抽象出来。这能让你写的一些控制流程和状态管理的代码可以在不同类型的应用程序中重用,而不依赖于所使用的UI。它也允许你改变很少的代码就可以管理多用户界面,并且给你更多的测试弹性,因为你可以分离测试进程到逻辑单元而不依赖于用户界面。
Model–View–Controller
UIP Application Block是基于MVC模式的,它是把用户界面和业务逻辑分离开来的基本设计模式。包括模型,视图,控制器这三个清晰的对象:
l 模型----这个对象了解所有要显示的对象并管理这些数据与应用程序的操作,它可以被想像成输入输出系统的操作部分。
l 视图----这个对象管理那些用户将要看到的信息。多数视图能用不同的方式显示相同的信息。它可以被想像成输入输出系统的输出部分。
l 控制器----这个对象允许用户和应用程序交互。它从用户那里得到数据并向模型说明数据。它可以被想像成输入输出系统中的输入部分。
下图二描述了这三个对象之间的关系:
图二 MVC 类结构
视图和控制器对象都依赖于模型。而模型对象既不依赖于视图也不依赖于控制器。这就是把它们非开的好处之所在。这种分离让模型能够在不依赖于表现层的情况下被建立。
具体的怎么样去正确的实现你的MVC模型,依赖于你的应用程序类型。例如,在许多rich client应用程序和smart client应用程序中分离控制器和视图并不是主要的,许多UI框架就只用一个对象实现了这个角色。而在web应用程序中,视图(浏览器)和控制器(处理http request的服务器端组件)的分离是非常重要的。
客户有用的软件。