人妻无码中文字幕_人人妻人人澡人人爽人人精品_少妇性l交大片_亚洲国产精品网站在线播放

狼邦科技  
專注于高品質網站建設、軟件開發、視頻監控、系統集成、網絡工程等信息化服務于一體的科技公司
網站首頁 關于狼邦 產品中心 案例展示 解決方案 新聞資訊 聯系方式
您當前的位置:首頁 >> 詳細內容
 
詳細內容  
微軟.NET戰略和ASP.NET簡介

ASP.NET又叫ASP+,但并不僅僅是ASP的(de)簡(jian)單升級,而是MicroSoft推出(chu)的(de)新一(yi)代Active Server Pages腳本語言(yan)。ASP.NET是微軟發(fa)展的(de)新型體系(xi)結構.NET的(de)一(yi)部分,它的(de)全新技(ji)術架構會讓每一(yi)個(ge)人的(de)網絡(luo)生活都(dou)變得更簡(jian)單。
首先需(xu)要特別指出的(de)(de)是(shi),ASP.NET不僅僅只是(shi)有了一個新界(jie)面(mian)并且修(xiu)(xiu)復了一些(xie)缺(que)陷的(de)(de)ASP3.0的(de)(de)升(sheng)級(ji)(ji)版本(即不同于ASP2.0升(sheng)級(ji)(ji)到ASP3.0的(de)(de)轉(zhuan)變)。更為重要的(de)(de)是(shi),ASP.NET吸收了ASP以(yi)前版本的(de)(de)最大優點并參照Java、VB語言的(de)(de)開發(fa)優勢加入(ru)了許多新的(de)(de)特色,同時也修(xiu)(xiu)正了以(yi)前的(de)(de)ASP版本的(de)(de)運(yun)行錯誤。
要(yao)了(le)解ASP.NET的(de)真實面目,我(wo)們首(shou)先(xian)就(jiu)得了(le)解一下微軟.NET戰略(lve)。
1.1.1 微(wei)軟.NET的歷(li)史
隨著網絡(luo)經濟的(de)到來,微軟公司希望幫助用戶,能夠在任(ren)何時候(hou)、任(ren)何地方、利用任(ren)何工具都可以獲(huo)得網絡(luo)上的(de)信(xin)息,并享受網絡(luo)通信(xin)所帶來的(de)快樂。.NET戰略(lve)就是為著實(shi)現這樣的(de)目標而(er)設立的(de)。
微軟公開宣布,今后將(jiang)著重于網(wang)絡(luo)服務(wu)和網(wang)絡(luo)資源(yuan)共享的開發工作,并稱,將(jiang)會(hui)為公眾提供更加豐富、有用的網(wang)絡(luo)資源(yuan)與服務(wu)。
微軟(ruan)新一(yi)代平臺的(de)正(zheng)式名稱(cheng)叫(jiao)做“新一(yi)代Windows服(fu)務”(NGWS),現在微軟(ruan)已經給這(zhe)個平臺注(zhu)冊了正(zheng)式的(de)商標(biao)——MicroSoft.Net。在.Net環境中,微軟(ruan)不(bu)僅(jin)僅(jin)是(shi)平臺和產品的(de)開(kai)發者(zhe),并且(qie)還(huan)將(jiang)作為架構(gou)服(fu)務提(ti)(ti)供(gong)商、應(ying)用程序提(ti)(ti)供(gong)商,開(kai)展全方位的(de)Internet服(fu)務。在談及這(zhe)個平臺中使用的(de)新技術,微軟(ruan)透露,它將(jiang)在.Net環境中提(ti)(ti)供(gong)更多(duo)新產品和一(yi)攬子的(de)全套服(fu)務。

??? MicroSoft .NET平(ping)臺的(de)基本思想是:
側重點從連接到互聯(lian)網的(de)(de)單一(yi)網站或設備(bei)上,轉移到計算(suan)機、設備(bei)和(he)(he)服務群組上,使其通力合作(zuo),提供(gong)更(geng)廣泛更(geng)豐富的(de)(de)解決方(fang)案。用(yong)戶將(jiang)(jiang)(jiang)能夠控制信息的(de)(de)傳送方(fang)式、時間和(he)(he)內容。計算(suan)機、設備(bei)和(he)(he)服務將(jiang)(jiang)(jiang)能夠相輔相成,從而(er)(er)提供(gong)豐富的(de)(de)服務,而(er)(er)不是像孤島那樣,由用(yong)戶提供(gong)唯一(yi)的(de)(de)集成。企業可以提供(gong)一(yi)種方(fang)式,允許用(yong)戶將(jiang)(jiang)(jiang)它們(men)的(de)(de)產品和(he)(he)服務無縫地(di)嵌入自己的(de)(de)電子構架中。這種思路將(jiang)(jiang)(jiang)擴展二十(shi)世紀八(ba)十(shi)年代(dai)首先由PC賦予的(de)(de)個人權限。

MicroSoft .NET將開(kai)(kai)創(chuang)互(hu)聯網(wang)(wang)的(de)新局(ju)面,基于HTML的(de)顯示信(xin)息將通過可(ke)(ke)編程的(de)基于XML的(de)信(xin)息得到增強。XML是經“萬維網(wang)(wang)聯盟(meng)”定義的(de)受到廣泛(fan)支持的(de)行(xing)(xing)業標準(zhun),Web瀏覽(lan)器標準(zhun)也是由該(gai)組(zu)(zu)(zu)織(zhi)創(chuang)建的(de)。微軟公(gong)司為開(kai)(kai)發它(ta)投入了(le)大量精力,但它(ta)并不是MicroSoft的(de)專有技術。XML提供了(le)一(yi)種(zhong)從數(shu)據的(de)演(yan)示視圖分(fen)離出實際(ji)數(shu)據的(de)方式(shi)。這是新一(yi)代(dai)互(hu)聯網(wang)(wang)的(de)關鍵(jian),提供了(le)開(kai)(kai)啟信(xin)息的(de)方式(shi),以便對信(xin)息進(jin)行(xing)(xing)組(zu)(zu)(zu)織(zhi)、編程和(he)編輯(ji);可(ke)(ke)以更有效地將數(shu)據分(fen)布到不同的(de)數(shu)字設備(bei);允許各站點進(jin)行(xing)(xing)合作(zuo),提供一(yi)組(zu)(zu)(zu)可(ke)(ke)以相互(hu)作(zuo)用的(de)“Web服務(wu)”。
1.1.2 微軟.NET的介(jie)紹
1.1.2.1? MicroSoft .NET綜述
MicroSoft .NET平臺包括用于創建(jian)和操作新(xin)一代(dai)服務(wu)的(de)(de).NET基礎結構和工(gong)具;可以啟(qi)用大(da)量客(ke)戶機的(de)(de).NET User Experience;用于建(jian)立新(xin)一代(dai)高度分布(bu)式(shi)的(de)(de)數以百萬(wan)計的(de)(de).NET積木式(shi)組件(jian)服務(wu);以及(ji)用于啟(qi)用新(xin)一代(dai)智能互聯網設備的(de)(de).NET設備軟件(jian)。
MicroSoft .NET產品和(he)服務(wu)—包(bao)括Windows.NET,連同建立(li)積木(mu)式服務(wu)的核(he)心(xin)集成套件(jian);MSNTM .NET;個人訂購服務(wu);Office.NET;Visual Studio .NET;以及用于(yu).NET的bCentralTM。

.Net環境(jing)中的突破性改進(jin)在于(yu):

1.?使用統一的(de)Internet標準(如(ru)XML)將(jiang)不同(tong)的(de)系(xi)統對接(jie);

2.?這是Internet上(shang)首個(ge)大規模的高度分布式應用服務架構;

3.使用了一個名為(wei)“聯盟(meng)”的管理程序(xu),這個程序(xu)能全面(mian)管理平臺中運行的服務程序(xu),并且為(wei)它(ta)們提供強大的安(an)全保護后臺;

.NET平臺包括(kuo)如下組件:
?
1.用(yong)戶數據(ju)訪問技術。其中包(bao)括(kuo)一個新的(de)(de)基(ji)于(yu)XML的(de)(de)、以瀏覽器為組件的(de)(de)混合信息?????? 架構,叫(jiao)做“通用(yong)畫板”;
?
??? 2.基于Windows DNA 2000的構建和(he)開發(fa)工(gong)具;

??? 3.一(yi)系列(lie)模塊化的服務,其中(zhong)包括認證、信息傳遞、存儲、搜(sou)索和(he)軟件送遞功(gong)能;

4.一(yi)系列驅動客戶設備的軟(ruan)件;


1.1.2.2? Microsoft.NET平(ping)臺帶來的(de)重要意義

我們來(lai)看一(yi)下MicroSoft .NET對開發人(ren)員、IT專業(ye)人(ren)員、以及企(qi)業(ye)應(ying)用(yong)的巨大意義

??對于開發人員

