ASP.NET開發簡明手冊

來源:互聯網
上載者:User
asp.net asp.net作為visual studio.net的一個組成部分,是從asp發展過來的,但並不是asp的簡單升級,而是microsoft推出的新一代active server pages。

asp.net是微軟的.net架構的重要組成部分,它使用vb.net、c#和jscript.net程式設計語言來實現動態網頁編程,這使得它的編程非常靈活和高效。同時asp.net是基於組件技術和物件導向的開發系統,程式員可以使用系統的豐富組件,如檔案上傳、e-mail發送、檔案操作、廣告組件等。不但如此,程式員還可以開發自己的組件,擴充asp.net的功能。

asp.net直接支援組件和code-behind技術,可以更好地實現程式碼和html代碼的分離。asp.net採用了新的叫做ado.net的資料庫訪問技術,可以大大地提高資料訪問的效率,也可以很容易地開發資料庫應用系統。

一、asp.net的運行、開發環境
1.asp.net的運行環境

(1)硬體要求

cpu: intel pentium ii 300 mhz (最好intel pentium iii 600 mhz)

記憶體: 96 mb (最好128 mb)

磁碟空間: 250 mb(完整安裝) 155 mb(快速安裝)

顯示: 800×600, 256色

cd-rom:倍速光碟機

(2)軟體要求

windows 2000 professional、windows 2000 server、windows 2000 advanced server、ie 5.5、ngws。

asp.net目前能支援c#、vb、jscrip等三種語言。

二、asp.net的安裝
1.安裝asp.net

可以從這裡下載asp.net的安裝程式:http://download.microsoft.com/download/platformsdk/trial/1812.10full/nt5/en-us/setup.exe。asp.net的安裝過程很簡單,只需按照簡單提示安裝即可完成。但是,如果你的電腦安裝了office 2000,建議安裝asp.net之前先備份\microsoft office\office\mso9.dll檔案,因為安裝完asp.net後,office會提示你註冊,否則的話office 2000會出現使用50次的限制。此時將備份的mso9.dll檔案覆蓋掉原來的檔案即可。

2.ngws

asp.net實際上是一個嶄新的運行結構的一部分,這個結構提供對所有windows應用程式的支援。這個結構是microsoft's next generation web services (ngws)關鍵區段。當你安裝了這個結構,你也就同時獲得了asp.net。這個結構同樣支援所有其他伺服器程式技術。

ngws 結構通過對可升級分布式應用添加(新的和增強服務)來擴充com的結構,此種結構常用做編寫可重複調用的可共同使用的軟體組件,這些新的和增強服務有:

一套統一的豐富的程式庫; 一個支援多語言的運行引擎;簡單地應用建立、調試以及維護;對分布式應用加強了可升級性;保護現已存在的軟體和投資。

三、asp.net概念解析
1.web form

表單,英文單詞是form。在.net架構裡,form是一個經常使用到的詞彙。web form代表了一個一個的web頁面。總的看來,form就像是一個容納各種控制項的容器,各種控制項都必須直接或者間接地與它發生依存關係。“表單”這個詞,在web程式員看來,總是和html裡面的“form”相混淆。“web表單”似乎翻譯成“web頁面”更加妥當一些。

大家還記得vb裡面的form實際上就是一個對象吧,它可以有自己的屬性、方法、事件等等。web表單,或者說web頁面,實際上是一個“對象” (object)。.net架構裡面一個比較重要的概念就是“對象”,所有的控制項都是對象,甚至資料類型都成了對象;每種資料類型都有自己特有的屬性和方法。我們在後面的編程中將體會到。

web form的尾碼名是aspx。當一個瀏覽器第一次請求一個aspx檔案時,web form頁面將被clr(common language runtime)編譯器編譯。此後,當再有使用者訪問此頁面時,由於aspx頁面已經被編譯過,所以,clr會直接執行編譯過的代碼,這和asp的情況完全不同。asp只支援vbscript和javascript這樣的解釋性的指令碼語言。所以asp頁面是解釋執行的。當使用者發出請求後,無論是第一次,還是第一千次,asp的頁面都將被動態解釋執行。而asp.net支援可編譯的語言,包括vb.net、c#、jscript.net等。所以,asp.net是一次編譯多次執行。

