Cairngorm_CN开发文档中文版

上传人:ZJ****2 文档编号:46800311 上传时间:2018-06-28 格式:PDF 页数:33 大小:1MB
返回 下载 相关 举报
Cairngorm_CN开发文档中文版_第1页
第1页 / 共33页
Cairngorm_CN开发文档中文版_第2页
第2页 / 共33页
Cairngorm_CN开发文档中文版_第3页
第3页 / 共33页
Cairngorm_CN开发文档中文版_第4页
第4页 / 共33页
Cairngorm_CN开发文档中文版_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《Cairngorm_CN开发文档中文版》由会员分享,可在线阅读,更多相关《Cairngorm_CN开发文档中文版(33页珍藏版)》请在金锄头文库上搜索。

1、基于 Cairngorm 的 Flex 应用程序设计 基于 Cairngorm 的 Flex 应用程序设计 TRANSLATED BY Dreamer 1. 本文档的英文版版权归所有 2. 文档中文翻译已经得到的授权 3. 译文版权归Dreamer()所有,未经同意,谢绝转载 4. 此文档系个人作品,仅供学习交流之用,可自由传播和打印,但不得用于商业用途 5. 个人水平所限,如果发现翻译有误,烦请告知译者(E-mail:) _ 译者:Dreamer(http:/) 3/11/2007 基于 Cairngorm 的 Flex 应用程序设计 概述 这个文档将会使开发者了解一个简单的基于Cairng

2、orm 的Flex程序的设计过程, 本程序展示了现实中的一个业务需求。本文档的目标读者是这样的开发者:他至 少有点熟悉Flex,开发过一些Flex应用程序,有点熟悉Cairngorm 微型架构,并 且希望学习更多关于如何从一开始就正确合理地设计一个Cairngorm 应用程序。 尽管本文档展示了可视化模型并推荐使用Digimmersion Flex 2 RIA Visio stencil,但是我们并没有打算将其作为单独的产品销售;进一步来说,考虑到 Cairngorm 应用程序的快速开发,我们打算将此文档用来传授设计的实践。很显 然,我们鼓励使用Digimmersion Visio stenc

3、il,但是当然也存在其他的方式来 创建可视化模型。不管你选择什么工具来创建模型,预先可视化程序都是程序开 发的一个重要部分。 如 果 你 对 此 文 档 或 者 文 档 中 所 讨 论 的 任 何 主 题 有 问 题 , 你 可 以 通 过 Digimmersion 上的 Contact Us 页面来联系到作者。如果你对 Cairngorm ,Flex 或者 ActionScript 有特别的或者细节方面的问题,你可以加入 FlexCoders Yahoo! Group 或者访问 Labs.A 上的 Cairngorm Wiki。 业务问题 这个现实中的业务问题是目录服务(directory

4、services)中的。多数大公司都 会维护一个 Active、Novell 或者 LDAP 目录,里面包含了该网络的用户帐号。 我的“白天的工作”是为一个机构工作,它拥有超过 6000 个雇员和超过 2000 个雇员,而且所有人都需要访问我们的网络。网络帐号被集中在我们的 Novell eDirectory (eDir),它也可以通过 LDAP 访问到。 雇员帐号被放在我们的Employee容器中并通过dirXML驱动连接到PeopleSoft HR 系统,这样一来PeopleSoft中的诸如“请假”和“终止”等雇佣状态的更改就会 自动在eDir中更新,而且帐号的特权也会适当地被激活或者被禁

5、止。Affiliates 容器中包含了那些没有在PeopleSoft系统中的用户的帐号。下属办公室职员,志 愿者,卖主以及其他任何人都可能需要访问网络,但是这并不是由我们的HR部门 管理或者控制。 由于子公司控制他们自己的雇佣和解雇, 而且我们的eDir没有连接到任何外部的 HR系统,是手工操作的,所以当外部组织中的职工发生变化时eDir并不总能适当_ 译者:Dreamer(http:/) 3/11/2007 2基于 Cairngorm 的 Flex 应用程序设计 地更新。当一个新的雇佣需要一个新的网络帐号的时候它们可以很快通知我们, 但是当某人离开了他们的机构的时候并不能及时通知我们。 这里

6、的这个过程并不 能自动处理,所以那些不再为外部子公司工作的人在eDir中依然会有活动的帐 号。那些没有除去的帐号不只是安全隐患,而且它们还增加了eDir的大小,这就 增加了开销并且需要额外的管理资源。 解决方案 创建一个由两部分组成的应用程序: ? 第一部分:一个计划任务(可执行的网页、服务等),每天晚上运行, 遍历我们的 eDirectory 树并收集有关问题帐号、部门经理以及最后登 录日期/时间等的信息,然后将这些信息储存在一个小型的简单 SQL 数 据库中。 ? 第二部分:一个用来与数据库交互的基于网页的客户端,有向经理报告 问题帐号的功能, 并且可以让经理为每个问题账号指定一个状态 (

7、请假, 度假,终止等)。 当下属公司无法向我们通知它们的职员状态变动时, 这个应用程序会提供一个安 全网络。 既然我们想要让客户端可以被远程访问,那么就需要一个基于网页的解决方案, 而这个客户端的技术我们选择使用 Adobe Flex。 软件需求描述 第一件事情就是要确定程序将要做什么以及如何工作。 你和你的公司可以遵循任 意的标准需求收集步骤来确定这个程序的需求, 但是为了我们的目的我们需要使 其保持简单。我们的程序将会依赖一个简单的数据库,而这个数据库每晚会自动 收集信息。在这里我们不过多地讨论它是如何自动运行的,而只是把需求本身和 实际客户端的界面联系起来: ? 登录功能 ? 两种会用到