??? MicroSoft .NET的(de)(de)策略是將互聯網(wang)本身作為構建新一代操(cao)作系統(tong)(tong)的(de)(de)基(ji)礎,對互聯網(wang)和操(cao)作系統(tong)(tong)的(de)(de)設計思想進(jin)行(xing)合理延(yan)伸。這樣,開發人員(yuan)必將創建出擺脫(tuo)設備(bei)硬件束(shu)縛的(de)(de)應用程序,以便輕松實現互聯網(wang)連接。MicroSoft .NET無(wu)疑是當今(jin)計算(suan)機技術通向計算(suan)時代的(de)(de)一個非常重要(yao)的(de)(de)里程碑。
.NET的(de)核心組(zu)件有:
? 一組用于創建互(hu)聯(lian)網(wang)操作系統的(de)構(gou)建塊,其(qi)中包括Passport.NET(用于用戶(hu)認(ren)證)以及(ji)用于文件存(cun)儲(chu)的(de)服務(wu)、用戶(hu)首選(xuan)項管(guan)理、日歷管(guan)理以及(ji)眾多(duo)的(de)其(qi)它任務(wu)
? 構建和管理新一代服務的(de)基本結構和工(gong)具(ju),包括Visual Studio.NET、.NET企業服務器(qi)、.NET框架和Windows.NET
? 能(neng)夠啟(qi)用新型(xing)智能(neng)互聯(lian)網設備的(de).NET設備軟件(jian)
? .NET用戶(hu)體驗
.NET對最終用(yong)(yong)戶來說(shuo)非(fei)常重(zhong)要,因為計(ji)算(suan)機的(de)功能(neng)將會得(de)到(dao)大(da)幅度(du)提(ti)升,同時(shi)計(ji)算(suan)機操(cao)作也會變得(de)非(fei)常簡單。特(te)別地(di),用(yong)(yong)戶將完全擺脫人(ren)為的(de)硬件束縛:用(yong)(yong)戶可(ke)以自由沖浪于互聯網的(de)多維(wei)時(shi)空(kong),而不是束縛在便攜式電腦的(de)方寸空(kong)間——可(ke)通過任(ren)何桌面(mian)系統、任(ren)何便攜式電腦、任(ren)何移(yi)動電話或(huo)PDA進行(xing)訪問,并(bing)可(ke)對其進行(xing)跨應用(yong)(yong)程序的(de)集成。
.NET可(ke)使用(yong)戶(hu)(hu)輕(qing)松進行互聯網連(lian)接,并(bing)輕(qing)松完成(cheng)那些在當今看來十分費時而且費力的(de)(de)(de)事務,它們(men)往往要求用(yong)戶(hu)(hu)進行數(shu)據重輸入并(bing)需運(yun)行幾個小時才能完成(cheng)。通過將多項安全(quan)數(shu)據流合并(bing)到單一的(de)(de)(de)用(yong)戶(hu)(hu)界面(或者甚(shen)至是可(ke)編(bian)程決策引擎),.NET架構將用(yong)戶(hu)(hu)從(cong)充斥于當今Web的(de)(de)(de)數(shu)據豎井的(de)(de)(de)束縛中(zhong)解(jie)脫出(chu)來。用(yong)戶(hu)(hu)可(ke)以自由(you)(you)訪問、自由(you)(you)查看、自由(you)(you)使用(yong)他們(men)的(de)(de)(de)數(shu)據。
? .NET對開(kai)(kai)發(fa)(fa)人員(yuan)來說也十分重要,因為它不但會改變開(kai)(kai)發(fa)(fa)人員(yuan)的(de)(de)開(kai)(kai)發(fa)(fa)應(ying)用程(cheng)序的(de)(de)方式,而且使得開(kai)(kai)發(fa)(fa)人員(yuan)能(neng)創建出全(quan)新的(de)(de)各(ge)種(zhong)應(ying)用程(cheng)序。新型開(kai)(kai)發(fa)(fa)范例的(de)(de)核心是Web服(fu)務(wu)這個概(gai)念(nian)的(de)(de)引(yin)入。Web服(fu)務(wu)是一種(zhong)通過(guo)簡單對象訪問協議(SOAP),在互(hu)聯網上展露(lu)其(qi)功能(neng)性的(de)(de)、極為公開(kai)(kai)的(de)(de)服(fu)務(wu)。SOAP是一種(zhong)基于可擴展標記(ji)語(yu)言(XML)制(zhi)定的(de)(de)協議。
在過去,開發(fa)人員(yuan)通過集成本地(di)系統(tong)服務來(lai)構建(jian)應用程序。在這種模型下,開發(fa)人員(yuan)可以(yi)訪問豐(feng)富(fu)的開發(fa)資源并能(neng)嚴格控制應用程序的行為(wei)。
如今(jin),開(kai)發人(ren)員已在很大(da)程(cheng)(cheng)度上(shang)掙脫了這種(zhong)模(mo)型(xing)的(de)(de)束縛,致(zhi)力于(yu)構(gou)建(jian)具有復雜結(jie)構(gou)的(de)(de)n層化(hua)系統,這種(zhong)系統能將網絡上(shang)眾多的(de)(de)應(ying)用(yong)程(cheng)(cheng)序一并進行集成,大(da)大(da)提(ti)升(sheng)了應(ying)用(yong)程(cheng)(cheng)序的(de)(de)價值。這樣,開(kai)發人(ren)員便可(ke)把精力集中(zhong)在充分挖掘軟件獨特的(de)(de)商(shang)業價值,而不是(shi)構(gou)建(jian)基本結(jie)構(gou)上(shang)。可(ke)喜的(de)(de)局(ju)面將應(ying)運(yun)而生:軟件投放市場的(de)(de)時間大(da)大(da)縮(suo)短(duan)、開(kai)發人(ren)員的(de)(de)編程(cheng)(cheng)效率(lv)明顯(xian)提(ti)高,最(zui)終把質量上(shang)乘的(de)(de)軟件呈現給(gei)用(yong)戶。
我們正在進(jin)入一(yi)個(ge)嶄(zhan)新的(de)(de)(de)計算時代(dai)——一(yi)個(ge)由互(hu)聯(lian)網(尤其是Internet核心(xin)技術XML)實現的(de)(de)(de)時代(dai)。利用(yong)(yong)XML,能(neng)夠創建出可供(gong)任(ren)何(he)人(ren)從(cong)任(ren)何(he)地(di)方使(shi)用(yong)(yong)的(de)(de)(de)、功能(neng)非(fei)常(chang)強大(da)的(de)(de)(de)應(ying)用(yong)(yong)程序(xu)(xu)。它極大(da)地(di)拓展了(le)應(ying)用(yong)(yong)程序(xu)(xu)的(de)(de)(de)功能(neng),并(bing)實現了(le)軟件的(de)(de)(de)動態(tai)提(ti)供(gong)。在這種情況下(xia),軟件已不完全(quan)指那(nei)些從(cong)光盤進(jin)行(xing)安裝的(de)(de)(de)程序(xu)(xu),而是演變(bian)成了(le)一(yi)種服務(wu)(wu)——類似于(yu)ID調(diao)用(yong)(yong)程序(xu)(xu)或按(an)收看次數進(jin)行(xing)收費的(de)(de)(de)電視(shi)——人(ren)們可通過通信媒體訂購的(de)(de)(de)服務(wu)(wu)。
n層計(ji)算技(ji)(ji)術(shu)具有能夠大幅度提高生(sheng)產力、緊密(mi)耦(ou)合的特點,而Web概(gai)念具有面向消息、松(song)散耦(ou)合的特點,我(wo)們(men)將(jiang)二者有機地(di)糅合在(zai)一(yi)起,實現了上(shang)述(shu)構想(xiang)。我(wo)們(men)將(jiang)這種計(ji)算風格稱為Web服(fu)(fu)務,它(ta)的出(chu)現標志著人類已經邁(mai)入應用程(cheng)序開發(fa)技(ji)(ji)術(shu)的新紀元(yuan)。Web服(fu)(fu)務是一(yi)種應用程(cheng)序,它(ta)可(ke)以(yi)通過編程(cheng)并使(shi)用標準的Internet協議,像超(chao)文本傳輸協議(HTTP)和(he)XML,將(jiang)功能展(zhan)示在(zai)互(hu)聯(lian)網(wang)和(he)企業內部網(wang)上(shang)。還可(ke)將(jiang)Web服(fu)(fu)務視作Web上(shang)的組件編程(cheng)。
從理(li)論上講,開(kai)發(fa)人員(yuan)可(ke)通(tong)過調(diao)用(yong)Web應(ying)(ying)用(yong)編程接口(API),將Web服(fu)(fu)務集成到(dao)應(ying)(ying)用(yong)程序中。其調(diao)用(yong)方法與調(diao)用(yong)本地(di)服(fu)(fu)務類(lei)似,不同的(de)是Web API調(diao)用(yong)可(ke)通(tong)過互聯網(wang)發(fa)送(song)給位(wei)于遠(yuan)程系統(tong)中的(de)某一服(fu)(fu)務。例如,MicroSoft Passport(Passport)服(fu)(fu)務使得開(kai)發(fa)人員(yuan)能(neng)夠對(dui)應(ying)(ying)用(yong)程序進行認(ren)證。通(tong)過對(dui)Passport服(fu)(fu)務編程,開(kai)發(fa)人員(yuan)可(ke)以(yi)充分利用(yong)Passport的(de)基(ji)本結構,通(tong)過運(yun)(yun)行Passport來(lai)維護用(yong)戶數據(ju)庫(ku),以(yi)確保其正常運(yun)(yun)行、定期備份等等。
.NET正(zheng)(zheng)(zheng)是根據這(zhe)種Web服(fu)務(wu)原(yuan)則而(er)創建(jian)的(de)(de)(de),微軟(ruan)目前(qian)正(zheng)(zheng)(zheng)著手提供這(zhe)個(ge)基(ji)本結(jie)構(gou),以便(bian)通過(guo).NET平臺的(de)(de)(de)每一(yi)部分來實現這(zhe)種新(xin)型(xing)的(de)(de)(de)Web服(fu)務(wu)。而(er)Visual Studio.NET、.NET框架(jia)、Windows.NET和.NET企(qi)業服(fu)務(wu)器,正(zheng)(zheng)(zheng)是為進(jin)行基(ji)于Web服(fu)務(wu)模型(xing)的(de)(de)(de)應用(yong)程序開發(fa)而(er)度身(shen)定(ding)做(zuo)的(de)(de)(de)新(xin)一(yi)代(dai)開發(fa)工具和基(ji)本結(jie)構(gou)。.NET構(gou)建(jian)塊服(fu)務(wu)、新(xin)增的(de)(de)(de).NET設備支持以及即將到來的(de)(de)(de).NET用(yong)戶體驗,將為人(ren)們徹底(di)攻克這(zhe)一(yi)難題(ti)劃上一(yi)個(ge)圓滿的(de)(de)(de)句(ju)號,使人(ren)們能夠充分利用(yong)Web服(fu)務(wu)模型(xing),如(ru)愿以償地開發(fa)出新(xin)一(yi)代(dai)應用(yong)程序。

??.NET對IT專(zhuan)業人員的重要意義
目(mu)前,IT專業(ye)人員能夠利用與(yu)構建.NET平(ping)臺相同的技術。
.NET Enterprise Servers和Windows 2000操(cao)作系統,為(wei)創建(jian)具(ju)有高度(du)可(ke)管理性的、能迅速投入市場的應用(yong)(yong)程序提供了堅(jian)實(shi)基礎。它(ta)們利用(yong)(yong)的是可(ke)擴(kuo)展標(biao)記語言(XML),因此隨著(zhu)Web體系結構的革新,在(zai)此平臺上創建(jian)的程序依然(ran)很(hen)有價值。
.NET平臺的(de)(de)(de)核心是(shi),采用有效的(de)(de)(de)、分門(men)別類的(de)(de)(de)方式來構建應用程(cheng)序(xu),達到(dao)其前所未有的(de)(de)(de)規模。該(gai)平臺上(shang)的(de)(de)(de)Web服(fu)務模型指的(de)(de)(de)是(shi):企業應用程(cheng)序(xu)的(de)(de)(de)中(zhong)心業務要素通(tong)常由本地管(guan)理,而支持它們的(de)(de)(de)服(fu)務(如用戶(hu)認證、文件(jian)(jian)存儲、用戶(hu)首(shou)選項管(guan)理、日歷、郵(you)(you)件(jian)(jian)等(deng)等(deng))卻無須(xu)本地管(guan)理,可(ke)以被無縫訂購。為了存儲用戶(hu)文件(jian)(jian)和郵(you)(you)件(jian)(jian),IT專業人員往(wang)往(wang)在服(fu)務器上(shang)安(an)裝新的(de)(de)(de)獨(du)立磁盤冗余陣列(RAID陣列),而有了.NET,他們在這一方面將會花費(fei)較少的(de)(de)(de)精(jing)力(li),而更多(duo)地致力(li)于怎(zen)樣為公司增加(jia)效益(yi)。
該Web服務模(mo)型還將動(dong)態配置(zhi)新軟件的(de)(de)發布和更(geng)新。用戶將以極其(qi)緊密的(de)(de)連(lian)接(jie)方式工作,因此更(geng)易于管理。而簡化的(de)(de)管理又可(ke)使IT專業人(ren)員更(geng)能適應變幻莫測(ce)的(de)(de)業務需求。
開(kai)發應(ying)用程(cheng)序(xu)的(de)(de)(de).NET Web服(fu)務(wu)模型(xing)將為企業應(ying)用程(cheng)序(xu)的(de)(de)(de)創建(jian)開(kai)辟一條新路。通過企業內外(wai)多種服(fu)務(wu)的(de)(de)(de)聯合(he),很容易把(ba)企業內部數據(ju)和客戶及合(he)作伙伴的(de)(de)(de)相關(guan)數據(ju)結合(he)在(zai)(zai)一起,大(da)大(da)簡化了(le)應(ying)用程(cheng)序(xu)的(de)(de)(de)創建(jian)過程(cheng)。這就為最終用戶發掘了(le)空前的(de)(de)(de)功能(neng)涵蓋(gai)性。例如,利(li)用某公(gong)(gong)司的(de)(de)(de)雇(gu)員(yuan)福(fu)利(li)程(cheng)序(xu),可(ke)以(yi)(yi)從其HR數據(ju)庫(ku)訂(ding)(ding)購(gou)信息(xi),通過Web訂(ding)(ding)購(gou)福(fu)利(li)管理公(gong)(gong)司的(de)(de)(de)服(fu)務(wu)、訂(ding)(ding)購(gou)工資管理公(gong)(gong)司的(de)(de)(de)服(fu)務(wu)。終端(duan)用戶可(ke)以(yi)(yi)在(zai)(zai)簡單、直觀的(de)(de)(de)界(jie)面下操(cao)作,而這個界(jie)面可(ke)以(yi)(yi)顯(xian)示(shi)他們的(de)(de)(de)累(lei)積休假(jia)時間、個人(ren)所得福(fu)利(li)以(yi)(yi)及上(shang)次工資額。

??.NET對企(qi)業的重要意義(yi)
MicroSoft .NET平(ping)臺(tai)將從根本上改善計算(suan)機和用戶(hu)之(zhi)間進行交(jiao)互的方式,最大限度地(di)發揮電(dian)子商務中計算(suan)技術的重要作用。首先,讓(rang)我們來分析一(yi)下當(dang)前商務計算(suan)世界的現(xian)狀:
人與計算機進行(xing)(xing)交互的手段極(ji)為有(you)限——通常使用鍵盤和鼠(shu)標進行(xing)(xing)輸(shu)入,使用監(jian)視器監(jian)控輸(shu)出。
用戶信息基(ji)本上是(shi)本地信息;如果從另(ling)一臺機器進(jin)行登錄,則無法獲取用戶的(de)個人首選項設(she)置、數據及應用程序(xu)。
用戶必須親自處理(li)信(xin)息,而通過設置(zhi)智能選(xuan)項代表用戶自動進行操作,則無異于是(shi)紙上談(tan)兵。
同(tong)(tong)一用(yong)戶(hu)存放于不(bu)同(tong)(tong)應用(yong)程序和站點(dian)的(de)數據(ju),很難(或(huo)根本不(bu)可能)進行自動合(he)并和關(guan)聯,用(yong)戶(hu)無法統一進行查看(kan)。
想在(zai)家里或(huo)在(zai)路上工(gong)作的用戶,不能(neng)方便地(di)訪問辦公室電腦中的應用程(cheng)序(xu)和(he)數(shu)據。這無(wu)疑成(cheng)為(wei)一(yi)道(dao)阻(zu)止人們獲得(de)更高工(gong)作效(xiao)率的鴻(hong)溝(gou)。
不能(neng)使(shi)用其它設(she)(she)備訪問(wen)專(zhuan)為特定(ding)設(she)(she)備設(she)(she)計的數據(ju)(這些設(she)(she)備包(bao)括PC、尋(xun)呼機、移動電話以(yi)及PDA等);最多可以(yi)定(ding)期(qi)進行同(tong)步。
.NET將保證完全消除(chu)當今計(ji)算技術中(zhong)的所有缺陷。.NET定能實現確保用戶從任何地點、任何設備都可訪問其(qi)個人數據和應用程(cheng)序的宏偉藍(lan)圖(tu)。除(chu)此之外,.NET技術還(huan)可實現多(duo)個應用程(cheng)序在邏輯(ji)上的松(song)散耦(ou)合鏈接和緊密耦(ou)合鏈接。
用(yong)戶(hu)可(ke)以(yi)通過(guo)(guo)手寫、語音和(he)(he)圖象技(ji)術與其(qi)個人數(shu)據(ju)進行交互(hu)(hu)。這些數(shu)據(ju)將(jiang)安全地存(cun)放在互(hu)(hu)聯網上,用(yong)戶(hu)通過(guo)(guo)辦公(gong)室(或(huo)家庭(ting))PC,還可(ke)以(yi)通過(guo)(guo)移動(dong)電話或(huo)尋呼(hu)機、PDA、甚(shen)至是新發明的(de)尋呼(hu)機——移動(dong)電話——PDA——PC聯合設備訪(fang)問這些數(shu)據(ju)。應(ying)用(yong)程序可(ke)進行靈活的(de)功能調(diao)整(zheng),以(yi)適應(ying)用(yong)戶(hu)所用(yong)設備的(de)功能狀況。應(ying)用(yong)程序可(ke)根據(ju)用(yong)戶(hu)預(yu)定義的(de)選項集和(he)(he)指令(ling)集,完全代替(ti)用(yong)戶(hu)自動(dong)執行相應(ying)的(de)操作。
上(shang)述功能將協(xie)同(tong)作(zuo)(zuo)用(yong)(yong),以便(bian)大幅度地(di)提高用(yong)(yong)戶(hu)使用(yong)(yong)計(ji)(ji)(ji)算技術的(de)(de)生產效率。根據(ju)設計(ji)(ji)(ji),.NET使得用(yong)(yong)戶(hu)無需在如(ru)何與計(ji)(ji)(ji)算機(ji)進行(xing)(xing)交互上(shang)勞神,從而全身心地(di)投入到(dao)使計(ji)(ji)(ji)算機(ji)自動執行(xing)(xing)任(ren)務、實現最終目標的(de)(de)工作(zuo)(zuo)中。通過使用(yong)(yong)XML行(xing)(xing)業(ye)標準,可(ke)將用(yong)(yong)戶(hu)數據(ju)進行(xing)(xing)跨站點和應用(yong)(yong)程序的(de)(de)鏈接,從而輕松實現當前(qian)很難實現的(de)(de)操作(zuo)(zuo)。比(bi)如(ru):對(dui)用(yong)(yong)戶(hu)在數家不(bu)同(tong)銀行(xing)(xing)、信用(yong)(yong)卡(ka)公司以及(ji)計(ji)(ji)(ji)費代理商那里的(de)(de)數據(ju)進行(xing)(xing)集中處理;這樣(yang),用(yong)(yong)戶(hu)便(bian)可(ke)依(yi)據(ju)處理后的(de)(de)數據(ju)支付帳(zhang)單,將費用(yong)(yong)明細(xi)報告歸(gui)檔。
.NET把雇員、客戶和商(shang)務(wu)應用(yong)程序(xu)整(zheng)(zheng)和成一(yi)個協調的(de)、能進行智能交互的(de)整(zheng)(zheng)體,而(er)各公司(si)無疑將是這場效率和生產力革命的(de)最(zui)大受(shou)益者。簡言之,.NET承(cheng)諾為人類(lei)創造一(yi)個消除任何溝鴻(hong)的(de)商(shang)務(wu)世界。

