什麼是.NET?
.NET 是一個總括性的專門術語,包括了微軟的核心策略、計畫與未來的願景。在這 個策略中的核心是.NET Framework,用來提供所有其它技術的基礎。Framework 本身 包含了很多的元件,當然,ASP.NET 就是其中一個。
可以將.NET Framework 的討論分成一些特定的主題:
「媒介語言」(Intermediate Language)– 所有我們所撰寫的程式碼在執行 以前都會先編譯成一種更抽象、經過整理的形式。不論您使用的是哪一種.NET 語言,從它所建立的、整理過的程式碼都是由 MSIL — .NET 的一般語言 — 所 定義。
Common Language Runtime(CLR)
這是負責執行 MSIL 程式碼的一種複 雜的系統,負責跟 Windows 與 IIS 交談的所有瑣碎的工作。 .NET Framework 類別庫 – 這些程式碼函式庫包含了很多有用的功能,可以 讓我們輕易地加入到應用程式中,讓複雜的工作變得更直觀、簡單。
.NET 語言 – 一些遵守特定結構要求的程式語言(由 Common Language Specification 所定義)。因此,可以被編譯為 MSIL。您可以使用其中的任何 語言 — C#、或 VB .NET — 來開發應用程式,並且讓應用程式由多種語言所 構成。
ASP.NET –.NET Framework 將本身顯露到 Web 的方法,使用 IIS 來管理簡單 的網頁程式碼,讓它們可以被編譯成完整的.NET 程式。
然後,用.NET 程式來 產生傳送到瀏覽器的 HTML。 ASP.NET 網頁的基本組成 2-3 Web 服務 – 儘管不是.NET 嚴格的一部分,但 Web 服務的確是由.NET 所啟 用。它們是一些可以透過 Web 存取的元件,而且可以被用來做任何事情,包 括:新聞標題、天氣預報、股票交易、病毒防護、作業系統更新…等。
MSIL 是.NET 著名的「一般語言」(Common Language),
開啟後的程式碼
點選左下方的 設計
Server伺服器 and Client客戶端
網頁提供者將其製作好的網頁放在 Server(伺服器)上,稱為伺服端(Server端)。
上網者準備好上網的機器,然後透過網際網路來瀏覽網頁製作者所提供的網頁稱為客戶端(Client端) 。
網頁提供者將其製作好的網頁放在 Server(伺服器)上,稱為伺服端(Server端)。
上網者準備好上網的機器,然後透過網際網路來瀏覽網頁製作者所提供的網頁稱為客戶端(Client端) 。
ASP.NET 網頁
ASP.NET 網頁必須透過 IIS 來執行方才有效,如果直接以瀏覽器或其他工具(例如 FrontPage)來開啟 .aspx 檔案,則 ASP.NET 網頁中的 ASP 程式是不會被執行的。
現在 HTML 編輯工具已經相當普遍,要建立一個 .htm 的網頁(文件),只要使用自己最習慣的 HTML 編輯工具(例如FrontPage、Dreamweaver 、Word…) 加以編輯即可。
我們會利用 ASP 程式動態建立 HTML 格式的文件,然後下傳到瀏覽器端,所以不可不瞭解 HTML 語言的語法。
由於HTML並不是程式語言,因此由HTML 所構成的文件並不會因時因地產生變化,所以便有「靜態」(static)網頁之稱。為了讓網頁具備動態變化的能力,不管是瀏覽器或 Web Server 製造廠商,都著手將程式加到單純的 HTML 文件中,而發展出動態網頁的技術。
要產生動態網頁,一定要撰寫程式,至於該選擇哪一種程式語言,網頁製作者便要抉擇。
程式的執行端可分成客戶端(瀏覽器)及伺服端(Server),如果程式在瀏覽器上面執行,則 Server 必須把程式碼傳下來,而瀏覽器也要聰明到可以執行 Server 所傳輸下來的程式,而如果程式在 Server 端執行,則 Server 只要把執行的結果傳下來即可。
什麼是CGI
早期在 Server 端執行的程式,最有名的莫過於 CGI(Gateway Interface),對網路族來說,CGI 好Common像是很技術的東西,但實際上,它的觀念卻與 UNIX 或 DOS 的 Shell 很像。
對 Shell 而言,使用者是利用鍵盤輸入指令,然後由 Shell 解譯此一指令並且啟動對應的程式。
對 CGI 而言,指令則是來自於瀏覽器,以 CGI 介面傳送到伺服器之後,再由伺服器解譯後啟動伺服器之中對應的程式。
從CGI到ASP
早期在 Server 端執行的程式,最有名的莫過於 CGI(Gateway Interface),它的觀念與 UNIX 或 DOS 的 Shell 很像。
對 Shell 而言,使用者是利用鍵盤輸入指令,然後由 Shell 解譯此一指令並且啟動對應的程式。
對 CGI 而言,指令則是來自於瀏覽器,以 CGI 介面傳送到伺服器之後,再由伺服器解譯後啟動伺服器之中對應的程式。
CGI的程式問題
CGI 可以說沒有任何技術可言,如果 Web 伺服器提供有 CGI 介面程式(可能的形式有原始程式碼、程式庫、動態連結程式庫…,視 Web伺服器而定),那麼撰寫伺服端的 CGI 程式與一般程式是沒什麼差別的。
不過在實務上,同樣的作業系統,若 Web 伺服器不同,則 CGI 介面程式也會不同,過去常有人抱怨:「Web 伺服器由 WebSite 換成 IIS 之後,原來的 CGI 程式就無法使用了」,原因就是因為不同 Web 伺服器所提供的 CGI 介面程式不同所致。
CGI vs. ASP
ASP 程式也算是 CGI 程式,或者說是CGI 程式的改良版,它跟 CGI 程式一樣是在伺服端執行的,但是它有以下優點:
1.CGI 介面物件化:在CGI 程式中收集網頁資料最麻煩的事情是解析瀏覽器上傳的資料(主要是為了解析特殊字元及中文碼),若使用 ASP 程式來收集網頁資料,則 ASP.NET 會代為解析,並且轉換成物件供 ASP 程式來讀取,簡單地說,就是 ASP.NET 提供有豐富的物件(以下簡稱「ASP 物件」)讓 ASP 程式簡化 CGI 的相關處理工作。
2.可以使用 .NET 物件類別:除了 ASP 物件外,舉凡 .NET Framework 系統底下的物件也都可以讓 ASP 程式來使用,使其成為 ASP 網頁製作中的資源,而由於 ASP 程式可以使用 .NET Framework 的物件類別,也使得 ASP 程式可以做的事情比傳統的 CGI 程式要多出許多 。
在 ASP.NET 網頁的製作中,我們可以選擇 Visual Basic.NET(以下簡稱 VB.NET 或 VB)、Visual C#.NET、Java Script…等做為撰寫 ASP 程式的語言。
————————————重點整理——————————————
1.單純由 HTML 所構成的網頁是靜態的網頁,欲產生動態網頁必須撰寫程式。
網頁程式的執行可以分成在客戶端執行及在伺服端執行兩種狀態,
而 ASP 是在伺服端執行的程式。
2.開啟 .aspx 檔案,並不會讓檔案中 ASP 程式被執行。
要讓 ASP 程式被執行的條件是:(1) 系統安裝有 IIS (2) 以瀏覽的方式瀏覽 ASP.NET 網頁。
3.ASP 已經將 CGI 的介面封裝成比較容易使用的物件,如果已經開始使用 ASP,就可以不必再學 CGI。
4.HTML 是製作 ASP.NET 網頁很重要的基礎。
5.VB.NET、Visual C#.NET 及 Java Script…等都可以用來撰寫 ASP 程式,而本書將採用 VB.NET 做為撰寫 ASP 程式的語言。