日期:2011-11-15  浏览次数:20775 次

  自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服务器端程序设计技术解决方案也层出不穷,竞争也日益激烈。单纯的脚本语言因其语法粗
略,解释执行等先天不足而受到挑战。面向对象,与服务器集成,编译型的技术方案将成为趋势。