精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的延伸★>>ASP.NET>>从ASP到ASP+

主题:从ASP到ASP+
发信人: ambushaa(十面埋伏)
整理人: dongbao(2001-05-26 23:42:02), 站内信件
  ASP会变得很红,恐怕连微软也觉得意外。因为ASP一直都附属于IIS,算不上独立的产品。IIS版本与ASP版本的对应如下:
 -------------------
 IIS版本   附带的ASP版本
 -------------------
 IIS3.0    ASP1.0
 IIS4.0    ASP2.0
 IIS5.0    ASP3.0
 -------------------
  有人会用1.0、2.0、3.0来区分ASP的版本,但笔者不以为然。因为从ASP1.0到3.0。微软并没有花多大心思来改良,只是因为IIS升级了,所以ASP跟着做微幅的改版,因此从ASP1.0到3.0,在功能上并没有显著的变化,所以不管ASP1.0、2.0还是3.0,笔者都称之为ASP。
  随着ASP使用者越来越多,希望ASP更好的声音也越来越多,也许是从善如流,也许是为了推广下一代网络操作平台(.NET Framework),微软针对ASP使用者做了市场调查,找出ASP必须改良的地方,而开发了下一代ASP,也就是ASP+(ASP.NET)。
  笔者相信您最关心的地方还是ASP+增加了哪些功能,对于未来的网页制作有着怎样的影响,接下来我们就进入这个主题吧!

从程序语言谈起

  很多写过VB程序的人刚进入ASP网页制作的时候,者有一个共同的感觉--为什么ASP不用VB为程序语言,而要采用功能较少的VBScript(以下简称VBS)?一般的解释是VBS较小,容易解释,执行效能优于VB。
  除了VBS以外,ASP也接受JavaScript(以下简称JS)为程序语言,但其它的程序语言则完全排除在外。
  到了ASP+后,可以使用哪些程序语言呢?在微软所提供的文件中,我们可以看到以下三种语言:

VB:功能较强的VB取代了VBS。
C#(C Sharp):改良自C++的程序语言。
JS:只有它维持不变。

  不过ASP+并不仅仅支持以上三种语言,举凡可以编译成MSIL(Microsoft Intermediate Language)的程序语言,都可以成为制作ASP+网页的程序语言。
  MSIL是另一种新的语言吗?制作ASP+网页需要重新学习这种程序语言吗?别紧张,MSIL是一种中介语言,介于高阶程序语言(例如VB)及机器码之间的语言。在ASP+底下,我们撰写的程序语言会先编译成MSIL,再被编译成机器码加以执行,过程如下:

[程序]-编译->[MSIL]-编译->[机器码]->执行

  为什么不直接将程序编译成机器码加以执行呢?首先笔者说明的是MSIL十分接近于机器码,从MSIL编译成机器码后加以执行的速度很快,而介于MSIL与机器码之间的编译称为JIT(Just in time)编译器,通过不同的机器的JIT编译器,MSIL可以即时地被编译成不同的机器码,然后在不同的机器中执行。如下图:

    -AlphaJIT-->[Alpha机器码]--执行->[Alpha PC]
[MSIL]-x86JIT--->[x86机器码]---执行->[x86 PC]
    -PowerPCJIT->[PowerPC机器码]-执行->[Power PC]

  这么说来,能够跨平台是MSIL的优点了?有句话说:“黑猫白猫,抓住老鼠就是好猫”,跨不跨平台是微软的事,对ASP+的开发者来说,关心的是运作模式会不会影响执行效能,因为较于ASP的运作模式,ASP+的运作模式多一次编译工作。

 ASP+
 [VB程序]-编译->[MSIL]---编译-->[解释器]->执行
           ASP
           [VBS程序]-编译-->[解释器]->执行

  关于执行效能,且听笔者说明,参考上图,ASP+阶段二的编译执行速度优于ASP,但ASP+阶段一的编译速度却慢于ASP,简单地说ASP+阶段一与阶段二合起来的时间大于ASP执行时间。
  这么说来,ASP+岂不是要比ASP还慢?其实不然。要分以下两种情况:

第一次被浏览:[ASP+]-编译->[MSIL]-编译->[机器码]->执行
第二次被浏览:[MSIL]-编译->[机器码]->执行

ASP+网页第一次被浏览时,会经过两阶段编译,所以较慢。但第一次被浏览后,MSIL会被存储下来,所以当同一网页第二次被浏览时,只从MSIL编译到机器码,较ASP网页来得快。

  笔者说过,“举凡可以编译为MSIL的程序语言,者可以成为ASP+语言”,这意味着我们可以采用任何一种语言(假设该语言存在MSIL编译器)来写ASP+。此一特性对大型工程的开发特别方便,因为每个人的专长不同,在不限定语言的情况下,把有不同专长的参与工程的人员组织起来将更容易。
  在工程进程中,也许有的人用C#,有的人用VB,有的人用其它开发工具,但由于最终者会编译成为MSIL,而达到充分共享资源节省成本的目的。

.NET Framework

  .NET Framework是微软最新发布的程序开发及网页制作平台,在.NET Framework发布之前,程序是以Win32 API及COM对象为接口,ASP网页则是以asp.dll所提供的对象为接口的。但.NET Framework发而以后,不管是程序还是ASP网页者是以.NET Framework所提供的对象类别库为接口。
  有关程序的运作方式,笔者暂不讨论,在网页制作方面,对以往的ASP网页来说,其运作完全来自asp.dll文件,asp.dll提供了Application、Session、Request、Response、Server…等对象,通过这些对象,ASP程序才得以执行。到了ASP+以后,asp.dll提供的对象全部转移成为.NET Framework对象类别库的一小部分。
  从asp.dll到.NET Framework对象类别库,对ASP+网页制作有什么帮助呢?在于.NET Framework对象类别库,.NET Framework所提供的对象类别多达数百种,可以说是应有尽有,对网页制作来说,便利无比。
  想要了解.NET Framework提供哪些对象类别库,可以开启.NET Framework文件,然后展开文件中的.NET Framework Reference。

  想想,以往的ASP网页制作只能使用asp.dll提供的对象,以后的ASP+网页制作却可以象Windows程序一样,使用功能强大的.NET Framework类别库,可想而知,将来的ASP+网页制作将有革命性的发展。如果说ASP+将取代现在所有的网页后台制作工具,我想是绝不为过的。 



----
>>>>>>>-------------------------->
Give me a reason to stay here...
<--------------------------<<<<<<
  

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]