1.1.2.3? MicroSoft .NET 的基本模塊

??網(wang)絡服(fu)務一覽

?????? 通(tong)常(chang)說來,一個網絡服(fu)務(wu)(wu)只是(shi)一個作為服(fu)務(wu)(wu)――通(tong)過(guo)Internet標準(zhun)此(ci)服(fu)務(wu)(wu)能(neng)與其它
網絡服(fu)(fu)務集成在(zai)一(yi)起――發行的(de)(de)(de)(de)簡單的(de)(de)(de)(de)應用程序。換句話說,它是(shi)(shi)可通過URL定(ding)位的(de)(de)(de)(de)自動(dong)將(jiang)信息返回到需(xu)要它的(de)(de)(de)(de)客戶端那里的(de)(de)(de)(de)一(yi)種資源。網絡服(fu)(fu)務一(yi)個重(zhong)要的(de)(de)(de)(de)特點是(shi)(shi)客戶不需(xu)要知(zhi)道一(yi)種服(fu)(fu)務是(shi)(shi)怎樣實現的(de)(de)(de)(de)。在(zai)本節中(zhong),我(wo)將(jiang)向你(ni)解釋(shi)網絡及網絡服(fu)(fu)務如何把(ba)基于組件(jian)技術的(de)(de)(de)(de)最(zui)好的(de)(de)(de)(de)方(fang)面結(jie)合在(zai)一(yi)起的(de)(de)(de)(de),并(bing)且介紹(shao)與(yu)網絡服(fu)(fu)務通信所需(xu)的(de)(de)(de)(de)基本框架。
同(tong)組件(jian)一樣,網絡服(fu)(fu)(fu)(fu)務(wu)(wu)提供(gong)(gong)(gong)“黑匣子”函數,它可(ke)(ke)以被再次作用而不(bu)用關心(xin)此服(fu)(fu)(fu)(fu)務(wu)(wu)是(shi)怎樣實現的。網絡服(fu)(fu)(fu)(fu)務(wu)(wu)提供(gong)(gong)(gong)被稱為契約的精確定義的接(jie)口,此接(jie)口描繪了所提供(gong)(gong)(gong)的服(fu)(fu)(fu)(fu)務(wu)(wu)。開發(fa)人員可(ke)(ke)以將遠程服(fu)(fu)(fu)(fu)務(wu)(wu)、本地服(fu)(fu)(fu)(fu)務(wu)(wu)和定置代碼(ma)組合在一起而集成(cheng)應(ying)用程序。例如,某公司可(ke)(ke)以使(shi)用如下(xia)服(fu)(fu)(fu)(fu)務(wu)(wu)組建(jian)一在線商店(dian):微軟護照(原文:Passport)服(fu)(fu)(fu)(fu)務(wu)(wu)以驗證用戶身(shen)份,第三方個(ge)人化服(fu)(fu)(fu)(fu)務(wu)(wu)以使(shi)網頁匹(pi)配每一個(ge)用戶的參數,信(xin)用卡(ka)處(chu)理服(fu)(fu)(fu)(fu)務(wu)(wu),銷售稅(shui)服(fu)(fu)(fu)(fu)務(wu)(wu),對(dui)每個(ge)運輸公司的包(bao)裹跟蹤服(fu)(fu)(fu)(fu)務(wu)(wu),鏈接(jie)公司內部庫存管理程序的內部目錄服(fu)(fu)(fu)(fu)務(wu)(wu),以及少量定置代碼(ma)以使(shi)他(ta)們的商店(dian)能脫穎而出(chu)。
然而,網絡服務與(yu)(yu)現在(zai)的(de)(de)組件技術不同,它(ta)不使用(yong)需要在(zai)服務器和客戶機(ji)有(you)明確的(de)(de)、同類型基本構(gou)(gou)架(jia)的(de)(de)具(ju)體的(de)(de)對象模型協議,例如DCOM、 RMI或 IIOP 。盡管(guan)與(yu)(yu)具(ju)體組件技術緊密(mi)結(jie)合的(de)(de)實現在(zai)一(yi)(yi)個受控的(de)(de)環(huan)境中能很(hen)好地被接(jie)受,但它(ta)們(men)在(zai)網絡環(huan)境中變得不切實際(ji)。因(yin)為一(yi)(yi)個集成商業(ye)程序的(de)(de)參與(yu)(yu)者會(hui)發生變化,隨著時間(jian)的(de)(de)推移,技術也在(zai)變化,所以在(zai)所有(you)參與(yu)(yu)者間(jian)確保一(yi)(yi)個單一(yi)(yi)的(de)(de)、統一(yi)(yi)的(de)(de)體系(xi)架(jia)構(gou)(gou)就變得十分困難。網絡服務采取(qu)了另外一(yi)(yi)種(zhong)途徑,它(ta)使用(yong)普便(bian)存在(zai)的(de)(de)網絡協議和數(shu)據(ju)格式,如HTTP和XML,進行(xing)通(tong)信。支(zhi)持(chi)這些網絡標(biao)準的(de)(de)任何系(xi)統都支(zhi)持(chi)網絡服務。
而且,網(wang)絡(luo)服(fu)(fu)務(wu)(wu)(wu)契(qi)約(yue)(yue)描述的(de)(de)(de)(de)(de)是(shi)(shi)以術語(yu)報(bao)文(wen)形式提供的(de)(de)(de)(de)(de)服(fu)(fu)務(wu)(wu)(wu),這些服(fu)(fu)務(wu)(wu)(wu)是(shi)(shi)由網(wang)絡(luo)服(fu)(fu)務(wu)(wu)(wu)生成和接受的(de)(de)(de)(de)(de),而不是(shi)(shi)描述服(fu)(fu)務(wu)(wu)(wu)是(shi)(shi)如何(he)實現的(de)(de)(de)(de)(de)。通過把重點放在(zai)(zai)報(bao)文(wen)上,網(wang)絡(luo)服(fu)(fu)務(wu)(wu)(wu)模板(ban)就完全對語(yu)言、平(ping)臺和對象模板(ban)一(yi)無所(suo)(suo)知。 用(yong)(yong)任(ren)何(he)一(yi)套編程語(yu)言、對象模型和平(ping)臺的(de)(de)(de)(de)(de)完全特性集,都可(ke)實現網(wang)絡(luo)服(fu)(fu)務(wu)(wu)(wu)。網(wang)絡(luo) 服(fu)(fu)務(wu)(wu)(wu)可(ke)在(zai)(zai)任(ren)何(he)平(ping)臺被用(yong)(yong)任(ren)何(he)語(yu)言所(suo)(suo)實現的(de)(de)(de)(de)(de)應用(yong)(yong)程序使用(yong)(yong)。只(zhi)要(yao)用(yong)(yong)于解釋服(fu)(fu)務(wu)(wu)(wu)容量、報(bao)文(wen)序列和所(suo)(suo)期(qi)望協議(yi)的(de)(de)(de)(de)(de)契(qi)約(yue)(yue)得(de)到認(ren)同,那么所(suo)(suo)實現的(de)(de)(de)(de)(de)網(wang)絡(luo)服(fu)(fu)務(wu)(wu)(wu)及(ji)網(wang)絡(luo)服(fu)(fu)務(wu)(wu)(wu)用(yong)(yong)戶就可(ke)相(xiang)互不同,而不會(hui)影響會(hui)話另一(yi)端(duan)的(de)(de)(de)(de)(de)應用(yong)(yong)程序。
網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)模板對(dui)(dui)最小體系架構的要求(qiu)很低,以確保網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)在使(shi)用(yong)(yong)任何技術和(he)(he)編(bian)程(cheng)語言的平臺上(shang)實現(xian)和(he)(he)訪(fang)問(wen)。對(dui)(dui)網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)互(hu)用(yong)(yong)性的解決可只(zhi)依靠網絡(luo)(luo)(luo)標(biao)準(zhun)。然而,為了使(shi)應(ying)用(yong)(yong)程(cheng)序更容(rong)易使(shi)用(yong)(yong)網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu),簡單(dan)地同意通過標(biao)準(zhun)網絡(luo)(luo)(luo)協議就(jiu)可以訪(fang)問(wen)網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)是(shi)不夠(gou)的。當網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)和(he)(he)網絡(luo)(luo)(luo)服(fu)(fu)使(shi)用(yong)(yong)者依靠標(biao)準(zhun)的方(fang)式表(biao)示(shi)數據和(he)(he)命令(ling)、表(biao)示(shi)網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)契約 、算(suan)出網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)所提供的容(rong)量時,網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)(wu)才容(rong)易使(shi)用(yong)(yong)。
XML是定(ding)(ding)義一(yi)(yi)個標準的(de)(de)(de)、可(ke)(ke)(ke)擴展的(de)(de)(de)用于提(ti)供(gong)命(ming)令(ling)和典型(xing)(xing)數(shu)(shu)據的(de)(de)(de)語言明顯的(de)(de)(de)一(yi)(yi)種選擇。雖(sui)然為(wei)表示(shi)命(ming)令(ling)和典型(xing)(xing)數(shu)(shu)據可(ke)(ke)(ke)以定(ding)(ding)義使用其它(ta)技巧(比如編碼為(wei)一(yi)(yi)種查(cha)詢字(zi)符串)的(de)(de)(de)規則,但XML被專門設(she)計為(wei)描述數(shu)(shu)據的(de)(de)(de)標準元(yuan)語言。簡單(dan)對象存取(qu)協議(SOAP)是以一(yi)(yi)種可(ke)(ke)(ke)擴展的(de)(de)(de)方式使用XML表示(shi)數(shu)(shu)據和命(ming)令(ling)的(de)(de)(de)工業(ye)標準。網(wang)絡服務可(ke)(ke)(ke)選擇用SOAP決定(ding)(ding)報(bao)文(wen)的(de)(de)(de)格式。
XML是網絡服務契約(yue)(yue)的(de)一種使能(neng)技術。服務契約(yue)(yue)語(yu)言 (SCL)是記錄網絡服務契約(yue)(yue)的(de)XML語(yu)法。由于(yu)(yu)SCL是基于(yu)(yu)XML的(de),所以對開(kai)發(fa)者和開(kai)發(fa)工具來說,容易生成、解釋(shi)契約(yue)(yue)。關(guan)于(yu)(yu)SCL細則的(de)草案(an)很快會出臺(注意:現(xian)在的(de)SOAP Toolkit for Visual Studio 6.0支持稱為SDL的(de)SCL的(de)早期版本)。
Disco 規范(fan)為服(fu)務(wu)提供者發布網絡 服(fu)務(wu)契(qi)約(yue)和相應的機制描述了(le)一(yi)個(ge)標準方(fang)式,這將(jiang)使開(kai)發者或開(kai)發工具可(ke)找到契(qi)約(yue)文獻。當(dang)你讀(du)到這里時(shi), Disco規范(fan)的草案應出臺(tai)了(le)。
象SOAP, SCL和(he)Disco這(zhe)樣(yang)的(de)(de)(de)標準(zhun)有助于開(kai)發(fa)者,因為它們不需要明白和(he)實現所(suo)使用的(de)(de)(de)每一個網(wang)絡服(fu)務的(de)(de)(de)訪問方式。支持(chi)這(zhe)些標準(zhun)的(de)(de)(de)更(geng)好的(de)(de)(de)、已(yi)充分測試的(de)(de)(de)、高性(xing)能的(de)(de)(de)體系架構將由(you)開(kai)發(fa)平臺提供,這(zhe)會(hui)大(da)大(da)簡化整個開(kai)發(fa)過(guo)程。

??MicroSoft .NET Framework

