ASP vs ASP.NET
ASP 並不是一種語言
而是指由 WEB 伺服器(IIS)所提供的網頁語言執行環境
ASP (Active Server Pages) default scripting language is VBScript.
ASP 網頁本身並不限定使用那種網頁語言(通常VBS),IIS要有該語言直譯器。
ASP vs ASP.NET
ASP.NET不是ASP版本的更新,而是一個全新的統一Web開發平臺。
ASP的副檔名為「.asp」,ASP.NET的副檔名為「.aspx」
ASP是以直譯式語言架構,每次讀取網頁皆需逐行編譯程式碼,執行效率不佳;
而ASP.NET則是編譯式語言,執行編譯過的原生機器碼使效能大幅提升。
ASP.Net 卻支援更多的語言,包括C#, C++, JScript, VB...等等
IIS Web 伺服器容許ASP和ASP.NET網頁並存,
不會互相干擾,但要注意ASP和ASP.NET不能共用session和應用程式狀態。
.NET Framework 是 ASP.NET 的基礎
包含Common Language Runtime和.NET Framework類別庫。
.NET Framework 類別庫(system是類別庫中最基底的服務)
1. 基本類別(System): 程式的基本功能,例如 IO、資料型態、記憶體、Collections
2. ADO.NET類別(System.Data): 資料處理的程式庫,例如資料庫或是 XML資料
3. Framework 類別: 供應用程式使用者介面或是網路服務等類別,例如WinForm、WebForm
Common Language Runtime
.NET可以跨語言,就像是Java有JVM可以跨平台
Java虛擬機器,就是指使用軟體來模擬硬體機器的行為
而.NET提出語言的統一標準CLS(Common Language Specification)
基本上程式設計師才不會鳥你,所以需要"編譯器"幫忙統一
符合CLS的語言編譯器,都會把程式編譯成另一種語言,
叫做MSIL(Microsoft InterMediate Language),算是一種中介語言
把VB經過符合CLS的編譯器來編譯,這樣的語言就稱之為VB.NET(還有其他的優化)
Q:誰來執行MSIL A:就是CLR(類似VM) 隔絕MSIL和硬體
另外提供的程式一些管理機制,例如 GC(Garbage Collection 圾垃回收)、
CTS(Common Type System)、例外處理(Exception Handling)、執行緒的支援(Thread)等等
實際上的差異
安全: ASP本身沒有安全措施‧。在ASP.Net,像一個Application,例如:權限設定、加解密等
編譯: ASP.Net網頁,第一次開會比較慢,因為需要進行編譯
設定: ASP.Net網頁設定檔web.config,可在伺服器跑時寫入設定,把密碼等重要字串放入是安全的!
ASP.NET的寫法有分成
Inline code(前置程式碼) -- C#直接寫在abc.aspx
Code behind(後置程式碼) -- C#寫在abc.aspx.cs(推薦)
其中Response是最常用的物件(asp時代就有)
最常用的有.Write(), .Redirect(), .End()結束程式方法
Inline Code要寫C# code
要加上下列標籤
不然預設會採用VB的語法(句尾加上;會error)
<%@ Page Language="C#" %>