自1996年微软推出asp1.0以来,asp+iis的组合在与cgi+php+apache的网络大战中,并没有取得“微软式”的优势,反而因
为安全性,执行效率,程序语法和跨平台等问题屡受指责和批评。
随着微软近期宣布.net战略,asp也即将升级到“下一个版本”,称之为asp+。请注意这一引号,因为asp+并不是目前asp3.0
版本的自然过渡,而是提供了一种全新的服务器端web脚本编程,编写asp+页面与生成asp页面有着根本上的不同!首先asp+是一种
编译型脚本语言,其次,几乎可以用任何语言编写asp+程序由于有了众多重大的进步,尽管目前asp+还没有进行公开beta测试,却
已经引起了全世界许多asp用户的关注和跃跃欲试!希望以下介绍,可以帮助大家略窥asp+技术的掠影。
1、asp+的运行平台与编程语言
目前有支持个人用户级的asp+,将运行在win9x上,包括windows 98和windows me。尽管这不是一个web服务器环境,但将构
成一个本地开发平台,在其上可以构筑适合本地运行的web应用。
不过,尽管可以在win9x上使用asp+技术,但推荐升级到win2x。
在win2k专业版上asp+可高效运行,且无需服务器,比win9x版本更加强劲,并支持所有版本和全部功能。
asp+可以运行在iis5或者iis4上。并且实现与你现有asp系统并行运作,所以现有的asp应用完全可以照常运行。
你可以用visual studio 6来编写asp+应用,当然也可以使用文本编辑器如notepad。也可以使用visual studio 7,而vs7带
有针对asp+的所见即所得的vb, c#(微软最新的综合了java和c++的最新编程语言,另文介绍)和c++的设计器和调试器。
asp+虽然默认使用vb编程,但你可以设定其他编程语言。可以说,asp+允许你用任何你喜欢的语言来进行页面、应用和组件编
程!
目前支持asp+编程的有vb、c#和jscript。今后几个月内将有多达19种语言宣布支持asp+。这些语言包括:cobol,perl,
python,eiffel,smalltalk,lisp,scheme,objective camel等。
从开发的角度来看,选择一种最适于你的语言,并最终达到精通的地步是非常有意义的。可喜的是,asp+提供了统一的运行和
调试环境,你可以在其中引用任何符合.net架构的api,如eventlogs,perfcounters,dataaccess等。只要你感到得心应手,效
率提高即可。
2、asp+的新特性与功能a) asp+全新的session会话管理机制
asp+并不依赖sql server或者ldap来进行session管理。并提供两个新特性:
i)非cookie型session:相对于客户端记录sessionid的cookie,我们将sessionidz转移并封装到了url中,这样即使浏览器
关闭了cookie支持,仍然可以使用session管理。这一过程是自动进行的,无需改动程序编码,而且对静态和动态内容都有效,你
可以关闭与一静态html页面,或者动态页面的链接,而session仍将保持有效。
ii)外部session状态支持:可以将session的值保存到外部的状态存储单元内,而不涉及asp+现有的工作进程。这样设计使得
session状态可以跨不同的工作进程甚至多台机器,从而提供更好的可靠性和内在的web群集支持。
asp+的状态存储是一专用的nt服务,其承载asp+的编码,同时支持将session数据直接存储到sql server。后一选择具有更好
的扩展性,但要求你购买sql server。
值得注意的是,以上两种状态选项是完全不相互交叉干涉的。二者可以同时使用,也可以单独使用。而且,外部状态存储是插
件型设计,这意味着第三方可以自行设计支持该存储模型的插件。
b)编译器、缓存机制和新的ado+
asp+的页面可以使用符合ngws(微软新一代视窗结构)规范的编译器进行编译,这包括visual studio全线产品的编译器,如
vb,vc++,java和c#,也包括其他符合这一规范的编译器,如符合ngws运行模式的perl编译器。
编译后的asp+提供了数据缓存模式。由于影响web性能的最大延迟和瓶颈来自数据存取,采用这一机制,可以决定何时缓存asp
页面上的数据,以及何时清除缓存并重新执行数据查询。
在asp+中提供了ado+,比ado更容易使用。ado+将数据视为n维对象,而在ado中,数据表述是仅2维的行与列,因而ado+处理
数据更加灵活高效。
在执行效率方面,asp+的速度有大幅度提高。asp+采用基于线程库的新的多线程存取机制,可以进行异步读/写操作,取代了
未完成线程的再利用,避免了获取或更新状态时可能造成的的工作进程阻锁,从而显著提高了系统吞吐,这是以前的asp所无法达到
的,因为asp仅采用单线程存取线程库,无法进行异步操作。
3、asp+与asp的兼容性和移植工具
微软提供asp到asp+的应用移植软件包。当某些应用需要改动来适应于asp+时,可用来区分或者升级程序代码。幸运的是asp+
可与现有的asp并行不悖,因此你可以逐步将现有的asp应用转移到asp+上来,加上移植工具包,升级过程轻而易举。
asp+正在进行小范围beta测试,公开beta测试的下载正在制作之中,大约9月初进行软件发放。在刚刚举行的专业开发者大会
上,微软向7000人散发了beta代码,由此导致了全世界范围的关注和讨论。
随着web的日益流行和普及,web服务器端程序设计技术解决方案也层出不穷,竞争也日益激烈。单纯的脚本语言因其语法粗
略,解释执行等先天不足而受到挑战。面向对象,与服务器集成,编译型的技术方案将成为趋势。
