ASP+与ASP有什么不同

网络整理 - 09-05

在以前的文章中我们认识到ASP+是一个完整的操作系统的一部分。但是为什么ASP+不同于以前版本的ASP?他们之间到底有什么不同?如果你仅仅是运行一些页面或应用程序,那么你可能完全不会注意到他们之前的区别。

一旦你打开ASP+SDK或者帮助文件,你就会发现这个新产品几乎没有一点像以前的版本。

当然不必惊慌,我们下一步就会看看一些主要的不同点。我们先看看为什么微软公司会认为我们需要一个新版本的ASP,它能帮助我们干什么。作为一名开发者,我们也得知道它有哪些新的特性来帮助我们建立站点和应用。

我们真的需要一种新的ASP!?
微软公司开发ASP+动机我们在上一篇文章已经讨论了。ASP已经取得了巨大的成功,为什么我们还需要一个新的版本!?我们可以从下面四点考虑:

现在的ASP的只能使用非结构语言编写,比如VBscript和JScript(如果用其它的语言就还需要单独的解释器)。而且当ASP在第一次执行时,它解析并在cache中储存这些代码,这样的局限性就是不允许其它结构性语言比如VB和C++的使用,从而限制了它们的优越性。而ASP+真正提供了中层语言执行结构,允许各种语言的使用。
使用HTML,文本,对象混合的ASP很容易建立一个大型的页面。但是很难重复利用这些代码,除非你把一些代码放在一个include文件中.这不是最好的解决方法。在很多的场合中,开发一个网络应用需要广泛的专业技能,比如,你写程序,另外一些人做美工,还有一些人设计网页的内容,如果仅仅使用ASP很难把这些人联系起来来完成同一件事。但是ASP+真正允许了单独的代码与内容共存.


在以前版本中的ASP中,你必须为几乎每件事情写代码。为了保持在form中的数据,写代码。为了确认用户写入的数据,写代码。为了发送一些简单的数据,写代码。而在ASP+中引入了一种真正的组件模式,通过这种服务器端的控制以及事件触发,我们似乎感觉是好像是在操作VB中"FORM".这种ASP+中的新组件控制是宣告性质的(也就是说,你如果想使用这些组件控制来作一些事情,你只需要声明一下就行了,其它的不用管了,哈哈,是不是觉得有些傻瓜啊?!?),因此你实际上只需写很少的代码了.实际上,在很多情况下,你完全不用写任何的代码.
外面的世界时刻都在变化,已经有相当比例的用户是通过"互联网设备"来访问你的站点了,比如说WAP手机,PDA,置顶盒,以及其它的一些,也许不久的将来使用这些上网的用户比用PC的还多。这就意味着我们可能要在服务器上做更多的事以与不同的设备相适应。我们也不得不在使用不同格式输出,比如WML。同时,新的互联设备和商业应用也需要有能力从网络应用中发送或读取WML.现在使用ASP做这些,需要你使用XML解析器,使用XML转换数据。而ASP+网络服务会用更简单的方式使用你做出的页面能够适应不同的设备。
除了上面的这些,快速发展的分布是应用也需要开发地更加快速,更加模块化,重复利用性更强,更容易操作,让更多的平台支持。像SOAP(Simple Object Access Protocol)这样的新标准以及B2B的商业需要,需要一种新的技术来适应不同的系统。网络应用和网站需要提供一种更加强大的可升级的服务,ASP+能够适应上面的要求,并且能够在发生错误、缓冲区溢出时重新启动应用程序。

因此为了适应这些需要,ASP已经对基础甚至是开发环境进行了修补。Visual Studio 7.0将会对ASP+应用进行完成的支持(包括ASP和ASP+),尽管现在还只有很少的工具能够获得其支持。这种丰富的,组件模式程序开发模块被设计得相当友好,同时它也支持所有Visual Studio 语言,包括VB,C++以及C#,特别注意一下第三种语言,它流行的日子离我们不太遥远了。

ASP+怎样让你的生活更加简单?
对于今天的WEB程序员来说最大的挑战就是不断变化地浏览器的兼容性,以及它们不断升级的复杂性。在保证页面能在所有流行浏览器下工作的同时又得尽量地使用每个浏览器最新属性来建立更加具有交互式的页面,这简直就是一场恶梦。

更加可怕的就是对于不同的用户设备建立不同的网页。当然,在WAP手机和传统的浏览器上建立同等水平的页面是不可能,因为由于带宽的原因,在很多WAP手机中一次只能显示12字3行的文本信息。

一个最简单的解决办法就是动态地对不同的用户生成不同的输出,或者就是对不同的用户写多个页面。第二种方法没有效率,我想大多数地开发者都会选择第一种方法。但是这就意味着用户的每次点击都会让服务器判断应该向用户显示什么.

如果这一切可能,为什么不把这些过程自动化!?为了结束这一切,ASP+引入了一个新的服务控制的概念,它封装了一些普通的任务,提供了一种清晰的编程模块。他们同样帮助管理处理不同的用户类型。

服务器端HTML控制使得我们减少了不少的代码
ASP已经提供了一种在服务器上执行组件的能力,这些组件能够产生一些代码用以返回给用户。ASP+通过服务控制继承了这一概念。转换HTML元素到服务控制的需要仅仅是一个附加的属性:runat="server"(这个我们在ASP也见到过)

页面中的任何HTML元素都能使用这种方法标注,ASP+会在服务器上执行这些元素,并且对不同的用户产生不同的代码。


这种让HTML元素在服务器上执行的概念第一次看来有些奇怪,但是当你发现在它在这个页面变得完全功能化,你还有什么好想的了。

保持状态的问题
在我们建立交互页面和应用时最烦人的一个问题就是处理从客户端传来的数据,然后保持这些数据加以控制。ASP+的一个核心目标就是简化这一过程。这不会给程序员带来任何的困惑,而且能在大多数的浏览器上工作正常。

我们先来看看下面的代码。这段代码制作了一个简单的页面让用户输入电脑的名字和选择操作系统。OK,它本身不是个很烦人也不是令人兴奋的例子,但是它反映了我们常常做的一些事。当这个页面提交后,使用request.form集来取得相应的数据,然后用request.write显示它们.

<HTML>
<BODY>
<%
If Len(Request.Form("selOpSys")) > 0 Then
strOpSys = Request.Form("selOpSys")
strName = Request.Form("txtName")
Response.Write "You selected '" & strOpSys _
& "' for machine '" & strName & "'."
End If
%>
<FORM action="pageone.asp" method="post">
Machine Name:
<INPUT type="text" name="txtName">
<P />
Operating System:
<SELECT name="selOpSys" size="1">
<OPTION>Windows 95</OPTION>
<OPTION>Windows 98</OPTION>
<OPTION>Windows NT4</OPTION>
<OPTION>Windows 2000</OPTION>
</SELECT>
<P />
<INPUT type="submit" value="Submit">