asp.net
介绍
代号Atlas是一项新的ASP.NET网页开发新技术,在ASP.NET 2.0 服务器开发平台下集成Client端的Script Libraries,Atlas对于网页开发所构建的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特点,以提供一个广泛的综合性开发平台。
8第一个目标:简化AJAX应用程序开发
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服务器控件声明语法模式类似,这样便能消除较为复杂的程序撰写。
8第二个目标:Server端与Client端并存的Atlas技术方案
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组件所组成,具体叙述如下:
8Atlas Client端组件
图1描绘了Atlas client script library架构图。
图1 Atlas Client端组成组件架构图
Atlas Client Script Library是由一些JavaScript(.js)文件所组成的,并且提供了面向对象特性以供程序开发,这不是之前的Scripting开发环境而已,它提供了一种新的一致性与模块化层次,Atlas Client Script Library包括了:
1. 浏览器兼容层:为Atlas scripts提供了跨浏览器的兼容性。
2. Atlas核心服务:包含了一些JavaScript延伸,如class、namespace、事件处理、继承、数据类型与对象序列化。
3. Atlas基础类库:包含string builders、Debuggers、Timers、Tracing组件。
4. 网络层:负责处理与Web Service及应用程序之间的沟通,以及管理异步远程方法调用。
5. UI层:提供一些Atlas Client端的能力,包括behaviors、Atlas声明语法、UI组件及数据绑定。
6. Atlas控件层级:为Client端开发提供了特定Atlas控件,这些控件能具有data bound、Scripted、绑定到Atlas行为如drag and drop等等,这层包含如auto-completion文字方块、一般类型控件、具有data-bound能力的ListView控件,以及导航控件。
Atlas服务器组件
Atlas服务器组件主要是由ASP.NET Web Services及ASP.NET服务器控件所组成,图2为Atlas服务器组件架构图:
服务器端
图2 Atla服务器端组件架构图
图2意味着所有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包含了完整服务器控件如Button、Label、Option、TextBox、CheckBox、HyperLink和Validator等,与现有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,简单到不可思议,最核心部分只要两行程序代码...就足以打败我以前修炼一甲子还做不到的功力(呵!夸张一下,我还年轻离一甲子还很远呢!)。
图3 Atlas自动完成服务器控件
结论
在看完Atlas Framework功能及架构之后您是不是跃跃欲试心动不已呢!我了解现代人速成之心,没空耐着性子慢慢修炼或研究AJAX理论一年半载后再来实现,故下期我将介绍Atlas Framework实际上手的Labs,教您直接挥舞Atlas这把锋利的宝剑,您就会领略什么是Atlas,有了Sense之后再来讨论更深层的AJAX理论。