让您的主页支持各种浏览设备(ASP+篇)(上)
ASP+ 的移动控制
如果媒体的新闻和广告是可以相信的话,在不久的将来会使用很小的电话或者其它手机设备来访问互联网。OK,这只是一个比较乐观的估计,但是有一点是可以肯定的,那就是访问您站点的访问者已经有很多人不是在使用传统的浏览器了,而且这个数字还在不断的增加(新浪消息:据统计,全球手机用户已经超过电脑用户,而且30%的手机具有WAP功能)。为了适应各种型号的手机(包括那些很小的电话),ASP+提供了一款引以自豪的服务控制用于产生WML,而不是HTML。在这篇文章里,我们将对这个微软还在开发中的控制来个小小的观察。这篇文章同样也会考虑一些其它的用户浏览设备,比如置顶盒,甚至是电冰箱。
ASP+入门
有很多种方法能够创建动态页面。在过去,最突出的技术就是使用可执行的程序通过Common Cateway interface(CGI)去访问WEB服务器。但是,在近些年中,一些新的技术能够让脚本代码直接写入HTML页中,而且这些技术现在变得越来越流行。在这些技术中有Perl,Java Server Page (JSP)以及微软的Active Server Pages(ASP)。
ASP开始时只是一个能够通过Internet Server Application Programming Interface(ISAPI)来访问WEB服务器的DLL,换句话说就是一个ISAPI DLL.这种接口提供了一个与服务器快速而有可靠的联结。这些代码在同一个进程或者内存空间中运行。使用这种技术,ASP进化到了3.0,并且会作为Windows 2000的一部分来安装。
进入 .NET 的世界(微软带给我们的新概念)
根据微软.NET Frameword的介绍,基础的ASP的设计已经改变。这种新的结构已经完全脱离了当前程序运行的语言以及操作系统指定结构的限制。
在今天,大多数的编程语言是直接能过本地的代码(这些代码已经在进程中执行,通俗说就是编绎器)来编绎原始代码。因此这种编译必须依赖于处理器的类型。举个例子,在intel处理器上编译的代码将不能在Motorala的处理器上运行。
关于这个,有一个例外,那就是Java,它使用一种独立的virtural machine来执行代码,这个代码是根据指定的处理器和操作系统来编译的。只要在目标机上有合适的Java Virtual Machine,那么代码就能执行。
微软的.NET Framework是一个与JAVA极其相似的但是作用更为广泛的框架。它提供了一个完全的开发和运行环境,它能运行程序。这些代码会被编译成一个特殊的Intermediate Language(IL).所有的源代码都被编译成IL代码而不用考虑代码所用的语言。
因些代码不管是用VB,还是VC,还是JScript或者是新的C#,都会被编译成同样的IL代码。这些编译器已经作为.NET Framework的一个部分被包含。
The ASP+ Framework
为了结合ASP技术与.NET框架,微软开发了一个开发系统用于提供一种更快的动态网页开发。同时这个运行环境也会变得更加有效率,升级性也有很大的提高。这个技术叫做Active Server Page+,或者干脆叫ASP+
ASP+是如何工作的?
ASP+最主要的新特点是应用程序与页面事件模块的结合。ASP+是这个新代码处理环境的一部分。这就是说,这种新技术能对事件做出反应,比如页面的Loading或者是应用的启动,这些ASP+都能通过事件来处理。
这种后台执行的结构会对页面来说是非常有用的。一般来说这个页面包括一个
标签以及其它一些HTML元素,但是这些元素会在具有ASP+环境的服务器上执行。ASP+不仅向浏览器(客户端)输出被要求的HTML,而且还加入了一些额外的东西在里面以维持每个控制的值(用以回传给服务器)。
同时因为ASP+通过额外的代码和属性控制着页面的行为方式,所以ASP+就能做更多好玩的事情。因为页面是在服务器上创建的,这个ASP+引擎能够查觉到这个form是如何被提交的,也就是说能够侦察到用户是按了哪种button按钮。
ASP+允许服务器端事件的使用(这可是个新概念)。我们会在下面的例子中看到,通过指定的事件来处理问题。
这种特殊的HTML元素请求是这种新后台结构的基础,它的真名是ASP+ Server Controls(ASP+服务控制)。在标准的ASP+中有很多种这样的控制。你能够使用VB或其它.NET支持语言来编写、继承、扩展这种控制。
什么是ASP+移动控制?
现在一个令网络开发者很能关心的问题就是快速增长的移动设备市场。现在已经有上百种不同类型的设备出现了,这些产品中没有一种能够和传统PC上的浏览器相兼容。这个范围包含但是不仅限制于"无线设备"。同样的有掌上电脑,以及我们的电视,还有游戏控制台,这一些现在都可以上网浏览了。
这些设备中的大多数不支HTML,同样不支持颜色、字体、定位、声音以及其它各种元素的改变。因此,为你的站点创建一个HTML的页面,并不能解决所有的问题。因此我们就得为创建一个能为大部分设备所显示的页面。
为了提供这种属性,微软介绍了一种叫做移动控制的东西,它能够根据不同的设备创建不同的页面。如果是WAP手机浏览,他就会创建WML代码,如果是掌上电脑浏览就会创建HTML代码,IE等传统浏览器就不用说咯。
这个控制的重点是能够智能化地创建不同的输出,而您对不同的设备却使用同一代码。比如,list控制会在手机、掌上电脑、PC上显示同一个list菜单,但是他们输出显示时所使用的代码却是不同的。
有了他,程序员就可以开发程序时不用考虑客户使用的设备了。
移动控制能做些什么呢!?
现在我们看看移动控制到底能做什么:
移动控制的范围
当前版本的移动控制下面的属性是有效的:
MobilePage 如同WML中的deck
Panel 如同WML中的card
Form 启用用户输入控制
Label 在页面中输出文字
Command 创建一个链接
TextBox 文本输入框
List 如同select
RequiredFieldValidator 对用户输入进行检查
RegularExpressionValidator 使用用户输入生效
Stylesheet 指定输出格式
在以后的版本中还有一个SelectionList控制,功能与list大致相同。
设置此组件
建立一个移动控制很简单,虽然这些具体的技术一直在变,但是这些控制还是一个DLL文件,把他拷贝到就用开发环境目录的bin子目录下。当然这个应用也必须是虚拟目录。
第二步,就是把例子文件config.web加到应用目录下去,如果这个文件已经存在那就把文件的这一段的内容加进去。它通过BrowserCapabilities控制来判断哪种格式和语言将要发到用户端去。
在目前的版本中,移动控制只支持WAP手机中的WML,以及HTML。以后的版本支持的就多了。比如XHTML,HDML,cHTL等等。