前言
我想,如果今天哪个Web开发人员说没有听说过Ajax技术,那实在太不可思议了。确实,近几年,Ajax这个词以超乎想象的速度红遍Web开发领域,大到Google、网易,小到一些地方公司的主页,都普遍开始加入Ajax元素。这种技术,给Web开发带来了革命性的意义,也使得Web产品及B/S系统的用户体验大大改善。
然而,Ajax用起来华丽、爽快,开发起来却困难重重。JavaScript语言怪异的语法、没有IDE支持以及难以调试,都成为Ajax开发的硬伤。另外B/S系统和C/S不同,浏览器的多样性也给Ajax的开发带来很多困难,使得我们在做Ajax应用时,不得不考虑到各种浏览器的差异,开发过程痛苦至极。
针对这种情况,各种Ajax框架应运而生。这其中的佼佼者,便是微软推出的ASP.NET AJAX框架。它不仅给使得开发Ajax应用变得容易很多,而且更可以与微软的开发工具无缝集成,给.NET平台的开发人员带来很大方便。
这一系列文章,就是要介绍这个框架的客户端编程。
ASP.NET AJAX能做什么?
ASP.NET AJAX框架带来的好处和特性实在太多了,这里简要列几条:
1.扩展了JavaScript语言,增加了面向对象特性。简化了一些DOM操作的语法。
2.一系列的服务器端控件可以让程序员不编写JS,而仅通过拖控件完成Ajax应用的开发。
3.开创性的提出了客户端组件、行为组件等概念,并提供了一种类似XML的标签式语言,给Ajax客户端编写带来革命性创新。
4.完善的代理模型机制,使得开发人员可以在JS中直接调用后台程序,就像在后台调用一样。
5.各种数据类型的自动转换,特别是对于复杂类型,内置自动序列化和反序列化机制,是的前后台可以直接共用复杂类型,而不必手工转换。
6.提供了大量的客户端组件,方便程序开发。
7.屏蔽了浏览器之间的差异,让开发人员可以不再处理那些令人头疼的浏览器差异问题。
服务器端编程 VS 客户端编程
ASP.NET AJAX框架提供了两种开发模型:服务器端编程和客户端编程。前者使用方便,开发人员可以不懂JS和Ajax,而是通过传统的ASP.NET开发方式完成Ajax应用的开发,但是其控制粒度较粗。而后者开发难度相对较大,需要开发人员熟悉JavaScript,并熟悉ASP.NET AJAX提供的各种语法支持及客户端编程模型,但是其控制粒度精细,有利于提高应用的性能和质量。
本系列文章将重点介绍客户端编程。
开始ASP.NET AJAX之旅:让我们一起对ASP.NET AJAX说Hello!
下面,我将分别用两种方式实现一个最简单的Ajax应用:单击按钮,异步调用后台类中的一个方法,返回一个字符串,显示在页面指定位置,整个过程不刷新页面。其效果图如下:
左图为单击前,右图为单击后。整个过程页面无刷新,所显示的字符串是从后台程序得到的。下面,将用两种方法实现这个小应用。
没有ASP.NET AJAX的日子:想说Hello不容易!很难很费力!
首先,我们不使用任何框架,手工创建这个Ajax应用。
1.创建工程
打开VS(我用的是2005),创建一个新的Website,命名为AjaxTest。完成后,添加系统文件夹App_Code。
2.创建后台程序
下面我们要编写供前台调用的后台程序,这个程序很简单,只需要返回一个字符串。我们在App_Code文件夹下添加一个新的文件Hello.cs,这是个C#类文件,其详细代码如下:
Hello.cs:
1using System;
2
3public class Hello
4{
5 public Hello() { }
6
7 public string SayHello()
8 {
9 return "Hello!Ajax";
10 }
11}
代码没有什么好解释的,只有一个方法,就是返回“Hello!Ajax”这个字符串。