MicroSoft .NET框架(jia)的(de)(de)目的(de)(de)是(shi)使你更容(rong)易建(jian)立網(wang)(wang)絡(luo)(luo)應(ying)用(yong)程(cheng)序(xu)和網(wang)(wang)絡(luo)(luo)服(fu)(fu)(fu)務。圖2 顯示了MicroSoft .NET框架(jia)的(de)(de)體系。建(jian)立在操作系統最上層(ceng)的(de)(de)服(fu)(fu)(fu)務,是(shi)管(guan)理運行時代(dai)碼(ma)(ma)需(xu)求的(de)(de)common language runtime,這些代(dai)碼(ma)(ma)可以用(yong)任(ren)何現代(dai)編程(cheng)語(yu)(yu)言所(suo)寫。Runtime提供(gong)了許多服(fu)(fu)(fu)務,這些服(fu)(fu)(fu)務有助于(yu)簡化代(dai)碼(ma)(ma)開(kai)發(fa)(fa)和應(ying)用(yong)程(cheng)序(xu)的(de)(de)開(kai)發(fa)(fa)同時也將提高(gao)應(ying)用(yong)程(cheng)序(xu)的(de)(de)可靠性。.NET Framework包(bao)括一套(tao)可被開(kai)發(fa)(fa)者用(yong)于(yu)任(ren)何編程(cheng)語(yu)(yu)言的(de)(de)類庫(ku)。在此之上是(shi)許多應(ying)用(yong)程(cheng)序(xu)模板,這些模板特定地為開(kai)發(fa)(fa)網(wang)(wang)絡(luo)(luo)站點和網(wang)(wang)絡(luo)(luo)服(fu)(fu)(fu)務提供(gong)高(gao)級組件和服(fu)(fu)(fu)務。

??Common Language Runtime

運(yun)行(xing)(xing)(xing)語言(runtime)調入并運(yun)行(xing)(xing)(xing)用(yong)任何運(yun)行(xing)(xing)(xing)感知編(bian)程語言所寫的(de)代(dai)(dai)碼。以運(yun)行(xing)(xing)(xing)為(wei)目標的(de)代(dai)(dai)碼被稱為(wei)受控(managed )代(dai)(dai)碼,受控代(dai)(dai)碼代(dai)(dai)碼只是意味(wei)著(zhu)在(zai)(zai)內部可執行(xing)(xing)(xing)代(dai)(dai)碼與(yu)運(yun)行(xing)(xing)(xing)自身間存(cun)在(zai)(zai)已定義好的(de)合作契約。對(dui)于(yu)象生成對(dui)象、調用(yong)方(fang)法等這樣的(de)任務(wu),被委托給了運(yun)行(xing)(xing)(xing)語言,這使得在(zai)(zai)運(yun)行(xing)(xing)(xing)語言能為(wei)可執行(xing)(xing)(xing)代(dai)(dai)碼增加額外的(de)服務(wu)。
運行(xing)語言(yan)以交叉語言(yan)集(ji)成、自描(miao)述組件、簡(jian)單配(pei)制和版本化及集(ji)成安(an)全服(fu)務為特點。
運行(xing)語言使用(yong)一(yi)種新的(de)能表達大部(bu)分現代編(bian)程語言語義(yi)的(de)通(tong)用(yong)類型(xing)系統,通(tong)用(yong)類型(xing)系統定義(yi)了一(yi)套標(biao)準類型(xing)及生成新標(biao)準的(de)規則。運行(xing)語言知(zhi)道怎樣(yang)生成、執行(xing)這些類型(xing)。編(bian)譯器和解(jie)釋器使用(yong)運行(xing)語言服務定義(yi)類型(xing)、管理對象、進行(xing)方法調用(yong),而不是使用(yong)工具或特定于語言的(de)方法。
類(lei)型系統的(de)(de)主要設(she)計目的(de)(de)是使(shi)多種(zhong)(zhong)語(yu)(yu)言(yan)(yan)能(neng)深度(du)集成(cheng)。用(yong)(yong)(yong)一(yi)種(zhong)(zhong)語(yu)(yu)言(yan)(yan)所寫(xie)(xie)的(de)(de)代(dai)碼(ma)能(neng)繼承用(yong)(yong)(yong)另一(yi)種(zhong)(zhong)語(yu)(yu)言(yan)(yan)所寫(xie)(xie)的(de)(de)類(lei)的(de)(de)實現,用(yong)(yong)(yong)一(yi)種(zhong)(zhong)語(yu)(yu)言(yan)(yan)所寫(xie)(xie)的(de)(de)代(dai)碼(ma)拋出的(de)(de)異常能(neng)被用(yong)(yong)(yong)另一(yi)種(zhong)(zhong)語(yu)(yu)言(yan)(yan)寫(xie)(xie)的(de)(de)代(dai)碼(ma)捕(bu)獲,象調試和剖析之(zhi)類(lei)的(de)(de)操作會在完全封閉下(xia)工作,而不(bu)用(yong)(yong)(yong)考慮代(dai)碼(ma)所用(yong)(yong)(yong)的(de)(de)語(yu)(yu)言(yan)(yan)。這就(jiu)意味著編(bian)(bian)寫(xie)(xie)可重(zhong)用(yong)(yong)(yong)類(lei)庫的(de)(de)開發者,不(bu)再需(xu)要為(wei)每(mei)一(yi)種(zhong)(zhong)編(bian)(bian)程語(yu)(yu)言(yan)(yan)或編(bian)(bian)譯器生成(cheng)一(yi)個(ge)版本(ben),并且使(shi)用(yong)(yong)(yong)類(lei)庫的(de)(de)開發者不(bu)再受到(dao)為(wei)他們使(shi)用(yong)(yong)(yong)的(de)(de)編(bian)(bian)程語(yu)(yu)言(yan)(yan)開發的(de)(de)庫的(de)(de)限制。
自描述組件(jian)――現在(zai)MicroSoft .NET框架上已成(cheng)為可(ke)能――簡(jian)化了(le)開發和(he)配制,并提高了(le)系統的(de)(de)可(ke)靠性(xing)。許多由運(yun)行(xing)語言提供的(de)(de)服務是由元數(shu)據及用于補充(chong)可(ke)執(zhi)行(xing)代碼(ma)的(de)(de)信(xin)息(xi)(xi)所(suo)驅動。因為所(suo)有的(de)(de)信(xin)息(xi)(xi)都儲存(cun)在(zai)一起,只有可(ke)執(zhi)行(xing)的(de)(de)(代碼(ma))才被稱(cheng)為自描述組件(jian)。
自(zi)描述(shu)組(zu)件(jian)(jian)(jian)的(de)(de)(de)一個主(zhu)要(yao)優點是,使(shi)用它(ta)(ta)們并不(bu)(bu)需要(yao)其(qi)它(ta)(ta)文件(jian)(jian)(jian)。類(lei)的(de)(de)(de)定(ding)義不(bu)(bu)需要(yao)單獨的(de)(de)(de)頭(tou)文件(jian)(jian)(jian);通過(guo)檢(jian)查元數據對(dui)類(lei)的(de)(de)(de)定(ding)義可以從組(zu)件(jian)(jian)(jian)自(zi)身獲得。跨語言或過(guo)程(cheng)邊(bian)界(jie)訪問(wen)組(zu)件(jian)(jian)(jian)并不(bu)(bu)需要(yao)各自(zi)的(de)(de)(de)IDL文件(jian)(jian)(jian)、類(lei)型文件(jian)(jian)(jian)或proxy/stubs;所必(bi)需的(de)(de)(de)信(xin)息已存在(zai)于元數據之中。為識別開發者請示的(de)(de)(de)服務屬性,并不(bu)(bu)需要(yao)展開各自(zi)的(de)(de)(de)配制信(xin)息。 最主(zhu)要(yao)的(de)(de)(de)是,由于元數據是在(zai)編譯過(guo)程(cheng)中由源代碼生成,并與可執(zhi)行(xing)代碼儲存在(zai)一起,它(ta)(ta)將永遠和(he)可執(zhi)行(xing)部分(fen)同步。
除了改善對單個(ge)組件的配(pei)(pei)制,Microsft .NET框架定義了一(yi)個(ge)應用程序(xu)配(pei)(pei)制模(mo)板,以解(jie)決定置應用程序(xu)安裝和DLL版本化(通常被稱為(wei)“DLL Hell”)這一(yi)復雜過程的問題,運行語言提供了支(zhi)持(chi)這個(ge)模(mo)板的服務。
Microsft .NET框(kuang)架 引入(ru)了(le)組(zu)(zu)合(he)(he)體(ti)(ti)的(de)(de)概念(nian)。一(yi)個組(zu)(zu)合(he)(he)體(ti)(ti)是(shi)一(yi)組(zu)(zu)資(zi)源(yuan)和(he)類型(xing),并(bing)包(bao)括有關(guan)這(zhe)些資(zi)源(yuan)和(he)類型(xing)的(de)(de)元數據,也(ye)(ye)就是(shi)被(bei)作為(wei)一(yi)個單(dan)元配制的(de)(de)。元數據被(bei)稱(cheng)為(wei)組(zu)(zu)合(he)(he)體(ti)(ti)的(de)(de)名單(dan),它包(bao)含象類型(xing)和(he)資(zi)源(yuan)表(biao)之(zhi)類能被(bei)組(zu)(zu)合(he)(he)體(ti)(ti)外看得(de)見的(de)(de)信(xin)息,這(zhe)個名單(dan)也(ye)(ye)包(bao)括有關(guan)從屬關(guan)系之(zhi)類的(de)(de)信(xin)息,例如(ru)組(zu)(zu)合(he)(he)體(ti)(ti)建立時(shi)的(de)(de)版本(ben)號。開發(fa)人員(yuan)可以(yi)指定版本(ben)策略,以(yi)指示(shi)運行語(yu)言是(shi)否(fou)裝(zhuang)入(ru)系統上已安裝(zhuang)的(de)(de)依賴于組(zu)(zu)合(he)(he)體(ti)(ti)的(de)(de)最新版本(ben),裝(zhuang)入(ru)一(yi)指定版本(ben),或在編譯時(shi)使用(yong)的(de)(de)版本(ben)。
某軟件組件的(de)多(duo)個拷(kao)貝總可以(yi)(yi)存(cun)在于同樣的(de)操作系統上,然(ran)而(er),通(tong)常說來(lai),只有其(qi)中的(de)一個拷(kao)貝能被操作系統注冊、調(diao)(diao)入(ru)內(nei)(nei)存(cun)、執行(xing)。對系統來(lai)說,定位和調(diao)(diao)入(ru)內(nei)(nei)存(cun)的(de)策略(lve)是全局性。.NET Framework Common Language Runtime 增(zeng)加了所(suo)必須的(de)體系架構以(yi)(yi)支持管理(li)組件定位和調(diao)(diao)入(ru)的(de)每個應用程序(xu)策略(lve),這通(tong)常被稱為并行(xing)配(pei)制。
組(zu)合(he)(he)體(ti)可(ke)以(yi)被一(yi)個(ge)(ge)應(ying)用(yong)(yong)程序(xu)私有,或被多(duo)個(ge)(ge)應(ying)用(yong)(yong)程序(xu)共享。一(yi)個(ge)(ge)組(zu)合(he)(he)體(ti)的(de)多(duo)個(ge)(ge)版(ban)本(ben)可(ke)以(yi)同時配(pei)(pei)制(zhi)(zhi)在同一(yi)臺(tai)機器上。應(ying)用(yong)(yong)程序(xu)配(pei)(pei)制(zhi)(zhi)信息定義了到何(he)處去查找(zhao)組(zu)合(he)(he)體(ti),這樣(yang)runtime就能為同時運行的(de)兩個(ge)(ge)不同的(de)應(ying)用(yong)(yong)程序(xu)裝入同一(yi)組(zu)合(he)(he)體(ti)的(de)不同版(ban)本(ben)。這就消除了由(you)組(zu)件版(ban)本(ben)的(de)不兼容性引起的(de)問題,提(ti)高了系統整體(ti)的(de)穩定性。如(ru)果(guo)(guo)必要,如(ru)果(guo)(guo)必要,管(guan)理員可(ke)以(yi)為配(pei)(pei)制(zhi)(zhi)時刻的(de)組(zu)合(he)(he)體(ti)增加配(pei)(pei)制(zhi)(zhi)信息,例如(ru)一(yi)個(ge)(ge)不同的(de)版(ban)本(ben)策略,但是編譯時提(ti)供的(de)原始信息永遠不會丟失。
因為組(zu)(zu)合體(ti)是自(zi)描述的(de)(de),所(suo)以并不需要在系統上進(jin)行顯式注冊。應用程序(xu)(xu)的(de)(de)配(pei)制簡單(dan)到只需將文件(jian)拷(kao)貝到目(mu)錄中(zhong)既可(如果為了使應用程序(xu)(xu)能(neng)夠運行,必須安裝(zhuang)未(wei)經(jing)組(zu)(zu)織過的(de)(de)組(zu)(zu)件(jian)的(de)(de)話,情況會稍微復雜一點)。配(pei)制信息保存在可被任何文本編輯(ji)器編輯(ji)的(de)(de)XML文件(jian)中(zhong)。
最(zui)后,運(yun)(yun)行(xing)(xing)語言也提(ti)供完整的、普遍深入(ru)(ru)的安(an)全服務,以確保未經(jing)授權的用戶(hu)不能(neng)訪問機器(qi)上的資源,并(bing)且(qie)代(dai)碼不會(hui)執(zhi)(zhi)行(xing)(xing)未經(jing)允許的動(dong)作(zuo)。這就提(ti)高了(le)系統整體的安(an)全性(xing)可靠性(xing)。 由(you)于(yu)運(yun)(yun)行(xing)(xing)語言用于(yu)裝(zhuang)入(ru)(ru)代(dai)碼、生成(cheng)對象、執(zhi)(zhi)行(xing)(xing)方(fang)法調用,所(suo)以當受控代(dai)碼裝(zhuang)入(ru)(ru)內(nei)存、執(zhi)(zhi)行(xing)(xing)時,運(yun)(yun)行(xing)(xing)語言能(neng)進行(xing)(xing)安(an)全檢查,強化安(an)全策略。
Microsft .NET框架不僅(jin)規定代(dai)碼訪問(wen)(wen)安(an)(an)(an)全,還規定基于(yu)角(jiao)色的(de)(de)(de)安(an)(an)(an)全。通過代(dai)碼訪問(wen)(wen)安(an)(an)(an)全機制,開(kai)發(fa)人員能(neng)為應用程(cheng)序指定完成工(gong)作所必需(xu)的(de)(de)(de)權限。例如,代(dai)碼或(huo)許需(xu)要(yao)寫文件或(huo)訪問(wen)(wen)環境變量(liang)的(de)(de)(de)權力。這類信(xin)(xin)(xin)息(xi)(xi)和有關代(dai)碼標志(zhi)的(de)(de)(de)信(xin)(xin)(xin)息(xi)(xi)一(yi)起存儲在(zai)配制級上的(de)(de)(de)。當代(dai)碼裝(zhuang)入內存及(ji)執行(xing)方法調用時,運行(xing)語(yu)言驗證是否能(neng)給予代(dai)碼所要(yao)求的(de)(de)(de)權限。如果不能(neng),將記錄一(yi)條安(an)(an)(an)全沖突信(xin)(xin)(xin)息(xi)(xi)。給予權限的(de)(de)(de)策(ce)略(lve),這被(bei)稱(cheng)為信(xin)(xin)(xin)任策(ce)略(lve),是由系統管理(li)員建立的(de)(de)(de),并(bing)且是建立在(zai)關于(yu)代(dai)碼的(de)(de)(de)證據基礎之上,比如:代(dai)碼是誰發(fa)布的(de)(de)(de),是從(cong)什么地方獲得的(de)(de)(de),以(yi)及(ji)在(zai)組(zu)合體中找到的(de)(de)(de)代(dai)碼標志(zhi)和它(ta)要(yao)求的(de)(de)(de)權限。開(kai)發(fa)人員可以(yi)指定他們(men)顯然(ran)不需(xu)要(yao)的(de)(de)(de)權限,以(yi)防止其(qi)它(ta)人惡意使用他們(men)的(de)(de)(de)代(dai)碼。如果所需(xu)要(yao)的(de)(de)(de)權限依賴直到運行(xing)時刻才會知(zhi)道的(de)(de)(de)信(xin)(xin)(xin)息(xi)(xi),那(nei)么就可寫入綱鄰(lin)性的(de)(de)(de)安(an)(an)(an)全檢查。
除了代(dai)(dai)碼訪問(wen)安全(quan)(quan),運(yun)行(xing)語言還支持基于(yu)角(jiao)色(se)的安全(quan)(quan)。基于(yu)角(jiao)色(se)的安全(quan)(quan)建立同代(dai)(dai)碼訪問(wen)安全(quan)(quan)一(yi)樣的權(quan)限(xian)模(mo)板,只是(shi)(shi)這些(xie)權(quan)限(xian)是(shi)(shi)建立在(zai)用戶(hu)(hu)的身(shen)(shen)份之上,而不是(shi)(shi)建立在(zai)代(dai)(dai)碼的標志之上。角(jiao)色(se)表(biao)明了用戶(hu)(hu)所屬的類,并(bing)且可以在(zai)開發和配(pei)制階段定義(yi)。給予(yu)權(quan)限(xian)的策(ce)略被(bei)分配(pei)到每個(ge)預定義(yi)的角(jiao)色(se)。在(zai)運(yun)行(xing)時(shi)刻,用戶(hu)(hu)的身(shen)(shen)份被(bei)確(que)定,代(dai)(dai)碼將代(dai)(dai)表(biao)這個(ge)身(shen)(shen)份運(yun)行(xing)。運(yun)行(xing)語言決定用戶(hu)(hu)是(shi)(shi)哪個(ge)角(jiao)色(se)的成員,然后給予(yu)基于(yu)這個(ge)角(jiao)色(se)的權(quan)限(xian)。
在查看(kan)Microsft .NET框(kuang)架的可編(bian)程模板前(qian),先看(kan)一下它所提供的服務(wu)。

