zoukankan      html  css  js  c++  java
  • 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
    声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址!
  • 相关阅读:
    You are not late! You are not early!
    在同一个服务器(同一个IP)为不同域名绑定的免费SSL证书
    Vue.js Is Good, but Is It Better Than Angular or React?
    It was not possible to find any compatible framework version
    VS增加插件 Supercharger破解教程
    Git使用ssh key
    Disconnected: No supported authentication methods available (server sent: publickey)
    VS 2013打开.edmx文件时报类型转换异常
    asp.net MVC4 框架揭秘 读书笔记系列3
    asp.net MVC4 框架揭秘 读书笔记系列2
  • 原文地址:https://www.cnblogs.com/xugang/p/941566.html
Copyright © 2011-2022 走看看