`
lovnet
  • 浏览: 6757702 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

UIP Application Block文档翻译(介绍部分)

阅读更多

User Interface Process (UIP) Application Block - Version 2.0

介绍the UIPApplicationBlock

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_i1025" style="WIDTH: 187.5pt; HEIGHT: 51pt" o:button="t" alt="Patterns and Practices home" type="#_x0000_t75"></shape><imagedata o:href="http://msdn.microsoft.com/library/en-us/dnpag/html/pponline.gif" src="file:///E:%5Ctemp%5Cmsohtml1%5C01%5Cclip_image001.gif"></imagedata>

Microsoft Corporation

April 2004

Summary: 本章介绍了UIP block并且介绍了一些对于了解这个block非常重要的概念。

Contents

Who Should Read This Guide
User Interface Process Concepts
Goals of the UIP Application Block
Features of the User Interface Process Application Block
Chapter Overview
Conclusion

应用程序通常在表示层包含管理用户交互的代码;例如,一个窗体可以判断用户要浏览的下一个窗体。开发人员通常将这些代码与用户界面代码本身写在一起。如果一个开发人员将导航代码包含在用户界面中,最终产生的代码会非常复杂并且非常难以重用、维护以及扩展。另外,这个程序也会非常的难于Port到其它的平台,因为程序控制逻辑以及状态是不可重用的。

在很多情况下,应用程序包含了需要维护的状态。如果状态是保存在窗体中的,代码就必须访问窗体以获得状态。这将很难实现并且回使代码变得很不优雅,这样就影响了用户界面的可扩展性和可重用性。例如,如果你编写了几个顺序浏览的窗体,然后你需要在这个顺序中插入一个新窗体,你必须记录和修改前一个和后一个窗体来插入新窗体

当一个用户与程序交互时,他可能开始一个任务,停留一段时间,然后返回。如果用户在回话过程中关闭了程序,他就会失去状态,也就是说他需要再次从头开始这个任务。这对用户是非常不好的,在某些情况下,这对于你的商业逻辑是不可接受的。

因此,在你设计你的应用程序时,你必须将工作流、导航、与业务服务交互和组件与数据的生成和对用户的呈现分开考虑。

用户界面处理(UIPApplication BlockVersion 2,提供了可扩展的框架来简化业务逻辑与用户界面的分离处理。你可以使用这个block来编写复杂的用户界面导航以及工作流处理过程,而这个是可以在很多场景中重用并且根据你的程序扩展的。这个手册描述了UIP Application block的设计和特性并且演示了如何在程序中使用这个block

UIP Application Block提出了一些你在用户界面开发中会遇到的问题,包括:

· 导航和工作流控制——这些都是不能集成在用户界面中的,但是这是经常发生的,因为决定下一个显示的内容的是业务逻辑。这样就导致了丑陋的以及无法管理的代码。

· 导航以及工作流的改变——应用程序布局的重新规划(改变页面顺序或者添加新页面)在传统的用户界面技术下是非常困难的。

· 状态管理——传递状态以及在视图间保持状态是十分困难的,并且在基于Windows和基于Web的应用程序之间都有不同。

· 保存当前交互的“快照”——你可能需要捕捉一个交互的“快照”并且在任何情况下(跨越时间、机器或者登录边界)重建它。

指南面向的读者

本指南面向开发复杂用户界面交互软件的软件开发人员以及架构师。它特别面向那些设计和编写Web应用程序以及在Windows下运行的程序(包括smart client程序)的开发人员。

预备知识

为了能够完全理解本指南,你需要了解Microsoft .NET框架(包括.NET框架安全概念)。本指南中的提及的技术都是基于Visual C#Visual Basic.NET.NET框架以及XML的。

用户界面处理概念

为了管理你的程序中的表现层,你需要将它们分割为可管理的单位。下面的与此相关的术语在本指南中大量使用到。包括:

· 用户界面处理—— 一组与用户相关的、达到一定目的的动作。通过这种方式分组活动,你可以定义在每一个用户界面处理中用到的视图,并且定义这些视图中间是如何导航的。

· UIP任务—— 一个在运行中的用户界面处理。

· UIP状态—— 可以被持久化的任务的快照。

这些概念,以及其它重要的与UIP相关的概念,在附录B"UIP Application Block Terminology."中做了更多的讨论。

UIP Application Block允许你将应用中的表现层代码抽象出来成为一个单独的层。使用了UIP Application Block的应用程序的应用层分成以下的层:

· 用户界面组件——这些组件组成用户界面以及应用程序。用户可以看到这些组件并与他们产生交互。用户界面组件的任务是从用户处收集数据以及将数据呈现给用户。

· 用户界面处理组件——这些组件组成界面元素以及协调后台动作,例如导航以及工作流控制以及状态和视图管理。用户无法看到用户界面处理组件;但是这些组件对用户界面组件提供了重要的支持。

下面这张图显示了在基于.NET的分布式应用架构中的这两个层。

<shape id="_x0000_i1026" style="WIDTH: 337.5pt; HEIGHT: 251.25pt" alt="" type="#_x0000_t75"></shape><imagedata o:href="http://msdn.microsoft.com/library/en-us/dnpag/html/uipc0101.gif" src="file:///E:%5Ctemp%5Cmsohtml1%5C01%5Cclip_image002.gif"></imagedata>

Figure 1.1: Component layers found in distributed applications and services built with .NET

UIP Application Block是一个创建用户界面处理组件的框架。这些组件的作用是:

· 通过用户界面组件管理信息流。

· 在用户界面处理的不同阶段管理事务。

· 在产生异常时改变用户处理。

· 将概念上的用户交互流程从实现或者设备中分离。

· 管理内部的业务相关状态,通常保持用户交互所影响的一个或者多个业务实体。

这就意味着它同时管理了:

· 从许多UI组件中获取的,来在服务器中批量更新的大量数据。

· 在用户处理界面中保持对任务处理过程的跟踪。

通过将用户界面处理组件与用户界面组件分离,你可以将控制应用底层行为的代码从用户界面本身分离出来。这样就允许你编写控制不同类型应用的流程和状态的可重用代码,这些代码是独立于用户界面的。他同时允许你在不用大量修改代码的情况下更改用户界面以及管理管理多个用户界面,并且给你的测试更大的灵活性,because you can split test procedures into logical units independent of the user interface.

Model-View-Controller

UIP Aapplication Block是基于MVCmodel-view-controller)模式的。这是一个基础的设计模式,他的作用是将用户界面逻辑与业务逻辑分离。这个模式将应用程序域建模、应用程序的表现、以及基于用户输入的动作分离为三个独立的对象:

· Model——这个对象了解所有要显示的数据,他的责任是管理数据以及应用程序的动作。它可以被认为是一个输入——处理——输出系统的处理部分。

· View——这个对象管理显示给用户的信息。可以用多个View以不同的方式来显示同样的信息。他可以被认为是一个输入——处理——输出系统的输出部分。

· Controller——这个对象允许用户与应用程序交互。它获得用户的输入并且将指令传递给model。他可以被认为是一个输入——处理——输出系统的输入部分。

1.2 三个对象的结构化关系的描述

<shape id="_x0000_i1027" style="WIDTH: 237.75pt; HEIGHT: 117.75pt" alt="" type="#_x0000_t75"></shape><imagedata o:href="http://msdn.microsoft.com/library/en-us/dnpag/html/uipc0102.gif" src="file:///E:%5Ctemp%5Cmsohtml1%5C01%5Cclip_image003.gif"></imagedata>

Figure 1.2: MVC 类结构

所有的view以及controller都依赖于model。然而,model即不依赖于view也不依赖于controller。这是分离的最大好处。这种分离允许model独立于可视层来创建以及测试。

你如何实现MVC模式取决于应用程序的类型。例如,在很多rich client以及smart client应用程序中,viewcontroller间的分离是第二位的,很多用户界面框架将这些实现在一个对象里面。然而对于web应用程序,视图(浏览器)与controller(控制HTTP请求的服务器端组件)的分离是很重要的。

NoteFor more information about MVC, see "Model-View-Controller".

UIP Application Block的目标

UIP Application Block的设计目标是:

· 将所有的导航和工作流从用户界面中分离出来。

· 可以将同样的编程模型用于不同类型的应用程序。

· 将所有的状态管理从用户界面中去掉。

· 在处理间保持状态快照。

导航和工作流从用户界面中分离出来

应用程序的工作流就是业务流程,不是用户界面处理,并且对它的控制控制应该是在用户界面层之外的。代码的抽象同样可以帮助你很容易的管理和扩展你的现有应用程序。

UIP Application Block将工作流代码从用户界面层抽象出来放到用户界面处理层。同样的,工作流的导航也不会编码到用户界面元素本身中,如果你的应用流程发生了改变,你只需要记录处理过程,而不需要记录参与过程的元素。

使用单一编程模型

你可能会为内部用户创建Windows应用程序,并且在以后为外部用户创建基于Web的程序。你可以需要开发基于Web的应用,然后在以后移植到基于设备的应用中。如果你对所有类型的应用程序使用同样的编程模型的话,你就可以很容积将应用从一个平台移植到另一个平台。

通过使用UIP Application Block,你可以确保所有的导航以及工作流代码是从用户界面中分离的。这样就允许你(将流程)插入到新的视图中(页面、窗体或者其它应用程序需要的视图),并且可以重用程序中剩下的部分。

将状态管理从用户界面中移除

在很多应用中,状态是保存在用户界面层中的。这样就意味着需要更复杂的代码来完成储存、访问以及管理这些状态。另外,状态依赖于用户界面类型,这样就使得在不同的应用类型间移植变得很困难。

UIP Application BlockUIP状态从用户界面中抽象出来并且存储在一个通用状态对象中,这个对象通过block类来访问。这就意味着任何与这个UIP状态一起工作的视图可以不知道其它哪些视图存储了这个状态信息,或者怎么访问它。如果视图类型发生了变化,状态管理代码可以不发生任何改变。

持久化一个跨流程的状态快照

在很多应用中,很难在任何时候都可以保存任务的状态。多数应用程序使用事务来封装一个任务或者子任务,但是只允许一个事务以成功或者失败来完成。这就表示如果系统关闭或者用户从一个网站浏览到别的地方,那么系统或者用户就很难返回到这个流程中它所离开的那个点。

UIP Application Block包括了状态持久化的机制,这个机制允许代码持久化UIP状态。这样就允许你开发可以在预定义间隔位置处持久化UIP状态的应用程序,这就意味着你可以在以后恢复这个程序。另外保存状态在程序内存中,你的代码可以将它保存在单独的存储设备或者数据库中以便以后的使用。

NoteThe UIP Application Block was designed based on reviews of successful .NET applications. It is provided as source code that you can use as-is or you can customize the code to more closely fit your specific requirements. It can be used to solve a number of challenges presented to developers, and enhances the reusability and maintainability of your code. It is not an indication of future direction for user interface processes within the Microsoft .NET Framework. Future releases of the .NET Framework may address user interface processes using a different model.

UIP Application Block的特性

UIP Application Block提供了一些可以帮助你开发用户界面处理组件的特性,因此你可以更有效的发布程序。下面是UIP第一版的特性以及一些第二版的特性。

· Web session 重用 —— 允许你将信息保存在浏览器中,这样当下次用户开始了一个浏览器会话的话,他们就可以从离开的地方继续。

· Web session转移 —— 这个可以帮助用户暂停一个会话,另外一个用户从另外一台电脑上继续这个会话。同样允许你在一个设备上暂停一个会话,然后在另外一个设备上恢复。

· 在不用类型的应用程序间重用代码 —— 这个特性帮助你将用户界面处理控制逻辑从一类应用转移到另一类应用中(例如,从windows应用程序转移到web应用程序)。

· 开发离散的任务 —— 这个特性帮助你开发可以连接在一个完成一个工作的封装的任务(例如,一个用户注册任务和一个登出任务)。你可以根据需要在任务间传递信息(例如,你可以将用户详细信息传递到登出任务中)

· 状态持久化提供者 —— 允许向SQL Server数据库、Web Session对象以及内存中保存状态以及取得状态。

下面是UIP 2的新特性:

· 扩展的导航管理 —— 给你多个选项来在基于windows的程序或者基于web的程序内指定视图间的事务。Each navigator provides a different level of locking the user intothe pre-defined flow of transitioning between views。在UIP Application Block的上一个版本中,导航管理是由导航图单独提供的。在UIP 2中,导航图是多个导航选项之一。

· 附加状态持久化提供者 —— 这个特性使你可以保存和取出状态到独立存储器并且有加密数据的选项。

· 布局管理 —— 这个特性使你可以将自定义的布局加入到你的视图中。

· 用户导航管理 —— 通过指定一个连接或者点击向前、向后按钮,使用状态逻辑来测试用户是否被允许浏览一个视图,

· 易用性的增强 —— 帮助你调试、提供了扩展的UIP schema,并且提供了通用事务点的共享视图。

Several QuickStarts are included in the download of this block. You can use the QuickStarts to familiarize yourself with the functionality of the block. For more information about QuickStarts, see the section, "QuickStarts for the UIP Application Block," in Chapter 3, "Developing Applications with the UIP Application Block."

Chapter Overview

The remainder of this guide consists of the following chapters.

· Chapter 2, Design of the UIP Application Block — To make the most of the UIPApplication Block, you need to understand its design. Chapter 2 discusses thearchitecture of the block.

· Chapter 3, Developing Applications with the UIP Application Block — After you understand the design of the UIP Application Block, you can start developing applications with it. Chapter 3 explains the process for building the block and modifying your application to use the block. The chapter also discusses the QuickStarts provided with the block.

· Chapter 4, UIP Application Block Deployment and Operations — After you create applications that use the UIP Application Block, you will need to deploy them. Chapter 4 discusses the special considerations for deploying these applications, including prerequisites for deployment and security threats and countermeasures.

· Appendix A, Extending the UIP Application Block — Using the UIP Application Block in a default configuration works well in most situations. However, there are times when you may want to customize certain parts of the block to be more specific to your needs. Appendix A provides guidance on extending the functionality of the block to develop your own state management class, custom state persistence providers, custom view implementations, and custom task implementations.

· Appendix B, UIP Application Block Terminology — This appendix will help you understand many of the concepts and terminology used in the UIP Application Block and in this guide.

If you are interested in evaluating the UIP Application Block, Chapters 1 and 2 andAppendix B are most useful. If you have decided to incorporate UIP in your application or if you are already using the previous version of the block and want to upgrade to this version, Chapters 2, 3, and 4 are valuable. If you already have a good understanding of developing with UIP and want to extend the functionality of the block, Appendix A will help you.

Conclusion

结论

UIP Application Block,版本2,是基于MVC模式的,它提供了一个你可以用来简化将业务逻辑代码从用户界面中分离的可扩展的框架。这个block将帮助你编写复杂的用户界面导航以及工作流处理代码,这些代码是可以在不同场景中重用的,并且可以根据你的程序的需要封装。这个指南剩下的部分描述了这个block的设计以及特性,并且演示了你如何使你的代码从这个block提供的功能中受益。

原文连接:
http://msdn.microsoft.com/library/en-us/dnpag/html/uipab-ch01.asp?frame=true

原文连接:
http://msdn.microsoft.com/library/en-us/dnpag/html/uipab-ch01.asp?frame=true

http://www.applevb.com

http://www.applevb.com

分享到:
评论

相关推荐

    User Interface Process (UIP) Application Block 2.0 版

    前段时间找到的 User Interface Process (UIP) Application Block 2.0 版

    uip1.0中文文档说明

    uip中文文档说明,非常适合做uip开发的同仁哦~

    Uip.文档web服务器

    uIP是一个完全由C语言编写的开源软件, 它的文档和源代码可用于商业和非商业用途, 它已经移植到了大部分的8位微控制器, 而且已在很多的嵌入式产品和项目中使用. (比如卫星, Cisco路由器. 查阅Links页面的几个例子)

    UIP中文文档第二 uIP初始化函数.doc

    UIP协议栈,最精简的TCP/IP协议栈,对学习和理解TCP/IP协议及网络运作有非常大的帮助。这是中文资料的第二部分。

    uIP协议文档

    uIP协议文档第一章的中文翻译;uIP-refman-0.9版的第一章pdf版本;希望有所帮助...

    UIP1.0英文翻译成中文的资料

    UIP1.0英文翻译成中文的资料,详细介绍了UIP协议,中英文对比阅读,对于学习UIP协议是个非常不可缺少的好资料。

    UIP中文文档第三 uIP配置函数.doc

    UIP协议栈,最精简的TCP/IP协议栈,对学习和理解TCP/IP协议及网络运作有非常大的帮助。这是中文资料的第三部分。

    UIP1.0源代码附加文档说明

    uIP TCP/IP协议栈为瑞典计算机Adam Dunkels( experimental computer scientis)所写,大名鼎鼎的轻量级的LwIP也为其所创。uIP比LwIP更为精小,其是为了8位/16位CPU系统设计而生的。

    UIP中文文档第六 uIP原始线程(protothreads).doc

    UIP协议栈,最精简的TCP/IP协议栈,对学习和理解TCP/IP协议及网络运作有非常大的帮助。这是中文资料的第六部分。

    uIP参考手册中文文档

    uIP协议文档第一章的中文翻译;uIP-refman-0.9版的第一章pdf版本;希望有所帮助

    UIP中文文档第八 uIP应用程序.doc

    UIP协议栈,最精简的TCP/IP协议栈,对学习和理解TCP/IP协议及网络运作有非常大的帮助。这是中文资料的第八部分。

    UIP协议的中文介绍

    这个文档描述了uIP的0.6版,描述uIP TCP/IP栈。 uIP TCP/IP栈是使用于低至8位或16位微处理器的嵌入式系统的一个可实现的极小的TCP/IP协议栈。现时,uIP代码的大小和RAM的需求比其它一般的TCP/IP栈要小。

    uip学习文档

    TCP/IP协议栈uip,学习文档word,编程环境VC2005,文档中详细介绍了uip的组成部分和流程图、学习过程。

    UIP1.0源码及说明文档

    UIP1.0源码及说明文档,详细实用。对使用MCU开发网络应用,十分有利。

    uip0.9 + uip1.0的资料与源码

    uip0.9 和uip1.0的uip文档 和 源代码; 对理解TCP/IP协议 和编写嵌入式设备上的网络模块有很大的帮助

    uIP:一种用在8位嵌入式系统中的轻量级的TCP/IP协议栈

    UIP(User Interface Process Application Block)是微软社区开发的众多Application Block中的其中之一,它是开源的。UIP是一个MVC框架,区别与其它的一些MVC框架是它不仅支持webForm(网页),同样也支持 winForm,但...

    uip解析文档

    介绍uip协议的移植和使用过程,真的好好用哦

    uIP-1.0源码

    uIP-1.0源码 uIP is a very small implementation of the TCP/IP stack that is written by Adam Dunkels &lt;adam@sics.se&gt;. More information can be obtained at the uIP homepage at http://www.sics.se/~adam/uip...

    UIP中文文档第四 应用层要调用的函数.doc

    UIP协议栈,最精简的TCP/IP协议栈,对学习和理解TCP/IP协议及网络运作有非常大的帮助。这是中文资料的第四部分。

    UIP中文文档第七-uIP编译时配置选项.doc

    UIP中文文档第七-uIP编译时配置选项.doc

Global site tag (gtag.js) - Google Analytics