??服務框架
在Common Language Runtime之上是服務框(kuang)架,此(ci)框(kuang)架提供(gong)能被任何現(xian)代編程語言調用的類(lei)。所(suo)有的類(lei)都遵循一套命名和設計方針,以大(da)大(da)減(jian)小開發人員的學習上的彎路。
框架包括一套開發(fa)(fa)人(ren)員(yuan)希望在(zai)標準語言庫中存在(zai)的基類庫,例如:集合、輸入/輸出,字符(fu)串及數(shu)據(ju)類。另外,基類庫提(ti)供訪(fang)問操(cao)作(zuo)系統服(fu)務如圖畫、網(wang)(wang)絡、線程、全(quan)球化和加密的類。服(fu)務框架也(ye)包括數(shu)據(ju)訪(fang)問類庫,及開發(fa)(fa)工(gong)具,如調試和剖析服(fu)務,能夠使用的類。本(ben)文章沒有詳細討論所有的類,我將(jiang)重點放在(zai)數(shu)據(ju)訪(fang)問類上,因為大(da)多(duo)數(shu)網(wang)(wang)絡服(fu)務需要(yao)對數(shu)據(ju)的訪(fang)問。當然,你可以在(zai)MicroSoft .NET Framework SDK中找到關(guan)于服(fu)務框架類庫的附加信息。

??數據訪問服務
幾乎所有的(de)(de)(de)(de)網絡服(fu)務(wu)都需要(yao)查詢和(he)更新(xin)永久性數據(ju)(ju)(ju),不(bu)論(lun)是以(yi)簡單文件,還是以(yi)相關數據(ju)(ju)(ju)庫,或是以(yi)其它(ta)的(de)(de)(de)(de)存(cun)儲類型存(cun)在。為(wei)了提供對數據(ju)(ju)(ju)的(de)(de)(de)(de)訪問(wen),服(fu)務(wu)框架包括ActiveX Data Objects+ (ADO.NET)類庫。如同名子所暗(an)示(shi)地那樣,ADO.NET由ADO發(fa)展(zhan)而來(lai)。ADO+被設(she)計為(wei)基于網絡的(de)(de)(de)(de)可擴展(zhan)的(de)(de)(de)(de)應用(yong)程(cheng)(cheng)序和(he)服(fu)務(wu)提供數據(ju)(ju)(ju)訪問(wen)服(fu)務(wu)。ADO.NET為(wei)連接的(de)(de)(de)(de)指針風格的(de)(de)(de)(de)數據(ju)(ju)(ju)訪問(wen),同時(shi)也為(wei)更適合于把(ba)數據(ju)(ju)(ju)返(fan)回(hui)到客戶端應用(yong)程(cheng)(cheng)序的(de)(de)(de)(de)無連接的(de)(de)(de)(de)數據(ju)(ju)(ju)模板提供高性能的(de)(de)(de)(de)APIs流(liu),就象在以(yi)后介紹的(de)(de)(de)(de)那樣。
就象(xiang)其余幾(ji)個(ge)部分一樣,ADO.NET定義了那些鏈接數(shu)(shu)據(ju)倉庫(ku)、 對數(shu)(shu)據(ju)倉庫(ku)發送命令(ling)及從中(zhong)獲取結果(guo)的(de)(de)(de)(de)(de)類。這(zhe)些類由(you)受(shou)控(kong)數(shu)(shu)據(ju)提(ti)供者(managed data provider)實(shi)現。ADO+中(zhong)鏈接和(he)命令(ling)對象(xiang)看上去和(he)ADO中(zhong)的(de)(de)(de)(de)(de)是(shi)一樣的(de)(de)(de)(de)(de),并且一個(ge)名(ming)為DataReader的(de)(de)(de)(de)(de)新類提(ti)供了通過(guo)高(gao)性(xing)能API流(liu)獲取結果(guo)的(de)(de)(de)(de)(de)能力。DataReader在功能上同前(qian)向、只讀的(de)(de)(de)(de)(de)ADO記錄集(Recordset)是(shi)等(deng)同的(de)(de)(de)(de)(de),但是(shi)DataReader被(bei)設計用來最小化內存中(zhong)生成的(de)(de)(de)(de)(de)對象(xiang)的(de)(de)(de)(de)(de)數(shu)(shu)量,以(yi)提(ti)高(gao)性(xing)能,避免垃圾(ji)積累。在.NET Framework中(zhong)包含了針對MicroSoft SQL Server?的(de)(de)(de)(de)(de)受(shou)控(kong)數(shu)(shu)據(ju)提(ti)供者以(yi)及可通過(guo)OLE DB訪問(wen)的(de)(de)(de)(de)(de)任何數(shu)(shu)據(ju)倉庫(ku)。
ADO.NET的(de)一(yi)個主要創新是(shi)(shi)引(yin)入(ru)(ru)了數(shu)據(ju)集(ji)(ji)(Dataset)。一(yi)個數(shu)據(ju)集(ji)(ji)是(shi)(shi)內存中(zhong)提供數(shu)據(ju)關系圖的(de)高速緩沖(chong)區。數(shu)據(ju)集(ji)(ji)對數(shu)據(ju)源一(yi)無(wu)所知,它(ta)們可(ke)以由(you)程序或(huo)通過從數(shu)據(ju)倉庫中(zhong)調入(ru)(ru)數(shu)據(ju)而被生成、填充。不論數(shu)據(ju)從何處獲取,數(shu)據(ju)集(ji)(ji)都是(shi)(shi)通過使用(yong)(yong)同樣的(de)程序模板(ban)而被操(cao)作(zuo)的(de),并且它(ta)使用(yong)(yong)相同的(de)潛(qian)在的(de)數(shu)據(ju)緩沖(chong)區。使用(yong)(yong).NET平(ping)臺的(de)開發人員能(neng)夠用(yong)(yong)數(shu)據(ju)集(ji)(ji)代替傳統ADO中(zhong)無(wu)連接的(de)記錄集(ji)(ji)。
受(shou)控數(shu)據(ju)(ju)提供者為(wei)數(shu)據(ju)(ju)倉庫(ku)和(he)數(shu)據(ju)(ju)集(ji)公開一名(ming)為(wei)DataSetCommand 的接口對象。DataSetCommand 使用ADO.NET鏈接和(he)命令以從數(shu)據(ju)(ju)倉庫(ku)中(zhong)填(tian)充數(shu)據(ju)(ju)集(ji),并(bing)把在數(shu)據(ju)(ju)集(ji)中(zhong)發生的變化解析(xi)到(dao)數(shu)據(ju)(ju)倉庫(ku)中(zhong)。
就象DataReaders 顯示了對(dui)于相關(guan)數(shu)(shu)據(ju)(ju)的(de)(de)有效的(de)(de)流(liu)訪問一樣,XmlReaders 顯示了對(dui)XML數(shu)(shu)據(ju)(ju)的(de)(de)流(liu)訪問。開(kai)發(fa)人員(yuan)使用DataNavigator 可以滾動和編(bian)輯內存(cun)中的(de)(de)XML文檔。DataNavigator在功能(neng)上和W3C Document Object Model (DOM)是(shi)一樣的(de)(de),但(dan)它更有效,并(bing)提供了能(neng)很好映射關(guan)系數(shu)(shu)據(ju)(ju)表(biao)的(de)(de)對(dui)象模(mo)板。DataNavigator 支持Xpath語(yu)法以對(dui)數(shu)(shu)據(ju)(ju)流(liu)進行導(dao)航。ADO.NET為(wei)那些(xie)希望繼續(xu)使用DOM作為(wei)XML對(dui)象模(mo)板而不(bu)是(shi)使用更有效的(de)(de)DataNavigator模(mo)板的(de)(de)開(kai)發(fa)人員(yuan)提供了一個XMLDocument類。
由于所有(you)的數(shu)據(ju)都可被看作XML,所以(yi)(yi)開發(fa)人員可以(yi)(yi)為任何數(shu)據(ju)使(shi)用轉(zhuan)(zhuan)換和確認(ren)(ren)服務。ADO.NET定(ding)義(yi)(yi)了一個(ge)消費DataNavigator、生成一個(ge)新的XmlReader的通用轉(zhuan)(zhuan)換體系。.NET Framework提(ti)供了一個(ge)支(zhi)持(chi)W3C XSL Transformations (XSLT)細則的特殊轉(zhuan)(zhuan)換組件(jian)。ADO.NET同時提(ti)供了一使(shi)用XML簡圖(tu)確認(ren)(ren)XmlReader的確認(ren)(ren)引擎(qing)。ADO.NET支(zhi)持(chi)通過DTDs, XSD或 XDR定(ding)義(yi)(yi)的簡圖(tu)。

??表單應用(yong)模板

從概念(nian)上(shang)講,在(zai)服(fu)(fu)(fu)務框架的最上(shang)面是兩個應用(yong)(yong)(yong)(yong)程(cheng)序(xu)(xu)模板:Windows應用(yong)(yong)(yong)(yong)程(cheng)序(xu)(xu)模板和網(wang)絡應用(yong)(yong)(yong)(yong)程(cheng)序(xu)(xu)模板。盡(jin)管我把(ba)重點放在(zai)把(ba)微軟.NET 框架用(yong)(yong)(yong)(yong)作開發網(wang)絡服(fu)(fu)(fu)務和網(wang)絡應用(yong)(yong)(yong)(yong)程(cheng)序(xu)(xu)的一種途徑(jing)上(shang),但框架也可用(yong)(yong)(yong)(yong)于開發較傳統的基于Windows的應用(yong)(yong)(yong)(yong)程(cheng)序(xu)(xu)(當然,這些(xie)應用(yong)(yong)(yong)(yong)程(cheng)序(xu)(xu)也能使用(yong)(yong)(yong)(yong)網(wang)絡服(fu)(fu)(fu)務)。
編(bian)寫Windows客(ke)戶應用(yong)(yong)程(cheng)序(xu)的(de)開發人員可(ke)使(shi)用(yong)(yong)Win表(biao)單(dan)應用(yong)(yong)程(cheng)序(xu)模板以利用(yong)(yong)Windows豐富的(de)用(yong)(yong)戶接口特點,包(bao)括現在的(de)ActiveX控件和Windows 2000的(de)新特點,如透明的(de)、分層的(de)、浮動窗口。可(ke)以選擇傳統(tong)的(de)Windows或網絡外觀。得知它和現在的(de)基于Windows表(biao)單(dan)包(bao)的(de)相(xiang)似性(xing)以后,開發人員會(hui)發現Win表(biao)單(dan)可(ke)編(bian)程(cheng)模板和對設計階段(duan)的(de)支持(chi)非常直觀。
Win 表單利用了Microsft .NET框架 runtime以(yi)減少(shao)基于(yu)Windows的客(ke)(ke)戶(hu)應(ying)用程(cheng)序(xu)的開銷(xiao)。只(zhi)要應(ying)用程(cheng)序(xu)和組(zu)件是用Win所寫或被Win表單應(ying)用程(cheng)序(xu)使用,那(nei)么它們就能被框架安全模板在客(ke)(ke)戶(hu)機上安全地(di)執行。如果以(yi)這種方式使用或執行,那(nei)么某人從(cong)Internet下載下來的生猛(meng)游(you)戲(xi)就不會(hui)對配制信息(xi)和數據產生破壞(huai),否則會(hui)自動地(di)給用戶(hu)地(di)址薄(bo)里的每一個(ge)人發(fa)送電子(zi)郵件。
Microsft .NET框架 裝配模板簡化(hua)了應用(yong)(yong)程序(xu)的(de)(de)配制和(he)版本(ben)化(hua) 。應用(yong)(yong)程序(xu)可被(bei)配制為使用(yong)(yong)它(ta)們在編譯和(he)測試所用(yong)(yong)的(de)(de)共享(xiang)組(zu)件,而(er)不是使用(yong)(yong)恰好在客戶機器上安裝的(de)(de)隨便什(shen)么版本(ben)的(de)(de)組(zu)件,這就提高了應用(yong)(yong)程序(xu)的(de)(de)可靠性,減少了應用(yong)(yong)程序(xu)所支持調(diao)用(yong)(yong)的(de)(de)主(zhu)要因素:用(yong)(yong)戶接口控件和(he)其它(ta)共享(xiang)組(zu)件版本(ben)的(de)(de)不兼容性。