為了簡化程式員的工作,aspx頁面不需要手工編譯,而是在頁面被調用的時候,由clr自行決定是否編譯。一般來說,下面兩種情況下,aspx會被重新編譯:

(1)aspx頁面第一次被瀏覽器請求;

(2)aspx被改寫。

由於aspx頁面可以被編譯,所以aspx頁面具有組件一樣的效能。這就使得aspx頁面至少比同樣功能的asp頁面快250%!

網路表單把基於vb表單的高效率的優點帶到了網路應用程式的開發中來。網路表單支援傳統的將html內容與指令碼代碼混合的asp文法,但是它提出了一種將應用程式代碼和使用者介面內容分離的更加結構化的方法。引入的網路表單控制項用於為封裝通用使用者介面元素提供了一種機制。這些新的特點使得開發工具在支援vb應用程式的同時,也支援設計時模組,使得wysiwyg(所見即所得 (WYSIWYG))工具支援網頁布局。

網路表單控制項負責產生使用者介面,典型情況是在html表單中。asp.net提供了一套映射傳統的html使用者介面小組件(包括列表框,文字框和按鈕)的網路表單控制項和一套附加的更加複雜的網路控制項(如日曆和廣告板)。這些控制項的一個重要特點是,它們可以被編寫以適應用戶端的能力;同一網頁把大範圍的用戶端平台和表單因素作為目標。換句話說,網路表單控制項能“探測”到正在尋找表單的客戶,然後返回合適的可能是適合低級瀏覽器的html 3.2或是適於ie 5.0的動態html。

考慮到網路是一種無狀態的聯結模型,網路應用程式開發人員所面臨的一個很複雜的問題是,他們要對使用者與基於網路介面的互動作用作出反應。網路利用asp.net的體系架構提供了一套豐富的服務,以協助開發人員建立互動式網頁。這些服務的作用是使基於組件的、事件驅動的可程式化模組,對開發人員來說,非常象用戶端的表單程式設計。使用者與網頁互動作用的狀態管理的複雜性被asp.net網路表單和網路表單控制項隱藏起來了。對開發人員來說,提供的豐富資料繫結服務使得顯示通過資料訪問服務得到的資料變得非常容易。

代碼與內容的分離使asp.net網頁能動態地編譯到受控類中,用以提高效能。每個引入的http請求都被傳遞到一個新的網頁執行個體,因此開發人員不需要關心代碼中的執行緒安全性。

2.namespace(名字空間)

對象一直是windows開發環境中,程式開發的中心。不論在vb、vba、vc++、vbscript等都是如此,不同的開發環境有不同的對象,這些對象均是各個文法所提供“資源”,程式開發人員可以利用這些資源,來編寫所需的系統。

在過去的asp中,僅有server、request、response……等七個對象。而在asp.net的物件程式庫中卻分得很細。

例如在asp.net網頁中要通過sql語句獲得資料庫中的資料,必須使用“system.data.sql”,這是namespace(名字空間)名稱。在system.data.sql下,又有很多類(class)。每個類可視為一個對象,因為類下有屬性、方法和事件等

所以,最上層的namespace看作是同類型對象的集合,一個namespace之下可擁有多個類。它們之間的關係如圖: (圖)

3.檔案類型

asp 的檔案類型只有一種,其副檔名是.asp檔案。但在asp.net有很多的檔案類型:

(圖)

四、asp.net的控制項應用
asp.net提供四種類型的控制項,即伺服器端控制項、驗證控制項、html控制項和自訂控制項,充分利用這些控制項提供的功能,可以加快完成任務的速度。

1. 伺服器端控制項

在asp.net中,一切都是對象,web頁面本身也是一個對象。或者說,web頁面就是一個對象的容器。伺服器端控制項,英文是server control,就是放在這個容器裡面。

什麼是control?簡單地說,control就是一個可重用的組件或者對象,這個組件不但有自己的外觀,還有自己的資料和方法,大部分組件還可以響應事件。通過微軟的整合式開發環境(visual studio.net),你可以簡單地把一個control拖放到一個form中。

那為什麼叫“server control”?這是因為這些control是在伺服器端存在的。伺服器端控制項也有自己的外觀,在用戶端瀏覽器中,server control的外觀由html代碼來表現。server control會在初始化時,根據客戶的瀏覽器版本,自動產生適合瀏覽器的html代碼。主要的伺服器端控制項及其用途如下表所示:

