• ASP(从前) vs ASP.NET(之后)


                         ASP(从前) vs ASP.NET(之后)
    前奏
    回顾ASP的历史:

    在没有ASP的时代,人们对静态页面不满足。便出现了CGI(Common Gateway Interface,通用网关接口)ISAPI(Internet Server Application Program Interface,互联网服务器应用程序接口)来编写动态页面。用Perl或者VC进行编写,HTML标识嵌入代码中,维护相当困难……

    这个时候,ASP出现了……它能够将代码直接嵌入HTML中,还能够通过内置的组件(如ADO:ActiveX Data Objects)实现强大的功能。它的出现给网站开发带来一阵狂潮……

    (1)ASP 1.0:作为IIS的附属产品免费发送的,它的外部的组件需要实例化。

    (2)ASP 2.0:它和IIS 4.0结合就有可能建立ASP应用,每个组件都有自己单独的内存空间,内置的MTS(Microsoft Transaction Server)也使得制作组件变得简单。

    (3)ASP 3.0:随着Windows 2000和IIS 5.0一起到来。它不是简单的对ASP的扩充,在核心上作了相当大的改进,把很多事情交给了COM(Component Object Model,组件对象模型)来做。微软结合MTS与COM核心环境做出了COM+,这便让主机用一种新的方法来使用组件。

    再后来,ASP.NET出现了,它并不是ASP的简单升级……

    正文
    <1> ASP vs ASP.NET语言

    ASP只接受VBScript,JavaScript为程序语言。它无法进行像传统编程语言那样的底层操作,只能借助C++、VB、JAVA等别的语言编写的组件。
    ASP.NET 支持任何一种可以编译成MSIL(Microsoft Intermediate Language)的程序语言,凡是符合CLR(Common Language Library)规范的语言都可以编写ASP.NET。目前最主要的有3种:
    (1)VB.NET:取代了功能较弱的VB Script,由VB6改进而来;
    (2)C#:由C++语言改编而来;
    (3) JScript: 由JavaScript改进而来;
    (J#在我还没有用,它就在VS2005中夭折,我不知所云 ^_^)

    附加:
    MSIL是一种中介语言,介于高级语言(如VB)和机器码之间的语言,在ASP.NET下面,我们撰写的程序语言会先编译成MSIL,然后MSIL再被编译成机器码加以执行。过程如图1:

     

    MSIL程序非常接近机器码,从MSIL编译成为机器码加以执行的速度非常快,而介于MSIL与机器码之间的编译器称为JIT(just in time)编译器,通过不同机器的JIT编译器,MSIL可以及时地被编译成为不同的机器码,然后在不同的机器中执行。如图2:
     


    由于不论用何种语言开发ASP.NET,所开发的组件都会编译成为MSIL,因此不管网页开发者使用的是哪一种程序语言,都可以使用这些组件,这样就达到了共享资源、节省成本的目的。

    <2> ASP vs ASP.NET 语法

    在ASP中,Request、Request.QueryString和Request.Form返回的集合均为字符串数组类型;
    在ASP.NET中,Request、Request.QueryString和Request.Form返回的集合均为字符串类型;

    <3> ASP vs ASP.NET 语义
    (1)
    ASP允许在单页面中使用多种语言开发,这对脚本库方案很有用;
    ASP.NET在单页面中仅支持单语言开发(因为ASP.NET需要编译才能运行),但在同一个项目中允许使用不同的语言。(使用用户控件可以实现在单页面内集成不同语言)
    (2)
    ASP中声明的函数在“<%   %>”标记中,并支持页面的呈现函数,如:<%=Now %>;
    ASP.NET中声明的函数必须在“<script runat=server></script>” 标记中,并且ASP.NET不支持页面的呈现函数;

    <4> ASP vs ASP.NET执行

    ASP是解释执行的。当ASP网页(以.asp为后缀名)被浏览时,IIS会启动asp.dll来执行。
    ASP.NET是编译执行的,它是运行服务器上编译好的CLR代码。而ASP.NET网页(以.aspx为后缀名)被浏览时,IIS则会启动W3wp.exe (或是aspnet_wp.exe ,或是xspwp.exe)来执行。

    因为两者的执行文件不同,因此安装ASP.NET之后,不但不影响已有ASP网页的运作,而且ASP网页及ASP.NET网页可以共存于一个网站。

    <5> ASP vs ASP.NET效率

    相对于ASP的执行过程,ASP.NET的执行过程多了一次编译过程,因而在ASP.NET网页第一次被执行时会比ASP慢一些,但第一次被浏览后,MSIL会被储存下来,所以当同一网页第二次被浏览时,只需要花费从MSIL编译到机器码然后执行的时间,结果会比ASP快很多。比较如下:

    ASP.NET网页第二次被浏览所用时间〈 ASP网页所用时间〈 ASP.NET网页第一次被浏览所用时间

    <6> ASP vs ASP.NET接口

    在.NET Framework发布之前:
    (1)ASP是以asp.dll所提供的对象为接口;( asp.dll提供了Application、Session、Request、Response、Server 等很有限的对象,通过这些对象,ASP程序才得以获取表单数据、读取系统信息、输出到浏览器、引用ActiveX对象等。)

    (2)应用程序是以Win32 API及COM对象为接口;

    在.NET Framework发布之后:
    不管是ASP.NET或是应用程序都是以.NET Framework所提供的类库为接口。
    见图3:
     

    到了ASP.NET 以后,原来的asp.dll所提供的对象全部转移成为.NET Framework类库的一小部分。而.NET Framework 类库所提供的类多达数百种,可以说应有尽有。ASP.NET网页开发却可以像Windows程序一样,使用功能异常强大的.NET Framework类库,网页开发变得便利无比。

    要查看提供了哪些类,可打开.NET Framework SDK文件,找到 .NET Framework Reference,那儿列出了所有的类及其使用说明。

    请大虾们指点江山,鄙人洗耳恭听、查漏补缺。^_^

     

    作者: XuGang   网名:钢钢
    出处: http://xugang.cnblogs.com
    声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址!
  • 相关阅读:
    Mac下Android studio搭建Android开发环境【新手】
    2016年美国数学建模比赛(MCM/ICM) E题环境科学 Are we heading towards a thirsty planet? 人工精准翻译。
    一张图让你快速学会UML(聚合、组合、依赖、继承、接口、类)
    《黑客与画家》——读书笔记
    YC(Y Combinator)斯坦福大学《如何创业》课程要点记录(粗糙)
    《你的灯亮着吗?发现问题的真正所在》——读书笔记
    sublime使用
    spring AOP面向切面编程
    LinkedHashMap源码浅析jdk1.7
    增强型for循环与集合
  • 原文地址:https://www.cnblogs.com/xugang/p/941566.html
Copyright © 2020-2023  润新知