??網絡(luo)應用程(cheng)序模板

建立在(zai)Microsft .NET框架 上網(wang)絡(luo)應(ying)用程序(xu)(xu)共(gong)享一(yi)個(ge)通(tong)用應(ying)用程序(xu)(xu)模(mo)板。在(zai)這個(ge)模(mo)型中(zhong),網(wang)絡(luo)應(ying)用程序(xu)(xu)是一(yi)套起(qi)源于基URL 的URLs。因此它包(bao)含用于生成在(zai)瀏覽器中(zhong)觀看的網(wang)頁的網(wang)絡(luo)應(ying)用程序(xu)(xu)和網(wang)絡(luo)服務(wu)。在(zai)本節中(zhong),我將(jiang)詳細介紹(shao)稱為(wei)Active Server Pages+ (ASP.NET)的網(wang)絡(luo)應(ying)用程序(xu)(xu)可(ke)編(bian)程模(mo)板
如(ru)(ru)同你從名字猜到的(de)(de)(de)那樣(yang),ASP.NET是由(you)活(huo)動服(fu)務(wu)器頁面發展而來。ASP.NET利(li)用common language runtime 和(he)服(fu)務(wu)框架網絡應用程(cheng)序提供了一個可靠的(de)(de)(de)、自(zi)動化的(de)(de)(de)、可擴展的(de)(de)(de)主機環境。ASP.NET也受益于common language runtime 集成(cheng)模板,簡化了應用程(cheng)序的(de)(de)(de)配制。另外,它提供簡化應用程(cheng)序開發的(de)(de)(de)服(fu)務(wu)(如(ru)(ru)狀態管理服(fu)務(wu))以及高水平的(de)(de)(de)編程(cheng)模板(如(ru)(ru)ASP.NET Web Forms和(he)ASP.NET Web Services)。
ASP.NET的(de)(de)(de)核心是(shi)HTTP運(yun)行(xing)(xing)(xing)語言,一個高性(xing)能(neng)的(de)(de)(de)用(yong)于(yu)處(chu)理(li)基于(yu)低(di)級(ji)結構的(de)(de)(de)HTTP請求的(de)(de)(de)運(yun)行(xing)(xing)(xing)語言,而基于(yu)的(de)(de)(de)結構與MicroSoft Internet Information Services (IIS)所(suo)提供的(de)(de)(de)ISAPI結構相似。如同(tong)你(ni)在圖(tu)5所(suo)看到的(de)(de)(de),HTTP 運(yun)行(xing)(xing)(xing)語言是(shi)在象服務器(qi)上的(de)(de)(de)IIS或客戶機上的(de)(de)(de)IE之類的(de)(de)(de)unmanaged 主(zhu)機過程(cheng)中運(yun)行(xing)(xing)(xing)的(de)(de)(de)受控代(dai)碼。HTTP runtime負責處(chu)理(li)引(yin)入的(de)(de)(de)所(suo)有HTTP請求,并對(dui)每個請求應用(yong)程(cheng)序(xu)(xu)的(de)(de)(de)URL進行(xing)(xing)(xing)解析(xi),然后(hou)把請求分配到應用(yong)程(cheng)序(xu)(xu)以進行(xing)(xing)(xing)進一步的(de)(de)(de)處(chu)理(li)。HTTP 運(yun)行(xing)(xing)(xing)語言是(shi)多(duo)線程(cheng)的(de)(de)(de),并異步處(chu)理(li)請求,因(yin)(yin)此劣質的(de)(de)(de)應用(yong)程(cheng)序(xu)(xu)代(dai)碼阻礙不了它(ta)對(dui)新(xin)請求的(de)(de)(de)處(chu)理(li)。而且HTTP 運(yun)行(xing)(xing)(xing)語言假定(ding)失敗(bai)必會發生,因(yin)(yin)此它(ta)被控制為(wei)盡最大力(li)量自動地(di)從(cong)訪問沖突、內存(cun)泄漏、死鎖等事(shi)故中恢復過來(lai)。除非是(shi)硬(ying)件故障,運(yun)行(xing)(xing)(xing)語言的(de)(de)(de)目標是(shi)100%的(de)(de)(de)可靠性(xing)。
ASP.NET使用(yong)(yong)(yong)(yong)基(ji)于(yu)(yu)構件(jian)(jian)的(de)(de)(de)(de)Microsft .NET框架配(pei)制(zhi)模板(ban),因此它獲(huo)得了如XCOPY配(pei)制(zhi)、構件(jian)(jian)并行配(pei)制(zhi)、基(ji)于(yu)(yu)XML配(pei)制(zhi)等優點。ASP.NET另一(yi)個主要(yao)優點是,它支(zhi)持(chi)應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序的(de)(de)(de)(de)實時更(geng)(geng)新(xin)(xin)。管理員不(bu)(bu)必(bi)關(guan)掉網絡服(fu)務器或者甚(shen)至不(bu)(bu)用(yong)(yong)(yong)(yong)停止應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序的(de)(de)(de)(de)運(yun)行就(jiu)可以更(geng)(geng)新(xin)(xin)應用(yong)(yong)(yong)(yong)文(wen)件(jian)(jian)。應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序文(wen)件(jian)(jian)永遠不(bu)(bu)會(hui)(hui)被(bei)加(jia)鎖,因此甚(shen)至在(zai)程(cheng)(cheng)(cheng)序運(yun)行時文(wen)件(jian)(jian)就(jiu)可以被(bei)覆蓋。當文(wen)件(jian)(jian)更(geng)(geng)新(xin)(xin)后,系(xi)統(tong)會(hui)(hui)溫和地轉(zhuan)換到新(xin)(xin)的(de)(de)(de)(de)版本。系(xi)統(tong)檢測文(wen)件(jian)(jian)變化,并用(yong)(yong)(yong)(yong)新(xin)(xin)的(de)(de)(de)(de)應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序代碼建立一(yi)個新(xin)(xin)的(de)(de)(de)(de)應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序實例(li),然后將引入的(de)(de)(de)(de)請求路(lu)由到應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序。當所(suo)有(you)被(bei)現(xian)存的(de)(de)(de)(de)應用(yong)(yong)(yong)(yong)程(cheng)(cheng)(cheng)序實例(li)處理的(de)(de)(de)(de)未完(wan)成的(de)(de)(de)(de)請求處理完(wan)后,該實例(li)就(jiu)被(bei)銷(xiao)毀了。
在應用(yong)(yong)程(cheng)(cheng)(cheng)序(xu)中,HTTP請(qing)求(qiu)是通(tong)過HTTP模(mo)塊的(de)一個(ge)管道路由(you)的(de),最終到達(da)請(qing)求(qiu)處(chu)理(li)程(cheng)(cheng)(cheng)序(xu)。HTTP模(mo)塊和請(qing)求(qiu)處(chu)理(li)程(cheng)(cheng)(cheng)序(xu)是一些(xie)實(shi)現(xian)特(te)殊接口(kou)的(de)受控類(lei),而這些(xie)接口(kou)是由(you)ASP.NET定義的(de)。這種管道結構(gou)使(shi)得為應用(yong)(yong)程(cheng)(cheng)(cheng)序(xu)增(zeng)加服務非(fei)常方(fang)便:只需(xu)補(bu)充一個(ge)HTTP模(mo)塊。例如,安全,狀態管理(li)及跟(gen)蹤都被實(shi)現(xian)為HTTP模(mo)塊。高級可(ke)編程(cheng)(cheng)(cheng)模(mo)塊,如網絡(luo)服務和網絡(luo)表單,通(tong)常被實(shi)現(xian)為請(qing)求(qiu)處(chu)理(li)程(cheng)(cheng)(cheng)序(xu)。一個(ge)應用(yong)(yong)程(cheng)(cheng)(cheng)序(xu)能鏈接與多個(ge)請(qing)求(qiu)處(chu)理(li)程(cheng)(cheng)(cheng)序(xu)——每個(ge)處(chu)理(li)程(cheng)(cheng)(cheng)序(xu)一個(ge)URL,但是所有的(de)HTTP請(qing)求(qiu)都通(tong)過同樣(yang)的(de)管道路由(you)。
網(wang)絡(luo)(luo)(luo)基本上是(shi)一個(ge)無狀(zhuang)態(tai)(tai)(tai)模型(xing),并且(qie)在(zai)HTTP請求(qiu)(qiu)間沒(mei)有聯系,這使得編(bian)寫網(wang)絡(luo)(luo)(luo)應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)很困(kun)難,因(yin)為(wei)應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)通(tong)常(chang)需(xu)要(yao)維護跨多(duo)個(ge)請求(qiu)(qiu)的(de)(de)(de)狀(zhuang)態(tai)(tai)(tai)。ASP.NET增強(qiang)了由(you)ASP引(yin)入的(de)(de)(de)狀(zhuang)態(tai)(tai)(tai)管(guan)理服(fu)務(wu)(wu),以便為(wei)網(wang)絡(luo)(luo)(luo)應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)提(ti)(ti)供三(san)種(zhong)類(lei)型(xing)的(de)(de)(de)狀(zhuang)態(tai)(tai)(tai):應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)、會(hui)話(hua)(hua)、用(yong)(yong)(yong)戶(hu)(hu)。就象在(zai)ASP中(zhong)一樣(yang),應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)狀(zhuang)態(tai)(tai)(tai)特定于一個(ge)應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)實例(li),并且(qie)不(bu)會(hui)持(chi)久。會(hui)話(hua)(hua)狀(zhuang)態(tai)(tai)(tai)是(shi)特定于一個(ge)用(yong)(yong)(yong)戶(hu)(hu)與應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)間的(de)(de)(de)會(hui)話(hua)(hua)的(de)(de)(de)。與ASP會(hui)話(hua)(hua)狀(zhuang)態(tai)(tai)(tai)不(bu)同,ASP.NET會(hui)話(hua)(hua)狀(zhuang)態(tai)(tai)(tai)儲(chu)存在(zai)一個(ge)獨(du)(du)立(li)的(de)(de)(de)過(guo)程(cheng)中(zhong),并且(qie)可把它配制成(cheng)可以儲(chu)存到(dao)一個(ge)獨(du)(du)立(li)的(de)(de)(de)機器(qi)上。這使得會(hui)話(hua)(hua)狀(zhuang)態(tai)(tai)(tai)當(dang)應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)在(zai)網(wang)絡(luo)(luo)(luo)群(Web farm)擴(kuo)展時非常(chang)有用(yong)(yong)(yong)。用(yong)(yong)(yong)戶(hu)(hu)狀(zhuang)態(tai)(tai)(tai)類(lei)似(si)于會(hui)話(hua)(hua)狀(zhuang)態(tai)(tai)(tai),但通(tong)常(chang)它不(bu)會(hui)超時,并且(qie)是(shi)永(yong)久性的(de)(de)(de)。因(yin)此,用(yong)(yong)(yong)戶(hu)(hu)狀(zhuang)態(tai)(tai)(tai)對儲(chu)存用(yong)(yong)(yong)戶(hu)(hu)參數(shu)和其它個(ge)性化的(de)(de)(de)信息是(shi)有用(yong)(yong)(yong)的(de)(de)(de)。所有狀(zhuang)態(tai)(tai)(tai)管(guan)理服(fu)務(wu)(wu)都被實現為(wei)HTTP模塊,因(yin)此它們容(rong)易增加到(dao)應(ying)(ying)(ying)用(yong)(yong)(yong)程(cheng)序(xu)(xu)(xu)(xu)管(guan)道中(zhong),或從(cong)中(zhong)刪除。如(ru)果除了由(you)ASP.NET提(ti)(ti)供的(de)(de)(de)服(fu)務(wu)(wu)外,還需(xu)要(yao)額外的(de)(de)(de)狀(zhuang)態(tai)(tai)(tai)管(guan)理服(fu)務(wu)(wu),那么(me)可由(you)第三(san)方的(de)(de)(de)模塊提(ti)(ti)供。
ASP.NET同樣提供高速緩沖服(fu)務,以(yi)改善性能(neng)。輸出緩沖可完全節省(sheng)網頁翻譯,段(duan)緩沖儲(chu)(chu)存(cun)部(bu)分(fen)的網頁。由于提供了相應的類,所以(yi)只(zhi)要(yao)需要(yao),應用程序(xu)、HTTP模塊(kuai)以(yi)及(ji)請求處(chu)理程序(xu)可以(yi)在高速緩存(cun)中(zhong)儲(chu)(chu)存(cun)任意(yi)數量的對象。
下(xia)(xia)面快速(su)瀏(liu)覽一下(xia)(xia)建立在ASP.NET可編程模(mo)塊之上的(de)兩個高(gao)級可編程模(mo)塊:ASP.NET 網絡(luo) 表單(dan)和 ASP.NET 網絡(luo) 服務(wu)。

