首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java
   在第一章中,我介绍了Ajax的使用方法,并且创建了一个示例程序,演示如何应用Ajax技术编写异步响应用户输入的页面。在本章中,我将介绍微软公司对ASP.NET 2.0的扩展——Atlas。应用Atlas,可以更容易地创建Ajax类型的应用程序,并使用Visual Studio 2005控制它的开发、部署以及调试。

­­ASP.NET Atlas是一系列技术的集合,它包含一些部署到客户端的脚本库,用于实现一些常用的功能和编程特性。只需要将这些JavaScript脚本库包含在页面中即可使用。可能更重要的是,Atlas同样提供可被包含在页面中的服务器端控件,可以生成运行于浏览器中的HTMLJavaScript代码。通过使用这些服务器端控件,开发者无需亲自编写太多代码,即可将适当JavaScript发送给客户端——HTMLJavaScript将由服务器端的ASP.NET控件生成。这种架构是ASP.NET最基础的理念之一,也是理解Atlas所必需的。在本章中,将学习到Atlas的完整架构,以及Atlas是如何与ASP.NET 2.0结合在一起的。

2.1  ASP.NET 2.0服务器端控件介绍

若想更好地理解Atlas及其架构,首先应该理解ASP.NET 2.0的服务器端控件。服务器端控件是ASP.NET框架的基础部分之一。作为ASP.NET框架的核心,服务器端控件是.NET框架中的一些表示Web Form上可视化元素的类。一些服务器端控件几乎就是某些标准HTML标签的简单映射,并提供一些服务器端的高效实现。而另外一些服务器端控件则是更大规模的抽象,封装了复杂的GUI任务,例如页面中显示数据的网格等,并最终输出成HTML表示。需要特别注意的是,使用服务器端控件的应用程序最终仍将呈现在浏览器中。更明确地讲,服务器协调控件的逻辑,并将其生成的HTML/JavaScript发送给浏览器并呈现出来。 

 服务器端控件可分为如下几种:

q  HTML服务器端控件HTML server control):这类控件包装了标准的HTML标签,使用runat=“server”声明。例如HtmlAnchor控件,是<a>标签(锚标签)的服务器端表示。

q  Web控件Web control):这类控件重复了基本HTML标签的功能,但却拥有在整个范围之内标准化的方法和属性,让开发者更易于使用。很多Web控件类似于HTML服务器端控件(例如Button控件),但它们的API是为C#和其他.NET开发者设计的,而不仅仅是标准HTML控件API的重复。所以,这种一致化的API在开发中更容易使用,特别是对于那些没有太多HTML经验的开发者而言。

q  富控件rich control):这是一类专门的Web控件,实际上十分复杂并生成大量的HTMLJavaScript。例如Calendar(日历)控件。

q  验证控件validation control):这类控件按照一个预先定义的标准来验证用户输入。例如验证输入是否为合法的电话号码或邮政编码。它们封装了在Web Form上验证并显示结果的逻辑与实现。

q  数据控件data control):这类控件用来封装并显示大量数据,例如一些网格和列表类型的控件。数据控件支持一些高级特性,例如使用模板、编辑、排序、分页以及过滤等。

q  导航控件navigation control):这类控件用于显示站点地图(Site Map),为用户提供站点导航等。

q  登录控件login control):这类控件内置对表单认证(Form Authentication)的支持,为网站提供一套齐全的、立即可使用的用户认证解决方案。

q  Web部件控件Web part control):这类控件用于构建运行于Windows SharePoint服务下的网络入口组件[1]

q  移动设备控件mobile control):这类控件用于在移动设备,例如个人数字助理(PDA)和智能电话上呈现内容的应用。

演示服务器端控件强大功能的最好方式就是通过示例程序。打开Visual Studio 2005,创建一个名为Atlas2ASP.NET网站。从工具栏的标准选项卡中将Calendar控件拖放到Default.aspx页面(由Visual Studio自动创建)的设计界面中。你将看到类似图2-1的界面。

若切换到Default.aspx页面的源文件,可以看到一些很简单的HTML,并没有太多的代码——的确不够呈现出刚刚看到的那个日历,更不用提那些与用户交互的功能了,比如选取日期、在月份之间导航等。图2-2显示了这段代码。

2-1  Default页面中添加一个日历

2-2  查看日历页面的服务器端代码

实现日历功能的代码是这一行:

ASP.NET在运行时使用内建的Calender控件处理上述代码,并生成HTML。类似地,VS.NET同样使用ASP.NET内建的Calender控件在IDE中以可视化方式显示。生成的HTML与图2-2中的代码完全不同,因为这是服务器端控件以HTML代码呈现后的结果。图2-3显示了页面呈现在IE中的样子。

2-3  浏览器中的日历页面

使用浏览器的ViewSource功能,可以查看生成的HTMLJavaScript(参见图2-4)。可以看到生成的HTML与图2-2中的代码完全不同,替代<asp:Calendar>控件的,是一个包含了用于渲染日历的布局和信息的HTML <div>标签。这些HTML标签用于显示月份、日期等。还有一些JavaScript代码,让用户可以在月份之间前后导航。

2-4  查看日历页面客户端代码

上述例子演示了服务器端控件的强大功能。使用类似的控件,你无须过多地关注复杂的、需要手动编写的JavaScript代码(这种复杂性在第1章中已经被证实),即可将包含Ajax功能的页面发送给浏览器。你还可以充分利用专业的IDE所带来的优势,非常容易地调试和管理Atlas应用程序,就和标准的Web FormWindows应用程序一样。

这种开发模型是Atlas的主要设计目标之一。我们都知道,创建基于Ajax技术的Web应用程序比较复杂,需要开发者掌握大量的客户端脚本知识,而这往往使开发和调试变得很缓慢。正因为如此,微软公司开发出了一系列的Ajax API,使用这个API,开发人员可以继续沿用他们熟悉的Visual Studio中高效开发的经验,并用此创建更好地满足用户体验的Web应用程序。

Atlas在两方面扩展了Ajax的概念。首先,Atlas将很多常用的JavaScript操作封装成为客户端脚本库,这样大大简化了例如创建富用户界面rich UI)、调用远程服务等的操作。同时,AtlasJavaScript的扩充也使其拥有了真正的面向对象编程接口。无论你的网站建立在何种平台上,都可以使用这些脚本库来实现Ajax。有关Atlas的客户端脚本库将在第3章中详细介绍。该框架也为客户端应用程序的开发带来了新的方法——Atlas脚本(Atlas script),一种基于XML声明的标记性语言。

Atlas脚本将XML元素和实际的HTML元素对应了起来。这些XML元素可以拥有与HTML元素相关联的属性,并使用子标签定义它的行为和动作等。在运行时,Atlas将解析这些脚本,并根据它生成适当的运行时行为。

其次,Atlas提供了一个服务器端开发的平台,与ASP.NET 2.0结合起来。当与ASP.NET 2.0同时使用时,Atlas提供的编程模型将大大降低建立拥有丰富的Ajax用户体验的网站的难度。并且,Atlas还让开发者可以很容易地扩展现有的ASP.NET应用程序,使其拥有Ajax行为。这也是Atlas框架在服务器端最重要的一部分。开发者可以使用Atlas提供的一个叫做UpdatePanel的服务器端控件把现有页面的一部分包围起来,使这部分页面能够以异步的方式更新,而无须刷新整个页面。这是一个极为重要的特性,因为它允许你将现有的ASP.NET应用程序转换为异步的、页面支持部分更新的Ajax类型应用程序。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论