现在的位置: 首页 > 综合 > 正文

ASP.NET Atlas Framework 概观

2011年06月20日 ⁄ 综合 ⁄ 共 3596字 ⁄ 字号 评论关闭
 一、介绍

代号 Atlas 是一个新的 ASP.NET 网页开发新技术,在 ASP.NET 2.0 服务器开发平台下整合 Client 端的 Script LibrariesAtlas 对于网页开发所建构的 AJAX 策略是能够让你从 Client Script 呼叫 Server 端的网页应用程序,Atlas 能够处理在 Client 端应用程序重要部分而不必往返 Server 端更新 Page 页面。

这种发展策略能够令你建立一种新型态的 Web 应用程序,而且具有许多超越传统 Web 开发的一些利益优点,AJAX 类型应用程序能够提供较好的效能、跨浏览器运作、且能让你建立更为丰富的使用者接口特色。

ASP.NET Atlas 套用了这种新策略在 Web 应用程序建置上,同时加入了 Client 端及 Server 端的开发组件来大大增强 Atlas AJAX 开发能力。

二、Atlas 目标

Atlas 主要目标是在以下两方面目的提供开发者广泛的应用程序建置区块:

1.      帮助程序开发人员建立 Atlas 应用程序。

2.      Server 端的 ASP.NET 之中整合 Atlas client script 特点,以提供一个广泛的综合性开发平台。

(一)第一个目标

Atlas 第一个目标是帮助你建立 AJAX 应用程序,因为 AJAX 本身具的一定的复杂性,而 Atlas 则替您管理开发 AJAX 应用程序所会面临的复杂性,提供的特色包括了:

1.      JavaScript 程序开发方面提供了一致性且具有对象导向特性的 APIs

2.      浏览器的兼容性,故您不必为了多种浏览器而另外撰写额外程序与部署组件,您的 Web 应用程序就可以跨浏览器而执行。

3.      提供支持 Rich UI 特点的 Client Script APIs 和组件,能够令你免除开发 AJAX 类型应用程序必须撰写大量程序代码的情形,举例来说 Atlas 提供常用的 Drag and Drop 行为,且能够令您在系结这些 HTML 控件时所需的程序代码达到最小。

4.      Atlas 的宣告性语法与 ASP.NET 伺服端控件宣告语法模式类似,如此便能消除较为复杂的程序撰写。

(二)第二个目标

Atlas 第二个目标是整合 Client Scripting ASP.NET 伺服端的程序开发,有别于以往程序的开发不是只专注在 Client 端就是专注在 Server 端的情形,Atlas 同时提供了 Client 端与 Server 端的工具,无论什么样的情况下 Atlas 都可以协助您处理大多数的应用程序开发,ASP.NET Atlas 应用程序提供了下列伺服端的特点:

1.      Web Service Atlas 应用程序之间的整合将会非常有用,如 Profiles 服务。

2.      ASP.NET 网页服务器控件将会发出 Atlas 应用程序所需的 Client Script,使用这些控件将会使得开发 Atlas 应用程序更为容易,因为那会减少需要学习 Atlas Client Script APIs 及组件所需的工作。

3.      整合如 Visual Studio 的开发工具将会提供一个开发设计时期的环境、侦错、完整说明、管理与生产力增强的特点。

三、Atlas 架构

Web 应用程序最小需求只要 Atlas Client Script Library 来呼叫 Web 服务器上的服务或应用程序即可,但做为一个最好的开发选项与工具而言,你可能会想要使用 Server 端的 Altas 组件,而 Atlas 架构同时由 Client Script Library Server 端的 Altas 组件所组成,以下为叙述:

(一)Atlas Client 端组件

下图描绘出 Atlas client script library 架构图:

3 Atlas Client 端组成组件架构图

Atlas Client Script Library 是由一些 JavaScript(.js) 档案所组成,并且提供了对象导向特性以供程序开发,这不是之前的Scripting开发环境而已,它提供了一个新的一致性与模块化层次,Atlas Client Script Library 包括了:

1.      浏览器相容层:为 Atlas scripts 提供了跨浏览器的兼容性。

2.      Atlas 核心服务:包含了一些 JavaScript 延伸,如 classnamespace、事件处理、继承、数据型别与对象序列化。