??ASP.NET 網絡表單

網(wang)(wang)絡(luo)表(biao)(biao)單把基于Visual Basic?的(de)(de)表(biao)(biao)單的(de)(de)高生產性的(de)(de)優(you)點帶到(dao)了(le)(le)網(wang)(wang)絡(luo)應用程(cheng)序(xu)的(de)(de)開(kai)發(fa)(fa)中來。網(wang)(wang)絡(luo)表(biao)(biao)單支持傳統(tong)的(de)(de)將HTML內容與角本代碼(ma)混合的(de)(de)ASP語法(fa),但(dan)是它提出(chu)了(le)(le)一種將應用程(cheng)序(xu)代碼(ma)和(he)用戶(hu)接口(kou)內容分離(li)的(de)(de)更加結(jie)構化的(de)(de)方(fang)法(fa)。引入的(de)(de)網(wang)(wang)絡(luo)表(biao)(biao)單控(kong)件用于為封(feng)裝通用用戶(hu)接口(kou)元素提供了(le)(le)一種機(ji)制。這些新的(de)(de)特點使得(de)開(kai)發(fa)(fa)工(gong)具在(zai)支持VB小應用程(cheng)序(xu)的(de)(de)同(tong)時,也支持設計時模塊,使得(de)WUSIWYG工(gong)具支持網(wang)(wang)頁布局(ju)。
網(wang)(wang)絡表(biao)(biao)單控(kong)(kong)(kong)件負責生(sheng)成用戶(hu)接(jie)口,典(dian)型情況是(shi)在(zai)(zai)HTML表(biao)(biao)單中。ASP.NET是(shi)提供了一(yi)(yi)套映射傳(chuan)統的(de)HTML用戶(hu)接(jie)口小部件(包(bao)括列表(biao)(biao)框(kuang),文本(ben)框(kuang)和按鈕)的(de)網(wang)(wang)絡表(biao)(biao)單控(kong)(kong)(kong)件和一(yi)(yi)套附加的(de)更加復雜的(de)網(wang)(wang)絡控(kong)(kong)(kong)件(如日歷和廣告(gao)轉(zhuan)板)。這些控(kong)(kong)(kong)件的(de)一(yi)(yi)個重(zhong)要特(te)點是(shi),它們(men)可以被編寫以適(shi)應客(ke)戶(hu)端(duan)的(de)能(neng)(neng)力;同(tong)一(yi)(yi)網(wang)(wang)頁把大(da)范圍的(de)客(ke)戶(hu)端(duan)平臺和表(biao)(biao)單因素(su)作為(wei)目標。換句話(hua)說,網(wang)(wang)絡表(biao)(biao)單控(kong)(kong)(kong)件能(neng)(neng)“嗅”到(dao)正在(zai)(zai)查(cha)找表(biao)(biao)單的(de)客(ke)戶(hu),然后返回合適(shi)的(de)用戶(hu)經驗――可能(neng)(neng)是(shi)適(shi)合低級瀏覽(lan)器的(de)HTML3.2或(huo)是(shi)適(shi)于(yu)IE5.0的(de)動態HTML。
考(kao)慮到網(wang)(wang)絡是一(yi)種無狀(zhuang)態的(de)(de)(de)聯接(jie)模型,網(wang)(wang)絡應用(yong)程(cheng)序開(kai)發(fa)人(ren)員(yuan)所(suo)面臨的(de)(de)(de)一(yi)個很復(fu)雜(za)(za)的(de)(de)(de)問題是,他們要對(dui)用(yong)戶(hu)與(yu)基于網(wang)(wang)絡的(de)(de)(de)接(jie)口的(de)(de)(de)交(jiao)(jiao)(jiao)互作用(yong)作出反(fan)應。網(wang)(wang)絡利用(yong)ASP.NET的(de)(de)(de)體系(xi)架構提供了一(yi)套豐(feng)富的(de)(de)(de)服(fu)務(wu),以幫助(zhu)開(kai)發(fa)人(ren)員(yuan)建(jian)立交(jiao)(jiao)(jiao)互式網(wang)(wang)頁。這些服(fu)務(wu)的(de)(de)(de)凈作用(yong)是使(shi)基于組(zu)件(jian)的(de)(de)(de)、事件(jian)驅動(dong)的(de)(de)(de)可編程(cheng)模塊,對(dui)開(kai)發(fa)人(ren)員(yuan)來說,非常象客戶(hu)端的(de)(de)(de)表單程(cheng)序設計(ji)。用(yong)戶(hu)與(yu)網(wang)(wang)頁交(jiao)(jiao)(jiao)互作用(yong)的(de)(de)(de)狀(zhuang)態管理的(de)(de)(de)復(fu)雜(za)(za)性(xing)被ASP.NET 網(wang)(wang)絡 表單和網(wang)(wang)絡表單控件(jian)隱藏起來了。對(dui)開(kai)發(fa)人(ren)員(yuan)來說,提供的(de)(de)(de)豐(feng)富數(shu)據(ju)綁定服(fu)務(wu)使(shi)得顯示(shi)通過數(shu)據(ju)訪(fang)問服(fu)務(wu)得到的(de)(de)(de)數(shu)據(ju)變得非常容易(yi)。
代(dai)(dai)碼(ma)與內(nei)容的(de)分離(li)使ASP.NET網(wang)頁能動(dong)態地編譯到受控(kong)類中,用以提高性能。每個引入的(de)HTTP請求(qiu)都被傳(chuan)遞到一個新的(de)網(wang)頁實例,因此開發人員(yuan)不需要(yao)關心代(dai)(dai)碼(ma)中的(de)線程(cheng)安全性。

??ASP.NET 網(wang)絡 服務

ASP.NET 網(wang)(wang)絡(luo)(luo) 服務(wu)(wu)體系架構為用(yong)ASP.NET建(jian)立網(wang)(wang)絡(luo)(luo) 服務(wu)(wu)提(ti)供了一高級可編(bian)程(cheng)模板。雖(sui)然建(jian)立網(wang)(wang)絡(luo)(luo)服務(wu)(wu)并不需(xu)要(yao)使用(yong)網(wang)(wang)絡(luo)(luo) 服務(wu)(wu)平(ping)臺,但(dan)是(shi)它提(ti)供許多的(de)優點將簡化開(kai)發過程(cheng),并且(qie)它使用(yong)的(de)編(bian)程(cheng)模型(xing)對(dui)用(yong)ASP或VB工作(zuo)的(de)開(kai)發人員(yuan)來(lai)說是(shi)很熟悉的(de)。使用(yong)這個可編(bian)程(cheng)模型(xing),開(kai)發人員(yuan)不需(xu)要(yao)理解HTTP、SOAP或其它任何(he)網(wang)(wang)絡(luo)(luo)服務(wu)(wu)規范。
開發(fa)人(ren)員(yuan)用ASP.NET生成一(yi)個擴展名為(wei).asmx的(de)文(wen)件(jian)(jian),并把此文(wen)件(jian)(jian)配制為(wei)網(wang)絡(luo)應(ying)用程序的(de)一(yi)部分,就建(jian)立(li)起(qi)了一(yi)個網(wang)絡(luo) 服(fu)務(wu)。ASMX文(wen)件(jian)(jian)或者包含對在其(qi)它地(di)方定義的(de)受控類的(de)引用,或者包含這(zhe)(zhe)個類的(de)定義。這(zhe)(zhe)個類是由ASP.NET提供的(de)WebService類所派生。公有的(de)類方法(fa)在標(biao)記上(shang)WebMethod屬性后,就會成為(wei)網(wang)絡(luo)服(fu)務(wu)方法(fa),把HTTP請求發(fa)送到(dao)ASMX文(wen)件(jian)(jian)中的(de)URL后,這(zhe)(zhe)些方法(fa)就會被調用。你不必手工為(wei)你的(de)網(wang)絡(luo)服(fu)務(wu)建(jian)立(li)一(yi)個契約。當被調用者請求時,ASP.NET檢查類的(de)元數據,以(yi)自動生成SCL文(wen)件(jian)(jian)。
客戶可(ke)通過SOAP,HTTP GET 和(he)HTTP POST提(ti)交(jiao)請求。對方法和(he)參數進行編碼(ma)的約定(ding)是:對HTTP GET,將被編碼(ma)為查詢字符串(chuan);對HTTP POST,將被編碼(ma)為表(biao)單數據。HTTP GET 和(he)HTTP POST 的機制不(bu)如SOAP有力(li),但(dan)是它們使(shi)得客戶在訪(fang)問網(wang)絡服務時不(bu)必(bi)支持SOAP。
ASP.NET 網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)模(mo)型(xing)假定(ding)了一個無(wu)(wu)狀態服(fu)(fu)務(wu)(wu)結構(gou)(gou)。無(wu)(wu)狀態結構(gou)(gou)通(tong)常比有狀態結構(gou)(gou)更具可擴展(zhan)性。每(mei)次收到一個服(fu)(fu)務(wu)(wu)請求(qiu)后,就生成(cheng)一個新對象,請求(qiu)被(bei)轉化為一個方(fang)法(fa)調用(yong),當方(fang)法(fa)調用(yong)返回時對象被(bei)銷毀。如果這些服(fu)(fu)務(wu)(wu)需(xu)要跨(kua)請求(qiu)維護(hu)狀態,那么(me)它(ta)們(men)將使用(yong)ASP.NET狀態管理服(fu)(fu)務(wu)(wu)。基于ASP.NET的網絡(luo)(luo)(luo)服(fu)(fu)務(wu)(wu)在網絡(luo)(luo)(luo)應用(yong)程序模(mo)型(xing)中運(yun)行,因此(ci)它(ta)們(men)得到了該模(mo)型(xing)的所(suo)有安全(quan)、配制(zhi)和(he)其它(ta)優點。
ASP.NET 網(wang)絡(luo)(luo)服(fu)務(wu)(wu)還提供了一(yi)個為在SCL文件(jian)中描述的(de)網(wang)絡(luo)(luo)服(fu)務(wu)(wu)生(sheng)成(cheng)分(fen)類(lei)的(de)受控代理(li)工具。代理(li)生(sheng)成(cheng)器把SCL文件(jian)中描述的(de)消息映射成(cheng)受控類(lei)中的(de)方法(fa)。代理(li)對(dui)應用(yong)程序代碼(ma)隱藏(zang)了所有的(de)網(wang)絡(luo)(luo)和(he)引導設備,因(yin)此(ci)(ci)使用(yong)網(wang)絡(luo)(luo)服(fu)務(wu)(wu)看起來就象使用(yong)其它(ta)受控代碼(ma)一(yi)樣(yang)。代理(li)將優(you)先使用(yong)SOAP鏈接網(wang)絡(luo)(luo)服(fu)務(wu)(wu),但是它(ta)同(tong)(tong)樣(yang)支(zhi)持HTTP GET和(he) HTTP POST機(ji)制。因(yin)此(ci)(ci)HTTP GET和(he) HTTP POST同(tong)(tong)樣(yang)也能被使用(yong)。
網絡服(fu)(fu)務(wu)為在Internet上綁定應用(yong)程序(xu)提供了一個利用(yong)現存體系架構和應用(yong)程序(xu)的(de)簡單(dan)的(de)、靈活的(de)、基于(yu)許多標準(zhun)的(de)模型(xing)。網絡應用(yong)程序(xu)很(hen)容易(yi)與當(dang)地開發(fa)(fa)的(de)服(fu)(fu)務(wu)或已存在的(de)服(fu)(fu)務(wu)集成在一起,而不(bu)用(yong)考慮開發(fa)(fa)平臺(tai)、開發(fa)(fa)語言或使用(yong)的(de)對象模型(xing),以用(yong)于(yu)實(shi)現任何組(zu)成的(de)服(fu)(fu)務(wu)或應用(yong)程序(xu)。
Microsft .NET框架在現有開發人員技(ji)(ji)巧之上,提(ti)供了一個(ge)應用(yong)程(cheng)序模板和關(guan)鍵技(ji)(ji)術,用(yong)于簡化安全、可(ke)(ke)靠、可(ke)(ke)擴(kuo)展、高(gao)可(ke)(ke)用(yong)性的網絡(luo)服務的建立、部署和不斷的發展。
通過上面的介紹,我(wo)們能夠感(gan)覺到(dao)MicroSoft .NET對于我(wo)們今后的程序設計(ji)將產生巨大的影響。
1.1.3 ASP.NET歷史
???? 我們在講述ASP.NET歷史(shi)之前,讓我們來回顧一下ASP。
? ASP的第一個(ge)版本是0.9測試版。它(ta)給WEB開發(fa)帶(dai)來一陣(zhen)暴風,它(ta)能(neng)夠(gou)將(jiang)代碼直接嵌入HTML,使得(de)設(she)計WEB頁面變得(de)更簡單,更強(qiang)大,并且通過內置的組(zu)件能(neng)夠(gou)實現強(qiang)大功能(neng),最明顯的就是ActiveX Data Objects (ADO),它(ta)使得(de)建立一個(ge)動態頁面如小孩子(zi)玩游戲一樣(yang)簡單。
???? 最(zui)終出場的是(shi)(shi)Active Server Page 1.0,它(ta)做為IIS的附屬產(chan)品免費發(fa)送(song)。并且不久就在Windows平(ping)臺上廣泛使(shi)用。ASP與ADO的結合使(shi)用開發(fa)者很容易地(di)在一個數據庫中建立(li)和打(da)開一個記錄集。這(zhe)不無(wu)疑(yi)是(shi)(shi)它(ta)如此快就被大眾(zhong)接受的因(yin)(yin)素,因(yin)(yin)為你現在能使(shi)用這(zhe)些腳本建立(li)和打(da)開一個記錄集,處理和輸出任何(he)(he)數據,以任何(he)(he)順(shun)序(xu),幾(ji)乎只要你能想到的,它(ta)就能完成(cheng)。
???? 1998年,微(wei)軟(ruan)公司又發(fa)布了(le)(le)(le)ASP 2.0 。ASP 1.0和ASP 2.0主要(yao)區別是(shi)外部的組件(jian)(jian)需要(yao)實(shi)例化。有了(le)(le)(le)ASP 2.0 和IIS 4.0,我們(men)就(jiu)有可(ke)能建立(li)ASP應用(yong)了(le)(le)(le),而且每個組件(jian)(jian)就(jiu)有了(le)(le)(le)自(zi)已單獨的內(nei)存空間。內(nei)置的MicroSoft Transaction Server(MTS)也使用(yong)制做組件(jian)(jian)便得簡單。
微軟(ruan)公司接(jie)著開發了Windows 2000操作系統。 這個Windows版(ban)本給(gei)(gei)我(wo)們帶上了IIS 5.0 以(yi)及 ASP 3.0。此次(ci)并不(bu)是簡單(dan)對(dui)ASP進行補充,核(he)心(xin)的(de)不(bu)同(tong)(tong)實際(ji)上是把很(hen)多的(de)事(shi)情交給(gei)(gei)了COM來(lai)(lai)做(zuo)。在(zai)(zai)(zai)windows 2000中,微軟(ruan)結合了MTS與COM核(he)心(xin)環境做(zuo)出了COM+,這就讓主機有了一(yi)種新的(de)方(fang)法來(lai)(lai)使用組(zu)(zu)件(jian),同(tong)(tong)樣(yang)給(gei)(gei)主機帶來(lai)(lai)了更(geng)多的(de)穩定性,成了一(yi)個可以(yi)升級的(de)效率高的(de)工作平臺。IIS? 5.0在(zai)(zai)(zai)表(biao)面上似(si)乎沒(mei)有改什么,但是在(zai)(zai)(zai)接(jie)口上動的(de)手術比較大。在(zai)(zai)(zai)內(nei)部(bu),它(ta)使用COM+ 組(zu)(zu)件(jian)服務來(lai)(lai)對(dui)組(zu)(zu)件(jian)提供一(yi)個更(geng)好(hao)的(de)執(zhi)行的(de)環境。
有(you)了(le)這些,微軟公司推出了(le)ASP.NET,ASP.NET又叫ASP.NET,他(ta)不是ASP的(de)簡單(dan)(dan)升級,而是MicroSoft推出的(de)新一代(dai)Active Server Pages。ASP.NET是微軟發展的(de)新的(de)體系結(jie).NET的(de)一部(bu)分,其中全(quan)新的(de)技術架構會讓每(mei)個人的(de)編程生活變得更的(de)簡單(dan)(dan)


