ASP(從前) vs ASP.NET(之後)

來源:互聯網
上載者:User

                     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,那兒列出了所有的類及其使用說明。

請大蝦們指點江山,鄙人洗耳恭聽、查漏補缺。^_^

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.