(圖)

例1:伺服器控制項

id="txtlogin"

text="文字編輯"

font_face="arial" font_size="3"

backcolor="lightblue"

textmode="multiline"

heigth=10

ontextchanged="txtlogin_changed()"

/>


text="checkbox 1"

autopostback="true"

/>


repeatlayout="flow"

>

item 1

item 2

item 3

item 4

item 5

item 6

2. 驗證控制項

這是用以驗證web頁面中使用者輸入資訊是否有效非常重要的一種方法。在asp.net的web from架構中提供了一套驗證控制項,它們提供了強大易用的方式來檢查錯誤,如果需要的話可以顯示提示資訊給使用者。這些控制項可以分為如下表所述的幾種類型:(圖)

例2:驗證控制項


controltovalidate="txtlastname"

errormessage="last name is a required field"

forecolor="red">


forecolor="red"

controltovalidate="txtdeparturedate"

controltocompare="txtarrivaldate"

type="datetime"

operator="greaterthanequal"

errormessage="departure date cannot be earlier than arrival date.">


forecolor="red"

controltovalidate="txtage"

valuetocompare=0

type="integer"

operator="greaterthanequal"

errormessage="please enter a whole number zero or greater.">


controltovalidate="text1"

errormessage="you must enter at least 8 characters!"

clientvalidationfunction="validatelength(o, v)" >

zip:


id=txtzip_validation runat="server"

controltovalidate="txtzip"

errormessage="enter a valid us zip code."

validationexpression="[0-9]{6,6}">

3. html伺服器控制項

html控制項在伺服器端是可見的,所以我們可以根據它來按照我們的意願編寫。html控制項表現為一些可見的控制項。

html伺服器控制項直接對應到html元素,每一個html伺服器控制項都支援通用控制項的屬性和方法,它們都可以綁定到資料來源上。

(圖)

例3:html控制項樣本:

自訂頁面控制項

當然我們也可以產生更複雜的自訂控制項,在這裡就不多說了,有興趣請參考asp.net的協助檔案用c#、vb.net等來編寫功能強大的控制項,一般來說,這些控制項可以編譯成為.dll檔案,以供隨時使用。

五、 資料庫操作
asp.net中主要通過ado.net和dataset來完成對資料庫的操作。ado.net和asp中的ado相對應,它是ado的改進版本。dataset是ado.net的中心概念。你可以把dataset想象成記憶體中的資料庫。正是由於dataset,才使得程式員在編程式時可以屏蔽資料庫之間的差異,從而獲得一致的編程模型。dataset支援多表、表間關係、資料約束等。這些和關聯式資料庫的模型基本一致。過去,資料處理主要依賴於兩層結構,並且是基於串連的。串連斷開,資料就不能再存取。現在,資料處理被延伸到三層以上的結構,相應地,程式員需要切換到不需連線的應用程式模型。這樣,datasetcommand就在ado.net中扮演了極其重要的角色。它可以取回一個dataset,並維護一個資料來源和dataset之間的“橋”,以便於資料的訪問、修改和儲存。datasetcommand自動將資料的各種操作變換到資料來源相關的合適的sql語句。

ado.net訪問資料庫的步驟是:

(1)建立一個資料庫連結;

(2)請求一個記錄集合;

(3)將記錄集合暫存到dataset;

(4)如果需要,返回第2步;(dataset可容納多個資料集合)

(5)關閉資料庫連結;

(6)在dataset上作所需要的操作。

dataset在內部是用xml來描述資料的。由於xml是一種與平台無關、語言無關的資料描述語言 (Data Description Language),而且可以描述複雜資料關係的資料,比如父子關係的資料,所以dataset實際上可以容納具有複雜關係的資料,而且不再依賴於資料庫連結。

我們以一個非常簡短的例子來說明資料庫的串連、檢索,更多的操作如增加、刪除、修改等請參考asp.net文檔。

例:資料庫連接、檢索
asp.net的功能還有很多,這裡介紹的只是它的一些基礎功能,進階一些的功能如web應用程式、web service、效能最佳化、xml整合、三層結構和訊息佇列msmq等需要你去參考相應的專業書籍以作全面瞭解、掌握。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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