1.1.4小結
在本章中,我(wo)們介紹了(le)微軟.NET的(de)(de)歷史,以及對(dui).NET的(de)(de)構(gou)成(cheng)、性(xing)能(neng)進行了(le)一個詳細(xi)的(de)(de)介紹,同(tong)時,我(wo)們還(huan)詳細(xi)介紹了(le)ASP.NET的(de)(de)歷史。在下面的(de)(de)章節中,我(wo)們將按實例(li)一步(bu)一步(bu)的(de)(de)講解ASP.NET。

第二章 .NET的安裝與運行環境(jing)

1.2.1 運行環境配置
??ASP.NET的(de)調(diao)試(shi)環境
操作系統:
Windows 2000 Professional,Windows 2000 Server ,Windows 2000? Advanced Server
瀏覽器:
IE 5.5????
NGWS

??支持哪幾種語言
? ASP.NET 目前能支持3種與語(yu)言, C# (讀作 "C Sharp"), Visual Basic,and Jscrip。.
??
??使你的機器持ASP.NET,必須滿足以下配(pei)置:
???
硬件(jian)要(yao)求:
1、 CPU: Intel Pentium II-class 300 MHz (最好Intel Pentium III-class 600 MHz)
2、 內存: 96 MB (最好(hao)128 MB)
3、 磁盤(pan)空間: 250 MB(完全安裝) 155 MB(快速安裝)
4、 顯示: 800x600, 256 colors
5、 CD-ROM: required

軟件要求:
1、 MicroSoft Windows 2000 + SP1
2、 MicroSoft Internet Explorer 5.5
3、 IIS5.0
4 、 其它: MDAC 2.6 Beta 2

??.NET是運行庫,還(huan)是開發平臺(tai)?

微(wei)軟(ruan)的(de)(de)(de)(de)宏偉(wei)目標是(shi)(shi)讓MicroSoft.NET徹底(di)改(gai)變軟(ruan)件的(de)(de)(de)(de)開(kai)(kai)發(fa)(fa)(fa)方(fang)式、發(fa)(fa)(fa)行(xing)(xing)(xing)(xing)方(fang)式、使(shi)用(yong)(yong)方(fang)式等等,并且不止是(shi)(shi)針對微(wei)軟(ruan)一(yi)(yi)(yi)家(jia),而是(shi)(shi)面(mian)向所有公司(si)!2000年7月份在(zai)PDC展會上(shang)(shang)分發(fa)(fa)(fa)的(de)(de)(de)(de)是(shi)(shi)“.NET架構(gou)”包,“.NET架構(gou)”是(shi)(shi)MicroSoft.NET計劃中(zhong)(zhong)(zhong)首先(xian)問世(shi)的(de)(de)(de)(de)一(yi)(yi)(yi)部分,它(ta)包括了(le)(le)兩方(fang)面(mian)的(de)(de)(de)(de)組件:“.NET通用(yong)(yong)運行(xing)(xing)(xing)(xing)庫”和“.NET類庫”。最近傳來好消息說這兩個(ge)(ge)組件已經被(bei)打包到(dao)(dao)“.NET架構(gou)SDK”中(zhong)(zhong)(zhong),放(fang)在(zai)微(wei)軟(ruan)的(de)(de)(de)(de)站(zhan)上(shang)(shang)免費供大家(jia)下載,有興(xing)趣的(de)(de)(de)(de)朋友一(yi)(yi)(yi)定(ding)要(yao)去試(shi)試(shi)看哦!另(ling)外,這個(ge)(ge)SDK中(zhong)(zhong)(zhong)還包括C#、C++、JavaScript和VB的(de)(de)(de)(de)命(ming)令行(xing)(xing)(xing)(xing)編譯(yi)器(qi),使(shi)用(yong)(yong)這些編譯(yi)器(qi)就可以(yi)開(kai)(kai)發(fa)(fa)(fa)應用(yong)(yong)程序和組件了(le)(le),從這個(ge)(ge)角度來看,.NET架構(gou)首先(xian)是(shi)(shi)一(yi)(yi)(yi)個(ge)(ge)開(kai)(kai)發(fa)(fa)(fa)平臺,因為它(ta)提供了(le)(le)運行(xing)(xing)(xing)(xing)庫和類庫,并且,下一(yi)(yi)(yi)個(ge)(ge)即將(jiang)面(mian)市的(de)(de)(de)(de)就是(shi)(shi)Visual Studio.NET,其中(zhong)(zhong)(zhong)包括了(le)(le)更(geng)加全面(mian)的(de)(de)(de)(de)SDK和圖形化的(de)(de)(de)(de)開(kai)(kai)發(fa)(fa)(fa)界面(mian)、向導、工具(ju)等等,更(geng)象一(yi)(yi)(yi)個(ge)(ge)開(kai)(kai)發(fa)(fa)(fa)平臺了(le)(le)。但是(shi)(shi).NET的(de)(de)(de)(de)運行(xing)(xing)(xing)(xing)庫其實已經融合到(dao)(dao)操作系統中(zhong)(zhong)(zhong),所以(yi)說它(ta)為運行(xing)(xing)(xing)(xing)庫也是(shi)(shi)可以(yi)的(de)(de)(de)(de)。

??什么是NGWS?

ASP.NET實際上是一個嶄(zhan)新的運行(xing)結構的一部(bu)分,這個結構提供對(dui)所有windows應(ying)用程(cheng)序(xu)的支(zhi)持(chi)。這個結構是MicroSoft's Next Generation Web Services ( NGWS)關建部(bu)分。當(dang)你安裝了(le)這個結構,你就(jiu)獲得了(le)ASP.NET。這個結構同樣支(zhi)持(chi)所有其它服務器程(cheng)序(xu)技術。
??? NGWS 結(jie)(jie)構(gou)通過(guo)對可(ke)升(sheng)級分布式應用(yong)(yong)(yong)添加 [新的和(he)增強的服務] 來擴展COM的結(jie)(jie)構(gou),此種結(jie)(jie)構(gou)常(chang)用(yong)(yong)(yong)做編寫(xie)可(ke)重復調用(yong)(yong)(yong)的可(ke)共(gong)同使用(yong)(yong)(yong)的軟件組(zu)件,這些新的和(he)增強的服務有(you):
??? 一套統一的豐富的程(cheng)序(xu)庫
一個支持多語言的運行引(yin)擎
簡(jian)單地應用建立(li),調試,以及(ji)維護
對分布(bu)式應(ying)用(yong)加(jia)強了可升級性
保(bao)護現已(yi)存在(zai)的軟件和投資

??在ASP.NET引(yin)入了namespace的概念,那么(me)namespace是什么(me)?
???
??? 對象一直是(shi)Windows開發環境中,程序開發的(de)中心(xin)。不(bu)論在VB、VBA、VC++、VBScript等,都(dou)是(shi)如此,不(bu)同的(de)開發環境有不(bu)同的(de)對象,這些(xie)對象均是(shi)各(ge)個語(yu)法所提供的(de)的(de)“資(zi)源”,程序開發人員可(ke)以利用這些(xie)資(zi)源,來編(bian)寫所需的(de)系統,就象我們在蓋房屋的(de)一樣(yang),建(jian)筑師使(shi)用使(shi)用同樣(yang)的(de)素材,然而蓋好的(de)房子可(ke)能不(bu)盡相同。
???? 在過去(qu)的SP中(zhong),僅有Server、Request、Response…等(deng)七(qi)個(ge)對(dui)象。而在ASP.NET的對(dui)象庫中(zhong)卻分得很細。
???? 例如(ru)在(zai)ASP.NET網頁中(zhong)要通過SQL語句(ju)獲得數據(ju)庫中(zhong)的數據(ju),必須使用“System.Data.SQL”,這是NameSpace名稱(cheng)。 在(zai)System.Data.SQL下,又(you)有很多(duo)類(Class)。每個(ge)(ge)Class可視為一個(ge)(ge)對象,因(yin)為Class下有屬性、方法和事件等(deng)
???? 所以,最上層的(de)NameSpace是看(kan)作(zuo)是同類(lei)型對象的(de)集合,一(yi)個NameSpace之下可(ke)擁有多個Class。

如何應用名字空間(NameSpace)?

<%@ Import Namespace="System.Globalization"%>

<%@ Import Namespace="DataEmployee" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.ADO" %>

以上表示在(zai)ASP.NET網頁中使(shi)用了四(si)個(ge)(ge)NameSpace,接下來(lai)我們要申明變(bian)量,但此變(bian)量必(bi)須(xu)是(shi)已引(yin)用的(de)四(si)個(ge)(ge)NameSpace所屬的(de)Class,如:

Dim MyConnection As ADOConnection

Dim MyCommand As ADODataSetCommand

??? 說明:ADOConnection及ADODataSetCommand都是System.Data.ADO之下的Class。

??ASP.NET中的(de)文件類型(xing)?

ASP 的文(wen)件類(lei)型只有一(yi)種,其擴展名是.asp文(wen)件。那么在ASP.NET,就有很(hen)多的文(wen)件名:

文(wen)件擴(kuo)展名?用途及說明
Global.asax
? ASP.NET系統(tong)環境(jing)設置文件,相當與ASP中(zhong)的Global.asa。
.aspx
? 內含(han)ASP程(cheng)序代碼的文件(jian),如同(tong)過(guo)去的.asp,瀏覽器(qi)可(ke)執行此(ci)類文件(jian),向服務(wu)器(qi) 提出(chu)瀏覽請求
.asmx
? 制作Web Service的原(yuan)始文件(jian)
.sdl
? 制(zhi)作(zuo)Web Service的XML格式的文(wen)件

Vb或.cs?在非(fei)ASP.NET環境下,執行Web Service的文件
.aspc
? 可重覆(fu)使用在多個.aspx的(de)文(wen)件(jian)(jian),此文(wen)件(jian)(jian)內可含有控件(jian)(jian)
.ascx
? 內(nei)含(han)User Control的文(wen)件,可內(nei)含(han)在多(duo)個(ge).aspx
文件中.

打印本頁】 【關門窗口
上一篇:站點代碼優化(全面提高頁面打開速度) [2013/4/14]
下一篇:Asp.Net 腳本語言介紹 [2013/4/14]
   
 監控維修手冊 []
 超市監控/店鋪監控/超市網... []
 ASP.net發郵件的實例 []
 SQL對象名無效的解決方法 []
 微軟.NET戰略和ASP.NET簡介 []
 Asp.net 文件上傳示例代碼 []
 熱烈祝賀威寧縣人民政府門... []
 站點代碼優化(全面提高頁面... []
 2014年春節放假通知 []
 2015年春節放假通知 []
旗下網站:
Copyright zoozet.cn 版權所有:貴州狼邦科技有限公司
 
地址:貴州省貴陽市南明區花溪大道東側保利鳳凰灣B1區1-12-25號 電話:0851-85111798
業務及技術:13688513435(潘先生) 財務及客服:18985103435(王女士)