8、的用户角色:Manager 和 Admin ? 所有的用户都是Manager _ 译者:Dreamer(http:/) 3/11/2007 3基于 Cairngorm 的 Flex 应用程序设计 ? 某些用户可以是Administrator ? Administrators可以 ? 查看所有问题帐号 ? 选择查看那些还没有指派给Manager的问题帐号 ? 选中一个或多个帐号 ? 指派一个选定的帐号给一个Manager ? 对已指派给Manager的帐号取消当前指派 ? 切换为Manager身份 ? Manager可以 ? 查看所有已指派给该Manager的帐号 ? 选择查看还没有指派状态的帐

9、号 ? 选中一个或多个问题帐号 ? 选中一个状态 ? 为某些的状态选择一个回返日期 ? 为选中的帐号指派一个状态(以及日期,如果适用的话) ? 取消选定帐号的状态指派 ? 切换为Admin身份,如果拥有Admin特权的话 ? 对所有界面功能的帮助和用法说明 ? 退出功能 Cairngorm 概览 虽然本文档尝试涵盖如何设计一个Cairngorm应用程序的基础,但是并不会深入 讲述框架的一些细节。更多信息和代码示例,你可以看Steven Webster的blog、 Adobe Labs中的Cairngorm Wiki或者Yahoo! FlexCoders group。 什么是Cairngorm?

10、Cairngorm从根本上来说是将程序代码按照逻辑功能 (按照数 据、用户视图、以及起控制作用的代码)分块的一种方法论。这个方法论被归纳 为MVC,或者说是Model(模型),View(视图),和Control(控制)。 Cairngorm的各部分 ? Model Locator: 在一个地方存储程序中所有的值对象 (Value Objects, 数据)并共享变量。它与HTTP Session对象很相似,不过它存储在Flex 客户端,而不是存储在一个中间层程序服务器的服务器端。 ? View(视图):一个或多个Flex组件(button,panel,combo box,Tile 等等) 绑定到

11、一起形成的一个特定的个体, 使用Model Locator中的数据, 并且针对用户的交互动作(点击,鼠标滑过,拖拽等)产生自定义的 Cairngorm Events。 _ 译者:Dreamer(http:/) 3/11/2007 4基于 Cairngorm 的 Flex 应用程序设计 ? Front Controller(前端控制器):接收Cairngorm Events并且将它们 映射到Cairngorm Commands。 ? Command(命令):处理业务逻辑,调用Cairngorm Delegates 和/ 或 其它的Commands,以及更新Model Locator中存储的值对象

12、和变量。 ? Delegate(委托):由一个Command创建,它将远程过程调用(HTTP, Web Services等)实例化并且将结果返回给该Command。 ? Service(服务):定义连接到远程数据库的远程过程调用(HTTP,Web Services等) 各部分如何组织在一起 Cairngorm的工作流程大体上是这样: 客户端界面是由View (视图) 组成的。 View 使用Flex的binding(绑定)来显示Model Locator中包含的数据。View根据诸如 鼠标点击,按钮按下以及拖拽之类的用户动作产生Event。这些Event被Front Controller“广播

13、”并“监听”,Front Controller会将Event映射到Command。 Command包括业务逻辑,创建所需Delegate,处理Delegate的相应,以及更新存 储在Model Locator中的数据。由于View是绑定到Model Locator中的数据上的, 所以当Model Locator中的数据改变的时候View也会自动更新。Delegate调用 Service并且将结果提交给Command, 这一步是可选的, 但是推荐这么做。 Service 调用远程数据然后将结果提交给Delegate。 下一页的图表给出了一个Cairngorm应用程序处理流程的一个概貌。(译注:该 图表可以在这里下载: http:/ _ 译者:Dreamer(http:/) 3/11/2007 5基于 Cairngorm 的 Flex 应用程序设计 _ 译者:Dreamer(http:/) 3/11/2007 6基于 Cairngorm 的 Flex 应用程序设计 立足于Cairngorm的这几部分, 现在我们对如何创建我们的程序应该有些了解了。 ? 首先我们要了解我们的数据 ? 我们将使用数据来定义View ? 我们将使用View来定义可能的用户动作 ? 用户动作将会转化(转变)为Cairngorm Events。 ? Event将会被映射到Command ?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号