




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Atlas架构介绍Atlas架构有两个主要部分组成。第一部分为客户端脚本库。它可使开发者更高效地为Web应用程序编写和实现客户端功能。Atlas客户端脚本库具有一个丰富的组件模型,并允许开发者以面向对象的方式进行脚本编程。该脚本库同样包括很多提供常见操作的类,可以直接在应用程序中使用,其中包括网络访问、用户界面增强、行为、动作和字符串操作等。因为Atlas脚本基于XML的标记性语言,所以在将来对于实现Ajax功能的应用程序,它会很容易地支持由可视化开发工具自动生成代码。第二部分为服务器端扩展的集合。开发者可以使用这些服务器端扩展将客户端与服务器端两种应用程序模型集成起来。借助于这些服务器端扩展,开发者仍可以使用现有的ASP.NET应用程序模型,但生成的代码却执行于客户端Atlas运行时之上。图2-5显示了Atlas的架构。这样,编写Atlas应用程序与目前编写ASP.NET Web Form应用程序的过程类似。服务器端控件将Atlas的声明脚本(相对于ASP.NET的HTML UI)发送给客户端,然后页面在Atlas客户端框架下运行。此后,应用程序即可运行于客户端,且并不需要频繁回送。客户端应用程序同样可以使用Atlas服务代理,直接连接Web Service或Windows Communication Foundation (WCF)服务,给用户带来更丰富的客户端体验。Atlas架构大大减少了开发者所需的代码量,进而提高了开发效率,因为服务器端控件已经为你生成了大量的代码。这种架构将页面中的内容、样式、行为和代码清晰地分开。一种典型的Atlas应用程序设计模式是直接在客户端调用Web服务或WCF服务,而无须再通过一个中介层。这样避免了使用中介层对通信效率的影响,同时也避免了增加中介层对应用程序设计、实现和部署中带来的复杂性。最后,Atlas兼容多种浏览器,它基于熟知的标准设计,使用一个浏览器兼容层脚本库来支持所有流行的浏览器,包括Mozilla/firefox、Safari,当然还有IE。在第3章中会有更详细的介绍。Atlas客户端脚本库Atlas带来了一个拥有丰富的类型系统的富客户端API。JavaScript本身包含类的基本概念,但却缺少对类型的充分支持。为了让开发者更容易地开发类和组件,Atlas提供了一些建立在JavaScript之上的类库,以提供更丰富的类库和类型的集合,允许开发者使用命名空间、类、接口、继承以及其他一些通常与现代的高级语言联系紧密的特性。Atlas的脚本库同样提供了一个包含辅助类的基础类库,让脚本开发变得更容易。这个基础类库包括字符串构建类(string builder)、序列化器类(serializer)、调试类、跟踪类以及网络访问类等。微软公司也将提供一些能与上述调试类、跟踪类集成在一起的工具,让开发者更方便地对脚本程序进行调试。关于Atlas的脚本库,在第3章中会有更深入的介绍。Atlas包含一个建立于XMLHTTPRequest之上的客户端网络栈,用以调用服务器并使用服务器端功能。例如客户端脚本库中的WebRequest类、WebResponse类和MethodRequest类等。这些类兼容各种不同的浏览器,它们将对XMLHTTPRequest的使用抽象出来,提供给开发者一层一致性的编程接口。这一层将不同浏览器对XMLHTTPRequest的不同实现隐藏起来,让开发者无须了解这些即可开发Ajax类型的应用程序。另外,Atlas客户端框架还为服务器端服务实现了Web Service桥(Web Service bridge),客户端浏览器可以直接通过Web Service桥访问服务器端方法。当通过一个特别的URL调用这个服务时,Web Service桥生成的JavaScript代理将被下载到客户端。这些JavaScript代理提供一个由Web Service桥自动生成的接口层,可以通过在服务URL地址后添加/js调用,例如http:/servername/servicename/service.asmx/js。在JavaScript中添加标签即可将这个代理的代码包含在应用程序当中,这样就可以通过代理调用这个服务了。所以,如果你已经使用.NET框架将你的中间件封装并暴露成了Web Service,那么使用Atlas即可直接从浏览器中访问它们。在以前的实现中,可能还需要创建一个Web应用程序,来使用这些Web Service并将其提供给客户端浏览器。另外,对于现存的建立在ASP.NET之上的Web应用程序,可以在页面中的方法上添加一些属性将其暴露成Web服务。这样就可以容易地改造原有的非面向服务(non-service-oriented)的应用程序,让其暴露出一系列的原子性功能单元,供浏览器中的Ajax应用程序使用!这是页面回调(page callback)的一个极好的替代品。在第6章和第10章中会有更详细的介绍。JS对象标记为了提高数据与类型的传输效率,Atlas支持JSON(JavaScript对象标记)格式。相对于XML和SOAP,JSON更加轻量级。并且,由于不同浏览器中XML/SOAP解释器的实现有所不同,解析同样XML和SOAP格式的数据并不一定能够得到一致性的结果。对象的JSON表示方法与在JavaScript中创建该对象的语法保持一致。例如,下列代码是一个类的典型表示方法,用来表示某人姓名和年龄:可以使用下列代码以JSON的方式表示上述类的一个实例:AtlasWeb用户界面传统的Ajax应用程序使用HTML以及其相关技术,例如DHTML和CSS来创建用户界面。当界面需要动态改变时,应用程序通过XMLHTTPRequest调用服务器,然后服务器将新的界面样式发送回客户端,浏览器再将其插入到DOM中并呈现。例如,考虑下面的情况:使用Ajax技术实现一个金融网站(在第11章中会有完整的示例程序)。当用户改变要查看的公司时,页面中的一些部分需要用新的内容更新。图2-6显示了这个应用程序的雏形,包含一个基本的报价和几张图表。考虑如下场景:用户将选择他是否要查看这家公司更详细的报价信息。如果是,那么单击一个按钮来得到这些信息。你希望这些信息显示在同一个页面上,但不希望整个页面被刷新仅仅是希望这些信息出现而已(参见图2-7)。如果不使用Ajax技术,哪怕网络往返行程再短,在呈现新数据时页面也会闪烁一次。浏览器将会清空并重绘整个页面,虽然页面上的大部分内容都不需要改变。图2-6 正在加载详细报价信息图2-7 无页面闪烁地呈现详细报价信息上述方案带来的问题,一部分是由于该方案没有将表现与业务逻辑清晰的分开而造成的。服务器在管理业户逻辑的同时也管理着UI,而表现层却仅仅简单地负责将服务器分派的内容显示出来。当然,服务器完全可以只发送文本,而不发送界面样式,但这又需要一个JavaScript程序解析该文本并由此生成UI。与完全在服务器端生成UI相比,这种方式往往会更加费力,因为在服务器端开发中,可以充分借助强大的Visual Studio以及C#或VB.NET(当然,还可以使用Java和Java的IDE)以提高开发效率。在Atlas的模型中,数据位于服务器端,这也是属于它的位置,而界面样式等表示层代码在第一次呈现后就一直位于客户端。运行于浏览器中的组件和控件将接管所有的呈现任务。从较高的层次来看,运行于浏览器中的组件和控件分为如下两大类别:q 组件(component):组件类似于积木,是一类可以以声明或编程方式创建的可重用的模块。组件控制着自己的生存周期,组件之间也能很容易地通过绑定或事件彼此连接起来。q 控件(control):控件是一类与DHTML元素相关联的用户界面元素。控件管理并控制该元素的所有呈现任务。AtlasWebUI数据绑定关于Atlas的Web UI,在第7章中会有非常详细的介绍。Atlas提供一个数据绑定的组织结构,通过使用数据绑定,可以将组件与组件,或组件与数据源(data source)连接并集成起来。Atlas支持双向的数据绑定;通过数据绑定,数据源可以直接被修改,并且在数据绑定上还可以对数据进行某种形式的转换,在绑定时将一个值转化为另一个,借此实现一些基本的业务逻辑。图2-8显示了Atlas中一个数据绑定控件的例子,这个例子来自于第5章。关于Atlas的数据绑定,在第5章中会有更详细的介绍。图2-8 Atlas中应用数据绑定的控件在Atlas中,可以为某个Web Service方法添加DataObjectMethod()属性,来指定这个方法执行的是选择、插入、更新或删除操作中的某一个。下述代码演示了指定该方法为选择操作。通过使用DataObjectMethod()属性,我们可以将Web Service方法和客户端数据绑定集成起来,为数据访问提供端到端的良好体验。下述代码演示了使用上面Web Service方法和服务器端控件的Atlas客户端以及其中的Atlas脚本。目前列出太多的类似上面的代码并没有什么意义。但不用担心,当读过本书,看到Atlas脚本是如何与HTML优美地配合起来实现GUI逻辑,如何与服务器端控件巧妙结合时,上述代码将很快变得自然而易于理解。上述代码首先创建了一个名为MyManager的ScriptManager对象,用来保证将适当的脚本和脚本库下载到客户端。然后是HTML标签,用来定义用户界面。这段HTML标签用来表示一个简单的列表,是页面用来生成这个列表的主控模板(master template)。接下来的部分是在本书中见到的第一个Atlas脚本的实例。这段Atlas脚本的第一步是建立数据源。通过如下方式使用标签:上述代码使用属性来指定数据源的名称和提供数据的Web Service的URL。然后定义了一个当该数据源的某个属性变化时将被触发的事件(在Atlas中叫做动作(action)。然后定义了一个ListView控件,与数据源绑定。这个ListView控件将依照Web Service的响应数据生成一个列表。关于上述控件,在第57章中会有非常详细的介绍。最后一部分声明了该绑定被触发的时机。该绑定将在应用程序加载完成时被触发,通过下述Atlas脚本定义:这段代码非常易懂,几乎无须太多的说明当页面2加载完成时,调用数据源的选择方法。这段代码触发了绑定,当得到数据时,列表将刷新并显示新的数据。在处理客户端编辑的功能上,数据源控件功能非常强大。数据源控件是一类高效的、离线的数据集(data set),使用JavaScript实现,包含数据表、列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中职政治 (道德与法治)部编高教版(2023)心理健康与职业生涯第12课 终身学习 持续发展一等奖教学设计
- 九年级物理下册 第九章 家庭用电 2 家庭电路教学设计 (新版)教科版
- 2024中粮粮谷营销公司校园招聘笔试参考题库附带答案详解
- 采购控制程序培训
- 妇产科护理查房记录
- 成人培训学校2025年战略计划表
- 初中语文人教部编版八年级下册12《诗经》二首综合与测试教学设计
- 六年级数学上册 六 分数混合运算第5课时 解决问题(三)教学设计 西师大版
- 九年级化学下册 第7单元 常见的酸和碱 第1节 酸及其性质 第1课时 常见的酸教学设计 (新版)鲁教版
- 人教版六年级上册1 圆的认识教案及反思
- 装配式建筑装饰装修技术 课件 模块八 集成门窗
- DL-T5181-2017水电水利工程锚喷支护施工规范
- 大学校园白蚁防治方法
- 地勘安全生产承诺书
- 医院专项资金使用方案
- 水利工程运维水利工程运行和日常维修养护方案
- 理论力学简明教程(第二版)课后答案陈世民
- 2016医学机能学实验教程
- 2024年10月公务员制度自考试卷含解析
- 幼儿园课件:谷雨绘本故事-养蚕忙
- 高级审计师《审计理论与审计案例分析》真题
评论
0/150
提交评论