1. 程式人生 > >Asp net夜話之一 asp net介紹

Asp net夜話之一 asp net介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

《asp.net夜話》封面

 

題外話:去年至今年以來,陸續寫過一些原創的文章了,很多是對原來所做專案的總結。所以並不是很系統很全面,都是針對某個知識點或者某個具體應用寫的,有些朋友建議我把自己的體會寫成一個系統的,這次算是一個嘗試吧,寫得不好的地方請大家儘量拋西紅柿不要丟磚頭。

之所以把這個系列叫做《asp.net夜話》,是有一些原因的,某不厭酒喜茶,酒越喝越糊塗,茶喝多了也仍然能保持清醒。白天很忙,所以每天回到家之後我會沏一壺茶,邊喝茶邊看書,偶有心得體會就會用文字記錄下來,過一段時間之後再將這些文字整理一下,覺得語句還算通暢的就發表在部落格上了。這個關於asp.net系列的文章將會都在晚上完成,所以我叫它《asp.net夜話》。這個系列偏重於實際於asp.net開發實戰中的理論和經驗方面的介紹。

 

本系列文章中會用到Macromedia Dreamweaver 8中文版、Microsoft Visual Studio 2005中文版和Microsoft SQL Server 2005中文版,請先安裝好相關軟體。

 

好了,開始我們的正題。

在今天我主要要介紹的有如下知識點:

XHTML語言

靜態網頁

動態網頁

WEB伺服器

Asp.net開發的預備知識

另外在看本節時,我可能會用到Macromedia Dreamweaver 8中文版,如果有條件,在自己的電腦上安裝一個會獲得更好的體驗。

 

XHTML語言

在網頁開發的早期,基本上都是使用HTML語言開發的,它因為語法要求比較鬆散,雖然對開發者來說比較方便,但是機器處理起來比較困難,所以在HTML的基礎上增加了XML的要求,這就形成了XHTML語言。XHTML說白了就是符合XML標準的HTML語言。當前版本的Macromedia Dreamweaver和Microsoft Visual Studio都支援XHTML開發。

以下是Dreamweaver建立的空HTML頁面:

以下是Microsoft Visual Studio2005建立的空白aspx頁面:

注意用紅線標出的部分,上面的表示我們建立的是符合XHTML標準的頁面。之所以要提到這些,是因為經常遇到一些初學者寫出的頁面不符合標準在Visual Studio2005中無法在檢視介面中檢視介面的效果。

靜態網頁
早期的網頁都是使用靜態網頁的,所謂的靜態網頁就是在網頁中不包含有需要在伺服器端執行的程式碼。比如一個含有javascript特效的HTML網頁或一個含有flash的HTML網頁,它們雖然在網頁呈現的效果會“動”,甚至還有執行程式碼,但是都是在客戶端執行的程式碼,因而算不上動態頁面。
靜態網頁的好處是伺服器只需要簡單地將網頁HTML創送給瀏覽器就行了。靜態的缺點是維護起來困難,不能使用資料庫帶來的好處。

動態網頁
動態網頁是網頁中包含有需要在Web伺服器執行的程式碼。當我們向Web伺服器請求一個動態網頁的時候,對於頁面的HTML程式碼部分,Web伺服器直接傳送給瀏覽器了,而對於需要在Web伺服器執行的程式碼,自然是Web伺服器執行該部分程式碼並將最終的執行結果也就是HTML程式碼傳送給瀏覽器,因為瀏覽器不認識動態程式碼。也就是不論以何種語言編寫的動態網頁,到達瀏覽器的時候都是HTML程式碼。
當然不同的程式語言編寫的動態網頁,Web伺服器會以不同的方式執行這些程式碼,更專業一點的說法是Web伺服器會交給不同的程式去執行這些程式碼,這些執行程式碼的程式我們稱之為指令碼引擎。Web伺服器將這些指令碼引擎的執行結果傳送給瀏覽器。目前常見的動態網頁jsp、asp、php及asp.net等。

Web伺服器
Web伺服器是用來接受客戶瀏覽器請求的,根據客戶端瀏覽器請求決定如何顯示網頁內容。當我們開啟一個網頁或者其它檔案時,Web伺服器會設定決定如何將該檔案的內容交給客戶端。
目前比較流行的Web伺服器有IIS(Internet Information Server)和Apache。前者是微軟開發的,具有微軟一貫的使用簡單的特點,它執行Windows作業系統上,而Apache是一個開源軟體,有Windows和Linux等系統下版本。我們做asp.net開發主要是使用IIS。
注意在某些系統安裝時,預設安裝可能沒有安裝IIS,需要我們手動安裝。具體步驟如下:
開啟控制面板,找到“新增/刪除Windows組建”,點選開啟介面,如下:

 

選中“Internet資訊服務(IIS)”選項,放入系統安裝盤,點“下一步”就可以安裝了。

在伺服器上部署asp.net網站的時候,需要.net的執行環境.net framework, .net frameworkle類似於Java的JDK,包含有.net程式執行環境和命令列編譯工具。如果伺服器上沒有安裝.net framework,這就需要從微軟網站下載,下載網址是:http://msdn2.microsoft.com/zh-cn/default.aspx。還需要注意的是如果先安裝.net framework再安裝IIS的話,需要執行一個命令向IIS註冊.net framework,這個命令可以在系統分割槽去找,假如作業系統安裝在C盤並且安裝的.net framework的版本為2.0的話,那麼這個檔案的路徑就是:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe,在“執行”視窗輸入:“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe –I”,如下圖:

點選“確定”即可完成註冊。

我們不妨再對伺服器進行稍微深入一點的探索,我們執行IIS軟體,會看到如下介面:

在“預設網站”節點上點選滑鼠,在彈出的選單中選擇“屬性”,會看到如下介面:

 

我們會看到共有8個選項卡,分別是“網站”、“ISAPI篩選器”、“主目錄”、“文件”、“目錄安全性”、“HTTP頭”和“自定義錯誤”及“ASP.NET”選項卡。這裡介紹幾個常用來進行配置的選項卡。
“網站”選項卡:網站選項卡是用來配置一些常規屬性的,比如我們的網站使用的埠號、IP地址等資訊的。預設Web伺服器的埠號是80,不建議修改。


“主目錄”選項卡:

在“主目錄”選項卡我們可以設定網站或者虛擬目錄的物理路徑,還可以設定動態網頁的執行引擎。點選“配置”選項卡,介面如下:

從上面的截圖可以看到,當我們正確安裝了IIS和.net framework之後,aspx頁面就能被正確執行了。選中.aspx點選編輯,會彈出一個新介面,如下面:

可以看出.aspx頁面都是交由aspnet_isapi.dll執行的。如果有自定的檔案,需要交由伺服器特殊處理,我們可以在這裡配置。
“文件”選項卡:

這個介面用於設定網站或者虛擬目錄的起始頁。所謂起始頁,就是當我們開啟一個網站或者虛擬目錄的時候,如果沒有特別指定訪問哪個網頁,Web會開啟的一個頁面。比如我們在瀏覽器位址列裡輸入www.163.com,會開啟網易的首頁,其實我們並沒有指定要訪問哪個頁面,伺服器採用一種預設機制來開啟某個特定頁面。在上面的介面中,我們設定了多個頁面作為起始頁,IIS會按照從上到下的順序檢查我們的網站或者虛擬目錄有沒有相應的頁面。如果找到了符合條件的網頁,那麼停止繼續查詢,把當前頁面傳送給客戶端瀏覽器。

“ASP.NET”選項卡
如果當前機器上安裝了多個.net framework版本,需要設定每個網站或者虛擬目錄的asp.net版本,這個需要與開發時所使用.net版本一致。Visual Studio2002開發的asp.net網站需要.net framework 1.0支援,Visual Studio2003開發的網站需要.net framework 1.1支援,Visual Studio2005開發的網站需要.net framework2.0支援。由於本人的機器上安裝了.net framework 1.1和.net framework2.0,所以下拉框中有兩個.net framework的版本供選擇。如下圖:

另外,還介紹一個特殊的資料夾。它位於系統分割槽下,如下圖:

因為我的系統分割槽是C,並且IIS使用了.net framework2.0,所以這個資料夾是C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files。這個資料夾是用來存放我們的asp.net網頁生成的dll檔案的。我們可以用Dreamweaver建立一個簡單的asp.net網頁Test.aspx頁面,步驟如下:
開啟Dreamweaver,選擇“新建”,並且依次選擇“動態頁”、“asp.net C#”,如下圖:

無需輸入任何程式碼,將這個檔案儲存在系統分割槽下的Inetpub/wwwroot目錄(因為本人的系統分割槽為C,所以是C:/Inetpub/wwwroot),檔名為Test.aspx。然後在瀏覽器輸入:http://localhost/test.aspx,將會看到一個空白頁面。不過我們此時再看C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files這個資料夾,此時多了一個子資料夾root,如下圖:


 
我們繼續開啟這個資料夾,到最後會發現如下情形:
 
也就是對於我們剛剛建立的那個空白的Test.aspx頁面,經過客戶端瀏覽器開啟之後,會在相應的.net framework執行版本下生成dll檔案。
利用ILDASM工具開啟那個dll檔案,我們可以看到這個dll檔案內部的資訊(注:ILDASM是隨著.net framework一同釋出的、使用者檢視.net程式碼編譯後生成的IL中間程式碼的工具)。
 
可以看見這個dll檔案中包含有ASP.test_aspx。
其實在我們第一次開啟asp.net網頁的時候,相應的網頁會被編譯成dll檔案,然後JIT來執行這個dll檔案。一旦這個檔案再次發生變化,下次第一個請求這個網頁時又會被編譯成dll檔案。並且為了防止檔名重名,生成的dll檔案採用了隨機命名。
這也就是asp.net網頁不同於asp或者php的地方:asp.net頁面在第一次請求的時候會被編譯成dll檔案,由JIT編譯執行,因而aspx頁面第一次被開啟的時候比較慢,而以後執行的時候就會比較快,因為以後執行的時候除非修改了程式碼否則就沒有必要重新生.dll檔案了;而asp和php網頁每次執行的時候都會被解釋執行,因而asp.net網站的執行速度要快。

 

說明:本文由周公原創,原文發表地址是:http://blog.csdn.net/zhoufoxcn/archive/2008/09/12/2915811.aspx,本注意,因為個人空間大小和下載速度受限,所以以後不再提供從本人主機上的下載地址,可以到www.verycd.com下載《ASP.NET夜話》的測試版視訊教程。地址是:http://www.verycd.com/topics/2730883/ ,線上觀看網址是:http://developer.51cto.com/developer/aspdotnet/

 

 

 

Asp.net夜話系列文章:

 

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述