3.      Atlas 基底类别库:包含 string buildersDebuggersTimersTracing 组件。

4.      网络层:负责处理与 Web Service 及应用程序之间的沟通,以及管理异步远程方法呼叫。

5.      UI 层:提供一些 Atlas Client 端的能力,包括 behaviors sAtlas 宣告语法、UI 组件及数据系结。

6.      Atlas 控件层级:为 Client 端开发提供了特定 Atlas 控件,这些控件能具有 data boundScripted、系结到 Atlas 行为如 drag and drop 等等,这层包含如 auto-completion 文字方块、一般型式控件、具有 data-bound 能力的 ListView 控件,及导览控件。

(二)Atlas 伺服端组件

Atlas 伺服端组件主要是由 ASP.NET Web Services ASP.NET 服务器控件所组成,下面为 Atlas 伺服端组件架构图:

4 Atlas 伺服端组件架构图

上图意谓着所有 ASP.NET 的功能特点够完全被 Atlas 应用程序来取用。

Atlas 也包含 ASP.NET 伺服端的组件,包括 Web Services 及服务器控件,这些组件能够与 Client Script Libraries 结合在一起运作,Atlas 能够获得来自 Web Services 的一些利益优点,包括了:

1.      Profile 服务能够持久化保存在 Server 上。

2.      Membership 服务能够提供验证的选择。

3.      Role 服务能够为 Atlas 应用程序提供以角色为基础的验证。

4.      Personalization 服务能够持久化保存使用者特定数据或网页特定数据到 Server 上。

5.      Globalization Culture-specific 服务也能够被 Atlas 取用呼叫。

ASP.NET 亦包括了类似 ASP.NET 服务器控件的 Atlas 服务器控件,但是 Atlas 服务器控件却具有能够发出 Client Script 的能力,Atlas 服务器控件简化了产生 Atlas Client Script 过程,适合想要专注在伺服端开发的程序开发者,Atlas 包含了完整服务器控件如 ButtonLabelOptionTextBoxCheckBoxHyperLinkValidator 等等,与现有 ASP.NET 服务器控件非常接近;也有 Atlas 伺制项能够发出 JavaScript 产生 Client 端行为,包括 HoverBehavior 控件、ClickBehavior 控件、Popup 控件与 AutoCompleteBehavior 控件,所有控件将会整合进 Visual Studio 之中,故你可以在设计模式中使用它们如同你在使用一般 ASP.NET 服务器控件一般。

Atlas Framework 安装套件亦已经提供测试版下载使用,其中提供了五个 Hands-On-Lab,为了了解 Atlas Framework 本身的奥秘,笔者本身也实际安装测试使用,在做完前三个 Lab 时,仍不能明显感受到它与手工或者其它的 AJAX Library 有什么明显区别,心中想难道是微软夸大其词?但在做完第四个 Lab 之后,Atlas 的感觉就来了,可以明显体验到 Atlas 优越之处,果然有 Framework 层级的味道,而非仅仅是个 Library 函式库水平而已,像在 Web 中的 TextBox 控件里要做到像电子字典般 Key 开头几个英文字,接着画面就列示相关的英文字供选择,或者是以前有个朋友曾问我,他想在 ASP.NET 1.0 TextBox 控件中输入几个开头的订单号码,然后画面就...咚咚咚,从数据库调相关的记录列示在画面上供业务人员选取,我很直接的告诉他 ~ 我不会,二年后过去了,解答就在这 ~ Atlas Framework,简单到不可思议,最核心部分只要两行程序代码...就足以打败我以前修练一甲子还做不到的功力(呵~夸张一下,我还年轻离一甲子还很远呢!)。

在看完 Atlas Framework 功能及架构之后您是不是跃跃欲试心动不已呢!我了解现代人速成之心,没空耐着性子慢慢修或研究 AJAX 理论一年半载后再来实作,故下期我将介绍 Atlas Framework 实际上手的 Labs,教您直接挥舞 Atlas 这把锋利的宝剑,您就会领略什么是 Atlas,有了 Sense 之后再来讨论更深层的 AJAX 理论,您会比较有感觉,下期见。

5 Atlas伺服端的自动完成

抱歉!评论已关闭.