国产成人AV,亚洲欧美精品SUV,69久久夜色精品国产69,懂色av

<tfoot id="iguig"><center id="iguig"></center></tfoot>
<li id="iguig"><abbr id="iguig"></abbr></li>
  • <li id="iguig"></li>
  • <abbr id="iguig"><option id="iguig"></option></abbr>
  • 狼邦科技  
    專(zhuān)注于高品質(zhì)網(wǎng)站建設、軟件開(kāi)發(fā)、視頻監控、系統集成、網(wǎng)絡(luò )工程等信息化服務(wù)于一體的科技公司
    網(wǎng)站首頁(yè) 關(guān)于狼邦 產(chǎn)品中心 案例展示 解決方案 新聞資訊 聯(lián)系方式
    您當前的位置:首頁(yè) >> 詳細內容
     
    詳細內容  
    微軟.NET戰略和ASP.NET簡(jiǎn)介

    ASP.NET又叫ASP+,但并不僅僅是ASP的簡(jiǎn)單升級,而是MicroSoft推出的新一代Active Server Pages腳本語(yǔ)言。ASP.NET是微軟發(fā)展的新型體系結構.NET的一部分,它的全新技術(shù)架構會(huì )讓每一個(gè)人的網(wǎng)絡(luò )生活都變得更簡(jiǎn)單。
    首先需要特別指出的是,ASP.NET不僅僅只是有了一個(gè)新界面并且修復了一些缺陷的ASP3.0的升級版本(即不同于A(yíng)SP2.0升級到ASP3.0的轉變)。更為重要的是,ASP.NET吸收了ASP以前版本的最大優(yōu)點(diǎn)并參照Java、VB語(yǔ)言的開(kāi)發(fā)優(yōu)勢加入了許多新的特色,同時(shí)也修正了以前的ASP版本的運行錯誤。
    要了解ASP.NET的真實(shí)面目,我們首先就得了解一下微軟.NET戰略。
    1.1.1 微軟.NET的歷史
    隨著(zhù)網(wǎng)絡(luò )經(jīng)濟的到來(lái),微軟公司希望幫助用戶(hù),能夠在任何時(shí)候、任何地方、利用任何工具都可以獲得網(wǎng)絡(luò )上的信息,并享受網(wǎng)絡(luò )通信所帶來(lái)的快樂(lè )。.NET戰略就是為著(zhù)實(shí)現這樣的目標而設立的。
    微軟公開(kāi)宣布,今后將著(zhù)重于網(wǎng)絡(luò )服務(wù)和網(wǎng)絡(luò )資源共享的開(kāi)發(fā)工作,并稱(chēng),將會(huì )為公眾提供更加豐富、有用的網(wǎng)絡(luò )資源與服務(wù)。
    微軟新一代平臺的正式名稱(chēng)叫做“新一代Windows服務(wù)”(NGWS),現在微軟已經(jīng)給這個(gè)平臺注冊了正式的商標——MicroSoft.Net。在.Net環(huán)境中,微軟不僅僅是平臺和產(chǎn)品的開(kāi)發(fā)者,并且還將作為架構服務(wù)提供商、應用程序提供商,開(kāi)展全方位的Internet服務(wù)。在談及這個(gè)平臺中使用的新技術(shù),微軟透露,它將在.Net環(huán)境中提供更多新產(chǎn)品和一攬子的全套服務(wù)。

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

    MicroSoft .NET將開(kāi)創(chuàng )互聯(lián)網(wǎng)的新局面,基于HTML的顯示信息將通過(guò)可編程的基于XML的信息得到增強。XML是經(jīng)“萬(wàn)維網(wǎng)聯(lián)盟”定義的受到廣泛支持的行業(yè)標準,Web瀏覽器標準也是由該組織創(chuàng )建的。微軟公司為開(kāi)發(fā)它投入了大量精力,但它并不是MicroSoft的專(zhuān)有技術(shù)。XML提供了一種從數據的演示視圖分離出實(shí)際數據的方式。這是新一代互聯(lián)網(wǎng)的關(guān)鍵,提供了開(kāi)啟信息的方式,以便對信息進(jìn)行組織、編程和編輯;可以更有效地將數據分布到不同的數字設備;允許各站點(diǎn)進(jìn)行合作,提供一組可以相互作用的“Web服務(wù)”。
    1.1.2 微軟.NET的介紹
    1.1.2.1? MicroSoft .NET綜述
    MicroSoft .NET平臺包括用于創(chuàng )建和操作新一代服務(wù)的.NET基礎結構和工具;可以啟用大量客戶(hù)機的.NET User Experience;用于建立新一代高度分布式的數以百萬(wàn)計的.NET積木式組件服務(wù);以及用于啟用新一代智能互聯(lián)網(wǎng)設備的.NET設備軟件。
    MicroSoft .NET產(chǎn)品和服務(wù)—包括Windows.NET,連同建立積木式服務(wù)的核心集成套件;MSNTM .NET;個(gè)人訂購服務(wù);Office.NET;Visual Studio .NET;以及用于.NET的bCentralTM。

    .Net環(huán)境中的突破性改進(jìn)在于:

    1.?使用統一的Internet標準(如XML)將不同的系統對接;

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

    3.使用了一個(gè)名為“聯(lián)盟”的管理程序,這個(gè)程序能全面管理平臺中運行的服務(wù)程序,并且為它們提供強大的安全保護后臺;

    .NET平臺包括如下組件:
    ?
    1.用戶(hù)數據訪(fǎng)問(wèn)技術(shù)。其中包括一個(gè)新的基于XML的、以瀏覽器為組件的混合信息?????? 架構,叫做“通用畫(huà)板”;
    ?
    ??? 2.基于Windows DNA 2000的構建和開(kāi)發(fā)工具;

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

    4.一系列驅動(dòng)客戶(hù)設備的軟件;


    1.1.2.2? Microsoft.NET平臺帶來(lái)的重要意義

    我們來(lái)看一下MicroSoft .NET對開(kāi)發(fā)人員、IT專(zhuān)業(yè)人員、以及企業(yè)應用的巨大意義
    。
    ??對于開(kāi)發(fā)人員

    ??? MicroSoft .NET的策略是將互聯(lián)網(wǎng)本身作為構建新一代操作系統的基礎,對互聯(lián)網(wǎng)和操作系統的設計思想進(jìn)行合理延伸。這樣,開(kāi)發(fā)人員必將創(chuàng )建出擺脫設備硬件束縛的應用程序,以便輕松實(shí)現互聯(lián)網(wǎng)連接。MicroSoft .NET無(wú)疑是當今計算機技術(shù)通向計算時(shí)代的一個(gè)非常重要的里程碑。
    .NET的核心組件有:
    ? 一組用于創(chuàng )建互聯(lián)網(wǎng)操作系統的構建塊,其中包括Passport.NET(用于用戶(hù)認證)以及用于文件存儲的服務(wù)、用戶(hù)首選項管理、日歷管理以及眾多的其它任務(wù)
    ? 構建和管理新一代服務(wù)的基本結構和工具,包括Visual Studio.NET、.NET企業(yè)服務(wù)器、.NET框架和Windows.NET
    ? 能夠啟用新型智能互聯(lián)網(wǎng)設備的.NET設備軟件
    ? .NET用戶(hù)體驗
    .NET對最終用戶(hù)來(lái)說(shuō)非常重要,因為計算機的功能將會(huì )得到大幅度提升,同時(shí)計算機操作也會(huì )變得非常簡(jiǎn)單。特別地,用戶(hù)將完全擺脫人為的硬件束縛:用戶(hù)可以自由沖浪于互聯(lián)網(wǎng)的多維時(shí)空,而不是束縛在便攜式電腦的方寸空間——可通過(guò)任何桌面系統、任何便攜式電腦、任何移動(dòng)電話(huà)或PDA進(jìn)行訪(fǎng)問(wèn),并可對其進(jìn)行跨應用程序的集成。
    .NET可使用戶(hù)輕松進(jìn)行互聯(lián)網(wǎng)連接,并輕松完成那些在當今看來(lái)十分費時(shí)而且費力的事務(wù),它們往往要求用戶(hù)進(jìn)行數據重輸入并需運行幾個(gè)小時(shí)才能完成。通過(guò)將多項安全數據流合并到單一的用戶(hù)界面(或者甚至是可編程決策引擎),.NET架構將用戶(hù)從充斥于當今Web的數據豎井的束縛中解脫出來(lái)。用戶(hù)可以自由訪(fǎng)問(wèn)、自由查看、自由使用他們的數據。
    ? .NET對開(kāi)發(fā)人員來(lái)說(shuō)也十分重要,因為它不但會(huì )改變開(kāi)發(fā)人員的開(kāi)發(fā)應用程序的方式,而且使得開(kāi)發(fā)人員能創(chuàng )建出全新的各種應用程序。新型開(kāi)發(fā)范例的核心是Web服務(wù)這個(gè)概念的引入。Web服務(wù)是一種通過(guò)簡(jiǎn)單對象訪(fǎng)問(wèn)協(xié)議(SOAP),在互聯(lián)網(wǎng)上展露其功能性的、極為公開(kāi)的服務(wù)。SOAP是一種基于可擴展標記語(yǔ)言(XML)制定的協(xié)議。
    在過(guò)去,開(kāi)發(fā)人員通過(guò)集成本地系統服務(wù)來(lái)構建應用程序。在這種模型下,開(kāi)發(fā)人員可以訪(fǎng)問(wèn)豐富的開(kāi)發(fā)資源并能?chē)栏窨刂茟贸绦虻男袨椤?
    如今,開(kāi)發(fā)人員已在很大程度上掙脫了這種模型的束縛,致力于構建具有復雜結構的n層化系統,這種系統能將網(wǎng)絡(luò )上眾多的應用程序一并進(jìn)行集成,大大提升了應用程序的價(jià)值。這樣,開(kāi)發(fā)人員便可把精力集中在充分挖掘軟件獨特的商業(yè)價(jià)值,而不是構建基本結構上?上驳木置鎸\而生:軟件投放市場(chǎng)的時(shí)間大大縮短、開(kāi)發(fā)人員的編程效率明顯提高,最終把質(zhì)量上乘的軟件呈現給用戶(hù)。
    我們正在進(jìn)入一個(gè)嶄新的計算時(shí)代——一個(gè)由互聯(lián)網(wǎng)(尤其是Internet核心技術(shù)XML)實(shí)現的時(shí)代。利用XML,能夠創(chuàng )建出可供任何人從任何地方使用的、功能非常強大的應用程序。它極大地拓展了應用程序的功能,并實(shí)現了軟件的動(dòng)態(tài)提供。在這種情況下,軟件已不完全指那些從光盤(pán)進(jìn)行安裝的程序,而是演變成了一種服務(wù)——類(lèi)似于ID調用程序或按收看次數進(jìn)行收費的電視——人們可通過(guò)通信媒體訂購的服務(wù)。
    n層計算技術(shù)具有能夠大幅度提高生產(chǎn)力、緊密耦合的特點(diǎn),而Web概念具有面向消息、松散耦合的特點(diǎn),我們將二者有機地糅合在一起,實(shí)現了上述構想。我們將這種計算風(fēng)格稱(chēng)為Web服務(wù),它的出現標志著(zhù)人類(lèi)已經(jīng)邁入應用程序開(kāi)發(fā)技術(shù)的新紀元。Web服務(wù)是一種應用程序,它可以通過(guò)編程并使用標準的Internet協(xié)議,像超文本傳輸協(xié)議(HTTP)和XML,將功能展示在互聯(lián)網(wǎng)和企業(yè)內部網(wǎng)上。還可將Web服務(wù)視作Web上的組件編程。
    從理論上講,開(kāi)發(fā)人員可通過(guò)調用Web應用編程接口(API),將Web服務(wù)集成到應用程序中。其調用方法與調用本地服務(wù)類(lèi)似,不同的是Web API調用可通過(guò)互聯(lián)網(wǎng)發(fā)送給位于遠程系統中的某一服務(wù)。例如,MicroSoft Passport(Passport)服務(wù)使得開(kāi)發(fā)人員能夠對應用程序進(jìn)行認證。通過(guò)對Passport服務(wù)編程,開(kāi)發(fā)人員可以充分利用Passport的基本結構,通過(guò)運行Passport來(lái)維護用戶(hù)數據庫,以確保其正常運行、定期備份等等。
    .NET正是根據這種Web服務(wù)原則而創(chuàng )建的,微軟目前正著(zhù)手提供這個(gè)基本結構,以便通過(guò).NET平臺的每一部分來(lái)實(shí)現這種新型的Web服務(wù)。而Visual Studio.NET、.NET框架、Windows.NET和.NET企業(yè)服務(wù)器,正是為進(jìn)行基于Web服務(wù)模型的應用程序開(kāi)發(fā)而度身定做的新一代開(kāi)發(fā)工具和基本結構。.NET構建塊服務(wù)、新增的.NET設備支持以及即將到來(lái)的.NET用戶(hù)體驗,將為人們徹底攻克這一難題劃上一個(gè)圓滿(mǎn)的句號,使人們能夠充分利用Web服務(wù)模型,如愿以?xún)數亻_(kāi)發(fā)出新一代應用程序。

    ??.NET對IT專(zhuān)業(yè)人員的重要意義
    目前,IT專(zhuān)業(yè)人員能夠利用與構建.NET平臺相同的技術(shù)。
    .NET Enterprise Servers和Windows 2000操作系統,為創(chuàng )建具有高度可管理性的、能迅速投入市場(chǎng)的應用程序提供了堅實(shí)基礎。它們利用的是可擴展標記語(yǔ)言(XML),因此隨著(zhù)Web體系結構的革新,在此平臺上創(chuàng )建的程序依然很有價(jià)值。
    .NET平臺的核心是,采用有效的、分門(mén)別類(lèi)的方式來(lái)構建應用程序,達到其前所未有的規模。該平臺上的Web服務(wù)模型指的是:企業(yè)應用程序的中心業(yè)務(wù)要素通常由本地管理,而支持它們的服務(wù)(如用戶(hù)認證、文件存儲、用戶(hù)首選項管理、日歷、郵件等等)卻無(wú)須本地管理,可以被無(wú)縫訂購。為了存儲用戶(hù)文件和郵件,IT專(zhuān)業(yè)人員往往在服務(wù)器上安裝新的獨立磁盤(pán)冗余陣列(RAID陣列),而有了.NET,他們在這一方面將會(huì )花費較少的精力,而更多地致力于怎樣為公司增加效益。
    該Web服務(wù)模型還將動(dòng)態(tài)配置新軟件的發(fā)布和更新。用戶(hù)將以極其緊密的連接方式工作,因此更易于管理。而簡(jiǎn)化的管理又可使IT專(zhuān)業(yè)人員更能適應變幻莫測的業(yè)務(wù)需求。
    開(kāi)發(fā)應用程序的.NET Web服務(wù)模型將為企業(yè)應用程序的創(chuàng )建開(kāi)辟一條新路。通過(guò)企業(yè)內外多種服務(wù)的聯(lián)合,很容易把企業(yè)內部數據和客戶(hù)及合作伙伴的相關(guān)數據結合在一起,大大簡(jiǎn)化了應用程序的創(chuàng )建過(guò)程。這就為最終用戶(hù)發(fā)掘了空前的功能涵蓋性。例如,利用某公司的雇員福利程序,可以從其HR數據庫訂購信息,通過(guò)Web訂購福利管理公司的服務(wù)、訂購工資管理公司的服務(wù)。終端用戶(hù)可以在簡(jiǎn)單、直觀(guān)的界面下操作,而這個(gè)界面可以顯示他們的累積休假時(shí)間、個(gè)人所得福利以及上次工資額。

    ??.NET對企業(yè)的重要意義
    MicroSoft .NET平臺將從根本上改善計算機和用戶(hù)之間進(jìn)行交互的方式,最大限度地發(fā)揮電子商務(wù)中計算技術(shù)的重要作用。首先,讓我們來(lái)分析一下當前商務(wù)計算世界的現狀:
    人與計算機進(jìn)行交互的手段極為有限——通常使用鍵盤(pán)和鼠標進(jìn)行輸入,使用監視器監控輸出。
    用戶(hù)信息基本上是本地信息;如果從另一臺機器進(jìn)行登錄,則無(wú)法獲取用戶(hù)的個(gè)人首選項設置、數據及應用程序。
    用戶(hù)必須親自處理信息,而通過(guò)設置智能選項代表用戶(hù)自動(dòng)進(jìn)行操作,則無(wú)異于是紙上談兵。
    同一用戶(hù)存放于不同應用程序和站點(diǎn)的數據,很難(或根本不可能)進(jìn)行自動(dòng)合并和關(guān)聯(lián),用戶(hù)無(wú)法統一進(jìn)行查看。
    想在家里或在路上工作的用戶(hù),不能方便地訪(fǎng)問(wèn)辦公室電腦中的應用程序和數據。這無(wú)疑成為一道阻止人們獲得更高工作效率的鴻溝。
    不能使用其它設備訪(fǎng)問(wèn)專(zhuān)為特定設備設計的數據(這些設備包括PC、尋呼機、移動(dòng)電話(huà)以及PDA等);最多可以定期進(jìn)行同步。
    .NET將保證完全消除當今計算技術(shù)中的所有缺陷。.NET定能實(shí)現確保用戶(hù)從任何地點(diǎn)、任何設備都可訪(fǎng)問(wèn)其個(gè)人數據和應用程序的宏偉藍圖。除此之外,.NET技術(shù)還可實(shí)現多個(gè)應用程序在邏輯上的松散耦合鏈接和緊密耦合鏈接。
    用戶(hù)可以通過(guò)手寫(xiě)、語(yǔ)音和圖象技術(shù)與其個(gè)人數據進(jìn)行交互。這些數據將安全地存放在互聯(lián)網(wǎng)上,用戶(hù)通過(guò)辦公室(或家庭)PC,還可以通過(guò)移動(dòng)電話(huà)或尋呼機、PDA、甚至是新發(fā)明的尋呼機——移動(dòng)電話(huà)——PDA——PC聯(lián)合設備訪(fǎng)問(wèn)這些數據。應用程序可進(jìn)行靈活的功能調整,以適應用戶(hù)所用設備的功能狀況。應用程序可根據用戶(hù)預定義的選項集和指令集,完全代替用戶(hù)自動(dòng)執行相應的操作。
    上述功能將協(xié)同作用,以便大幅度地提高用戶(hù)使用計算技術(shù)的生產(chǎn)效率。根據設計,.NET使得用戶(hù)無(wú)需在如何與計算機進(jìn)行交互上勞神,從而全身心地投入到使計算機自動(dòng)執行任務(wù)、實(shí)現最終目標的工作中。通過(guò)使用XML行業(yè)標準,可將用戶(hù)數據進(jìn)行跨站點(diǎn)和應用程序的鏈接,從而輕松實(shí)現當前很難實(shí)現的操作。比如:對用戶(hù)在數家不同銀行、信用卡公司以及計費代理商那里的數據進(jìn)行集中處理;這樣,用戶(hù)便可依據處理后的數據支付帳單,將費用明細報告歸檔。
    .NET把雇員、客戶(hù)和商務(wù)應用程序整和成一個(gè)協(xié)調的、能進(jìn)行智能交互的整體,而各公司無(wú)疑將是這場(chǎng)效率和生產(chǎn)力革命的最大受益者。簡(jiǎn)言之,.NET承諾為人類(lèi)創(chuàng )造一個(gè)消除任何溝鴻的商務(wù)世界。

    1.1.2.3? MicroSoft .NET 的基本模塊

    ??網(wǎng)絡(luò )服務(wù)一覽

    ?????? 通常說(shuō)來(lái),一個(gè)網(wǎng)絡(luò )服務(wù)只是一個(gè)作為服務(wù)――通過(guò)Internet標準此服務(wù)能與其它
    網(wǎng)絡(luò )服務(wù)集成在一起――發(fā)行的簡(jiǎn)單的應用程序。換句話(huà)說(shuō),它是可通過(guò)URL定位的自動(dòng)將信息返回到需要它的客戶(hù)端那里的一種資源。網(wǎng)絡(luò )服務(wù)一個(gè)重要的特點(diǎn)是客戶(hù)不需要知道一種服務(wù)是怎樣實(shí)現的。在本節中,我將向你解釋網(wǎng)絡(luò )及網(wǎng)絡(luò )服務(wù)如何把基于組件技術(shù)的最好的方面結合在一起的,并且介紹與網(wǎng)絡(luò )服務(wù)通信所需的基本框架。
    同組件一樣,網(wǎng)絡(luò )服務(wù)提供“黑匣子”函數,它可以被再次作用而不用關(guān)心此服務(wù)是怎樣實(shí)現的。網(wǎng)絡(luò )服務(wù)提供被稱(chēng)為契約的精確定義的接口,此接口描繪了所提供的服務(wù)。開(kāi)發(fā)人員可以將遠程服務(wù)、本地服務(wù)和定置代碼組合在一起而集成應用程序。例如,某公司可以使用如下服務(wù)組建一在線(xiàn)商店:微軟護照(原文:Passport)服務(wù)以驗證用戶(hù)身份,第三方個(gè)人化服務(wù)以使網(wǎng)頁(yè)匹配每一個(gè)用戶(hù)的參數,信用卡處理服務(wù),銷(xiāo)售稅服務(wù),對每個(gè)運輸公司的包裹跟蹤服務(wù),鏈接公司內部庫存管理程序的內部目錄服務(wù),以及少量定置代碼以使他們的商店能脫穎而出。
    然而,網(wǎng)絡(luò )服務(wù)與現在的組件技術(shù)不同,它不使用需要在服務(wù)器和客戶(hù)機有明確的、同類(lèi)型基本構架的具體的對象模型協(xié)議,例如DCOM、 RMI或 IIOP 。盡管與具體組件技術(shù)緊密結合的實(shí)現在一個(gè)受控的環(huán)境中能很好地被接受,但它們在網(wǎng)絡(luò )環(huán)境中變得不切實(shí)際。因為一個(gè)集成商業(yè)程序的參與者會(huì )發(fā)生變化,隨著(zhù)時(shí)間的推移,技術(shù)也在變化,所以在所有參與者間確保一個(gè)單一的、統一的體系架構就變得十分困難。網(wǎng)絡(luò )服務(wù)采取了另外一種途徑,它使用普便存在的網(wǎng)絡(luò )協(xié)議和數據格式,如HTTP和XML,進(jìn)行通信。支持這些網(wǎng)絡(luò )標準的任何系統都支持網(wǎng)絡(luò )服務(wù)。
    而且,網(wǎng)絡(luò )服務(wù)契約描述的是以術(shù)語(yǔ)報文形式提供的服務(wù),這些服務(wù)是由網(wǎng)絡(luò )服務(wù)生成和接受的,而不是描述服務(wù)是如何實(shí)現的。通過(guò)把重點(diǎn)放在報文上,網(wǎng)絡(luò )服務(wù)模板就完全對語(yǔ)言、平臺和對象模板一無(wú)所知。 用任何一套編程語(yǔ)言、對象模型和平臺的完全特性集,都可實(shí)現網(wǎng)絡(luò )服務(wù)。網(wǎng)絡(luò ) 服務(wù)可在任何平臺被用任何語(yǔ)言所實(shí)現的應用程序使用。只要用于解釋服務(wù)容量、報文序列和所期望協(xié)議的契約得到認同,那么所實(shí)現的網(wǎng)絡(luò )服務(wù)及網(wǎng)絡(luò )服務(wù)用戶(hù)就可相互不同,而不會(huì )影響會(huì )話(huà)另一端的應用程序。
    網(wǎng)絡(luò )服務(wù)模板對最小體系架構的要求很低,以確保網(wǎng)絡(luò )服務(wù)在使用任何技術(shù)和編程語(yǔ)言的平臺上實(shí)現和訪(fǎng)問(wèn)。對網(wǎng)絡(luò )服務(wù)互用性的解決可只依靠網(wǎng)絡(luò )標準。然而,為了使應用程序更容易使用網(wǎng)絡(luò )服務(wù),簡(jiǎn)單地同意通過(guò)標準網(wǎng)絡(luò )協(xié)議就可以訪(fǎng)問(wèn)網(wǎng)絡(luò )服務(wù)是不夠的。當網(wǎng)絡(luò )服務(wù)和網(wǎng)絡(luò )服使用者依靠標準的方式表示數據和命令、表示網(wǎng)絡(luò )服務(wù)契約 、算出網(wǎng)絡(luò )服務(wù)所提供的容量時(shí),網(wǎng)絡(luò )服務(wù)才容易使用。
    XML是定義一個(gè)標準的、可擴展的用于提供命令和典型數據的語(yǔ)言明顯的一種選擇。雖然為表示命令和典型數據可以定義使用其它技巧(比如編碼為一種查詢(xún)字符串)的規則,但XML被專(zhuān)門(mén)設計為描述數據的標準元語(yǔ)言。簡(jiǎn)單對象存取協(xié)議(SOAP)是以一種可擴展的方式使用XML表示數據和命令的工業(yè)標準。網(wǎng)絡(luò )服務(wù)可選擇用SOAP決定報文的格式。
    XML是網(wǎng)絡(luò )服務(wù)契約的一種使能技術(shù)。服務(wù)契約語(yǔ)言 (SCL)是記錄網(wǎng)絡(luò )服務(wù)契約的XML語(yǔ)法。由于SCL是基于XML的,所以對開(kāi)發(fā)者和開(kāi)發(fā)工具來(lái)說(shuō),容易生成、解釋契約。關(guān)于SCL細則的草案很快會(huì )出臺(注意:現在的SOAP Toolkit for Visual Studio 6.0支持稱(chēng)為SDL的SCL的早期版本)。
    Disco 規范為服務(wù)提供者發(fā)布網(wǎng)絡(luò ) 服務(wù)契約和相應的機制描述了一個(gè)標準方式,這將使開(kāi)發(fā)者或開(kāi)發(fā)工具可找到契約文獻。當你讀到這里時(shí), Disco規范的草案應出臺了。
    象SOAP, SCL和Disco這樣的標準有助于開(kāi)發(fā)者,因為它們不需要明白和實(shí)現所使用的每一個(gè)網(wǎng)絡(luò )服務(wù)的訪(fǎng)問(wèn)方式。支持這些標準的更好的、已充分測試的、高性能的體系架構將由開(kāi)發(fā)平臺提供,這會(huì )大大簡(jiǎn)化整個(gè)開(kāi)發(fā)過(guò)程。

    ??MicroSoft .NET Framework

    MicroSoft .NET框架的目的是使你更容易建立網(wǎng)絡(luò )應用程序和網(wǎng)絡(luò )服務(wù)。圖2 顯示了MicroSoft .NET框架的體系。建立在操作系統最上層的服務(wù),是管理運行時(shí)代碼需求的common language runtime,這些代碼可以用任何現代編程語(yǔ)言所寫(xiě)。Runtime提供了許多服務(wù),這些服務(wù)有助于簡(jiǎn)化代碼開(kāi)發(fā)和應用程序的開(kāi)發(fā)同時(shí)也將提高應用程序的可靠性。.NET Framework包括一套可被開(kāi)發(fā)者用于任何編程語(yǔ)言的類(lèi)庫。在此之上是許多應用程序模板,這些模板特定地為開(kāi)發(fā)網(wǎng)絡(luò )站點(diǎn)和網(wǎng)絡(luò )服務(wù)提供高級組件和服務(wù)。

    ??Common Language Runtime

    運行語(yǔ)言(runtime)調入并運行用任何運行感知編程語(yǔ)言所寫(xiě)的代碼。以運行為目標的代碼被稱(chēng)為受控(managed )代碼,受控代碼代碼只是意味著(zhù)在內部可執行代碼與運行自身間存在已定義好的合作契約。對于象生成對象、調用方法等這樣的任務(wù),被委托給了運行語(yǔ)言,這使得在運行語(yǔ)言能為可執行代碼增加額外的服務(wù)。
    運行語(yǔ)言以交叉語(yǔ)言集成、自描述組件、簡(jiǎn)單配制和版本化及集成安全服務(wù)為特點(diǎn)。
    運行語(yǔ)言使用一種新的能表達大部分現代編程語(yǔ)言語(yǔ)義的通用類(lèi)型系統,通用類(lèi)型系統定義了一套標準類(lèi)型及生成新標準的規則。運行語(yǔ)言知道怎樣生成、執行這些類(lèi)型。編譯器和解釋器使用運行語(yǔ)言服務(wù)定義類(lèi)型、管理對象、進(jìn)行方法調用,而不是使用工具或特定于語(yǔ)言的方法。
    類(lèi)型系統的主要設計目的是使多種語(yǔ)言能深度集成。用一種語(yǔ)言所寫(xiě)的代碼能繼承用另一種語(yǔ)言所寫(xiě)的類(lèi)的實(shí)現,用一種語(yǔ)言所寫(xiě)的代碼拋出的異常能被用另一種語(yǔ)言寫(xiě)的代碼捕獲,象調試和剖析之類(lèi)的操作會(huì )在完全封閉下工作,而不用考慮代碼所用的語(yǔ)言。這就意味著(zhù)編寫(xiě)可重用類(lèi)庫的開(kāi)發(fā)者,不再需要為每一種編程語(yǔ)言或編譯器生成一個(gè)版本,并且使用類(lèi)庫的開(kāi)發(fā)者不再受到為他們使用的編程語(yǔ)言開(kāi)發(fā)的庫的限制。
    自描述組件――現在MicroSoft .NET框架上已成為可能――簡(jiǎn)化了開(kāi)發(fā)和配制,并提高了系統的可靠性。許多由運行語(yǔ)言提供的服務(wù)是由元數據及用于補充可執行代碼的信息所驅動(dòng)。因為所有的信息都儲存在一起,只有可執行的(代碼)才被稱(chēng)為自描述組件。
    自描述組件的一個(gè)主要優(yōu)點(diǎn)是,使用它們并不需要其它文件。類(lèi)的定義不需要單獨的頭文件;通過(guò)檢查元數據對類(lèi)的定義可以從組件自身獲得?缯Z(yǔ)言或過(guò)程邊界訪(fǎng)問(wèn)組件并不需要各自的IDL文件、類(lèi)型文件或proxy/stubs;所必需的信息已存在于元數據之中。為識別開(kāi)發(fā)者請示的服務(wù)屬性,并不需要展開(kāi)各自的配制信息。 最主要的是,由于元數據是在編譯過(guò)程中由源代碼生成,并與可執行代碼儲存在一起,它將永遠和可執行部分同步。
    除了改善對單個(gè)組件的配制,Microsft .NET框架定義了一個(gè)應用程序配制模板,以解決定置應用程序安裝和DLL版本化(通常被稱(chēng)為“DLL Hell”)這一復雜過(guò)程的問(wèn)題,運行語(yǔ)言提供了支持這個(gè)模板的服務(wù)。
    Microsft .NET框架 引入了組合體的概念。一個(gè)組合體是一組資源和類(lèi)型,并包括有關(guān)這些資源和類(lèi)型的元數據,也就是被作為一個(gè)單元配制的。元數據被稱(chēng)為組合體的名單,它包含象類(lèi)型和資源表之類(lèi)能被組合體外看得見(jiàn)的信息,這個(gè)名單也包括有關(guān)從屬關(guān)系之類(lèi)的信息,例如組合體建立時(shí)的版本號。開(kāi)發(fā)人員可以指定版本策略,以指示運行語(yǔ)言是否裝入系統上已安裝的依賴(lài)于組合體的最新版本,裝入一指定版本,或在編譯時(shí)使用的版本。
    某軟件組件的多個(gè)拷貝總可以存在于同樣的操作系統上,然而,通常說(shuō)來(lái),只有其中的一個(gè)拷貝能被操作系統注冊、調入內存、執行。對系統來(lái)說(shuō),定位和調入內存的策略是全局性。.NET Framework Common Language Runtime 增加了所必須的體系架構以支持管理組件定位和調入的每個(gè)應用程序策略,這通常被稱(chēng)為并行配制。
    組合體可以被一個(gè)應用程序私有,或被多個(gè)應用程序共享。一個(gè)組合體的多個(gè)版本可以同時(shí)配制在同一臺機器上。應用程序配制信息定義了到何處去查找組合體,這樣runtime就能為同時(shí)運行的兩個(gè)不同的應用程序裝入同一組合體的不同版本。這就消除了由組件版本的不兼容性引起的問(wèn)題,提高了系統整體的穩定性。如果必要,如果必要,管理員可以為配制時(shí)刻的組合體增加配制信息,例如一個(gè)不同的版本策略,但是編譯時(shí)提供的原始信息永遠不會(huì )丟失。
    因為組合體是自描述的,所以并不需要在系統上進(jìn)行顯式注冊。應用程序的配制簡(jiǎn)單到只需將文件拷貝到目錄中既可(如果為了使應用程序能夠運行,必須安裝未經(jīng)組織過(guò)的組件的話(huà),情況會(huì )稍微復雜一點(diǎn))。配制信息保存在可被任何文本編輯器編輯的XML文件中。
    最后,運行語(yǔ)言也提供完整的、普遍深入的安全服務(wù),以確保未經(jīng)授權的用戶(hù)不能訪(fǎng)問(wèn)機器上的資源,并且代碼不會(huì )執行未經(jīng)允許的動(dòng)作。這就提高了系統整體的安全性可靠性。 由于運行語(yǔ)言用于裝入代碼、生成對象、執行方法調用,所以當受控代碼裝入內存、執行時(shí),運行語(yǔ)言能進(jìn)行安全檢查,強化安全策略。
    Microsft .NET框架不僅規定代碼訪(fǎng)問(wèn)安全,還規定基于角色的安全。通過(guò)代碼訪(fǎng)問(wèn)安全機制,開(kāi)發(fā)人員能為應用程序指定完成工作所必需的權限。例如,代碼或許需要寫(xiě)文件或訪(fǎng)問(wèn)環(huán)境變量的權力。這類(lèi)信息和有關(guān)代碼標志的信息一起存儲在配制級上的。當代碼裝入內存及執行方法調用時(shí),運行語(yǔ)言驗證是否能給予代碼所要求的權限。如果不能,將記錄一條安全沖突信息。給予權限的策略,這被稱(chēng)為信任策略,是由系統管理員建立的,并且是建立在關(guān)于代碼的證據基礎之上,比如:代碼是誰(shuí)發(fā)布的,是從什么地方獲得的,以及在組合體中找到的代碼標志和它要求的權限。開(kāi)發(fā)人員可以指定他們顯然不需要的權限,以防止其它人惡意使用他們的代碼。如果所需要的權限依賴(lài)直到運行時(shí)刻才會(huì )知道的信息,那么就可寫(xiě)入綱鄰性的安全檢查。
    除了代碼訪(fǎng)問(wèn)安全,運行語(yǔ)言還支持基于角色的安全;诮巧陌踩⑼a訪(fǎng)問(wèn)安全一樣的權限模板,只是這些權限是建立在用戶(hù)的身份之上,而不是建立在代碼的標志之上。角色表明了用戶(hù)所屬的類(lèi),并且可以在開(kāi)發(fā)和配制階段定義。給予權限的策略被分配到每個(gè)預定義的角色。在運行時(shí)刻,用戶(hù)的身份被確定,代碼將代表這個(gè)身份運行。運行語(yǔ)言決定用戶(hù)是哪個(gè)角色的成員,然后給予基于這個(gè)角色的權限。
    在查看Microsft .NET框架的可編程模板前,先看一下它所提供的服務(wù)。

    ??服務(wù)框架
    在Common Language Runtime之上是服務(wù)框架,此框架提供能被任何現代編程語(yǔ)言調用的類(lèi)。所有的類(lèi)都遵循一套命名和設計方針,以大大減小開(kāi)發(fā)人員的學(xué)習上的彎路。
    框架包括一套開(kāi)發(fā)人員希望在標準語(yǔ)言庫中存在的基類(lèi)庫,例如:集合、輸入/輸出,字符串及數據類(lèi)。另外,基類(lèi)庫提供訪(fǎng)問(wèn)操作系統服務(wù)如圖畫(huà)、網(wǎng)絡(luò )、線(xiàn)程、全球化和加密的類(lèi)。服務(wù)框架也包括數據訪(fǎng)問(wèn)類(lèi)庫,及開(kāi)發(fā)工具,如調試和剖析服務(wù),能夠使用的類(lèi)。本文章沒(méi)有詳細討論所有的類(lèi),我將重點(diǎn)放在數據訪(fǎng)問(wèn)類(lèi)上,因為大多數網(wǎng)絡(luò )服務(wù)需要對數據的訪(fǎng)問(wèn)。當然,你可以在MicroSoft .NET Framework SDK中找到關(guān)于服務(wù)框架類(lèi)庫的附加信息。

    ??數據訪(fǎng)問(wèn)服務(wù)
    幾乎所有的網(wǎng)絡(luò )服務(wù)都需要查詢(xún)和更新永久性數據,不論是以簡(jiǎn)單文件,還是以相關(guān)數據庫,或是以其它的存儲類(lèi)型存在。為了提供對數據的訪(fǎng)問(wèn),服務(wù)框架包括ActiveX Data Objects+ (ADO.NET)類(lèi)庫。如同名子所暗示地那樣,ADO.NET由ADO發(fā)展而來(lái)。ADO+被設計為基于網(wǎng)絡(luò )的可擴展的應用程序和服務(wù)提供數據訪(fǎng)問(wèn)服務(wù)。ADO.NET為連接的指針風(fēng)格的數據訪(fǎng)問(wèn),同時(shí)也為更適合于把數據返回到客戶(hù)端應用程序的無(wú)連接的數據模板提供高性能的APIs流,就象在以后介紹的那樣。
    就象其余幾個(gè)部分一樣,ADO.NET定義了那些鏈接數據倉庫、 對數據倉庫發(fā)送命令及從中獲取結果的類(lèi)。這些類(lèi)由受控數據提供者(managed data provider)實(shí)現。ADO+中鏈接和命令對象看上去和ADO中的是一樣的,并且一個(gè)名為DataReader的新類(lèi)提供了通過(guò)高性能API流獲取結果的能力。DataReader在功能上同前向、只讀的ADO記錄集(Recordset)是等同的,但是DataReader被設計用來(lái)最小化內存中生成的對象的數量,以提高性能,避免垃圾積累。在.NET Framework中包含了針對MicroSoft SQL Server?的受控數據提供者以及可通過(guò)OLE DB訪(fǎng)問(wèn)的任何數據倉庫。
    ADO.NET的一個(gè)主要創(chuàng )新是引入了數據集(Dataset)。一個(gè)數據集是內存中提供數據關(guān)系圖的高速緩沖區。數據集對數據源一無(wú)所知,它們可以由程序或通過(guò)從數據倉庫中調入數據而被生成、填充。不論數據從何處獲取,數據集都是通過(guò)使用同樣的程序模板而被操作的,并且它使用相同的潛在的數據緩沖區。使用.NET平臺的開(kāi)發(fā)人員能夠用數據集代替傳統ADO中無(wú)連接的記錄集。
    受控數據提供者為數據倉庫和數據集公開(kāi)一名為DataSetCommand 的接口對象。DataSetCommand 使用ADO.NET鏈接和命令以從數據倉庫中填充數據集,并把在數據集中發(fā)生的變化解析到數據倉庫中。
    就象DataReaders 顯示了對于相關(guān)數據的有效的流訪(fǎng)問(wèn)一樣,XmlReaders 顯示了對XML數據的流訪(fǎng)問(wèn)。開(kāi)發(fā)人員使用DataNavigator 可以滾動(dòng)和編輯內存中的XML文檔。DataNavigator在功能上和W3C Document Object Model (DOM)是一樣的,但它更有效,并提供了能很好映射關(guān)系數據表的對象模板。DataNavigator 支持Xpath語(yǔ)法以對數據流進(jìn)行導航。ADO.NET為那些希望繼續使用DOM作為XML對象模板而不是使用更有效的DataNavigator模板的開(kāi)發(fā)人員提供了一個(gè)XMLDocument類(lèi)。
    由于所有的數據都可被看作XML,所以開(kāi)發(fā)人員可以為任何數據使用轉換和確認服務(wù)。ADO.NET定義了一個(gè)消費DataNavigator、生成一個(gè)新的XmlReader的通用轉換體系。.NET Framework提供了一個(gè)支持W3C XSL Transformations (XSLT)細則的特殊轉換組件。ADO.NET同時(shí)提供了一使用XML簡(jiǎn)圖確認XmlReader的確認引擎。ADO.NET支持通過(guò)DTDs, XSD或 XDR定義的簡(jiǎn)圖。

    ??表單應用模板

    從概念上講,在服務(wù)框架的最上面是兩個(gè)應用程序模板:Windows應用程序模板和網(wǎng)絡(luò )應用程序模板。盡管我把重點(diǎn)放在把微軟.NET 框架用作開(kāi)發(fā)網(wǎng)絡(luò )服務(wù)和網(wǎng)絡(luò )應用程序的一種途徑上,但框架也可用于開(kāi)發(fā)較傳統的基于Windows的應用程序(當然,這些應用程序也能使用網(wǎng)絡(luò )服務(wù))。
    編寫(xiě)Windows客戶(hù)應用程序的開(kāi)發(fā)人員可使用Win表單應用程序模板以利用Windows豐富的用戶(hù)接口特點(diǎn),包括現在的ActiveX控件和Windows 2000的新特點(diǎn),如透明的、分層的、浮動(dòng)窗口?梢赃x擇傳統的Windows或網(wǎng)絡(luò )外觀(guān)。得知它和現在的基于Windows表單包的相似性以后,開(kāi)發(fā)人員會(huì )發(fā)現Win表單可編程模板和對設計階段的支持非常直觀(guān)。
    Win 表單利用了Microsft .NET框架 runtime以減少基于Windows的客戶(hù)應用程序的開(kāi)銷(xiāo)。只要應用程序和組件是用Win所寫(xiě)或被Win表單應用程序使用,那么它們就能被框架安全模板在客戶(hù)機上安全地執行。如果以這種方式使用或執行,那么某人從Internet下載下來(lái)的生猛游戲就不會(huì )對配制信息和數據產(chǎn)生破壞,否則會(huì )自動(dòng)地給用戶(hù)地址薄里的每一個(gè)人發(fā)送電子郵件。
    Microsft .NET框架 裝配模板簡(jiǎn)化了應用程序的配制和版本化 。應用程序可被配制為使用它們在編譯和測試所用的共享組件,而不是使用恰好在客戶(hù)機器上安裝的隨便什么版本的組件,這就提高了應用程序的可靠性,減少了應用程序所支持調用的主要因素:用戶(hù)接口控件和其它共享組件版本的不兼容性。

    ??網(wǎng)絡(luò )應用程序模板

    建立在Microsft .NET框架 上網(wǎng)絡(luò )應用程序共享一個(gè)通用應用程序模板。在這個(gè)模型中,網(wǎng)絡(luò )應用程序是一套起源于基URL 的URLs。因此它包含用于生成在瀏覽器中觀(guān)看的網(wǎng)頁(yè)的網(wǎng)絡(luò )應用程序和網(wǎng)絡(luò )服務(wù)。在本節中,我將詳細介紹稱(chēng)為Active Server Pages+ (ASP.NET)的網(wǎng)絡(luò )應用程序可編程模板
    如同你從名字猜到的那樣,ASP.NET是由活動(dòng)服務(wù)器頁(yè)面發(fā)展而來(lái)。ASP.NET利用common language runtime 和服務(wù)框架網(wǎng)絡(luò )應用程序提供了一個(gè)可靠的、自動(dòng)化的、可擴展的主機環(huán)境。ASP.NET也受益于common language runtime 集成模板,簡(jiǎn)化了應用程序的配制。另外,它提供簡(jiǎn)化應用程序開(kāi)發(fā)的服務(wù)(如狀態(tài)管理服務(wù))以及高水平的編程模板(如ASP.NET Web Forms和ASP.NET Web Services)。
    ASP.NET的核心是HTTP運行語(yǔ)言,一個(gè)高性能的用于處理基于低級結構的HTTP請求的運行語(yǔ)言,而基于的結構與MicroSoft Internet Information Services (IIS)所提供的ISAPI結構相似。如同你在圖5所看到的,HTTP 運行語(yǔ)言是在象服務(wù)器上的IIS或客戶(hù)機上的IE之類(lèi)的unmanaged 主機過(guò)程中運行的受控代碼。HTTP runtime負責處理引入的所有HTTP請求,并對每個(gè)請求應用程序的URL進(jìn)行解析,然后把請求分配到應用程序以進(jìn)行進(jìn)一步的處理。HTTP 運行語(yǔ)言是多線(xiàn)程的,并異步處理請求,因此劣質(zhì)的應用程序代碼阻礙不了它對新請求的處理。而且HTTP 運行語(yǔ)言假定失敗必會(huì )發(fā)生,因此它被控制為盡最大力量自動(dòng)地從訪(fǎng)問(wèn)沖突、內存泄漏、死鎖等事故中恢復過(guò)來(lái)。除非是硬件故障,運行語(yǔ)言的目標是100%的可靠性。
    ASP.NET使用基于構件的Microsft .NET框架配制模板,因此它獲得了如XCOPY配制、構件并行配制、基于XML配制等優(yōu)點(diǎn)。ASP.NET另一個(gè)主要優(yōu)點(diǎn)是,它支持應用程序的實(shí)時(shí)更新。管理員不必關(guān)掉網(wǎng)絡(luò )服務(wù)器或者甚至不用停止應用程序的運行就可以更新應用文件。應用程序文件永遠不會(huì )被加鎖,因此甚至在程序運行時(shí)文件就可以被覆蓋。當文件更新后,系統會(huì )溫和地轉換到新的版本。系統檢測文件變化,并用新的應用程序代碼建立一個(gè)新的應用程序實(shí)例,然后將引入的請求路由到應用程序。當所有被現存的應用程序實(shí)例處理的未完成的請求處理完后,該實(shí)例就被銷(xiāo)毀了。
    在應用程序中,HTTP請求是通過(guò)HTTP模塊的一個(gè)管道路由的,最終到達請求處理程序。HTTP模塊和請求處理程序是一些實(shí)現特殊接口的受控類(lèi),而這些接口是由ASP.NET定義的。這種管道結構使得為應用程序增加服務(wù)非常方便:只需補充一個(gè)HTTP模塊。例如,安全,狀態(tài)管理及跟蹤都被實(shí)現為HTTP模塊。高級可編程模塊,如網(wǎng)絡(luò )服務(wù)和網(wǎng)絡(luò )表單,通常被實(shí)現為請求處理程序。一個(gè)應用程序能鏈接與多個(gè)請求處理程序——每個(gè)處理程序一個(gè)URL,但是所有的HTTP請求都通過(guò)同樣的管道路由。
    網(wǎng)絡(luò )基本上是一個(gè)無(wú)狀態(tài)模型,并且在HTTP請求間沒(méi)有聯(lián)系,這使得編寫(xiě)網(wǎng)絡(luò )應用程序很困難,因為應用程序通常需要維護跨多個(gè)請求的狀態(tài)。ASP.NET增強了由ASP引入的狀態(tài)管理服務(wù),以便為網(wǎng)絡(luò )應用程序提供三種類(lèi)型的狀態(tài):應用程序、會(huì )話(huà)、用戶(hù)。就象在A(yíng)SP中一樣,應用程序狀態(tài)特定于一個(gè)應用程序實(shí)例,并且不會(huì )持久。會(huì )話(huà)狀態(tài)是特定于一個(gè)用戶(hù)與應用程序間的會(huì )話(huà)的。與ASP會(huì )話(huà)狀態(tài)不同,ASP.NET會(huì )話(huà)狀態(tài)儲存在一個(gè)獨立的過(guò)程中,并且可把它配制成可以?xún)Υ娴揭粋(gè)獨立的機器上。這使得會(huì )話(huà)狀態(tài)當應用程序在網(wǎng)絡(luò )群(Web farm)擴展時(shí)非常有用。用戶(hù)狀態(tài)類(lèi)似于會(huì )話(huà)狀態(tài),但通常它不會(huì )超時(shí),并且是永久性的。因此,用戶(hù)狀態(tài)對儲存用戶(hù)參數和其它個(gè)性化的信息是有用的。所有狀態(tài)管理服務(wù)都被實(shí)現為HTTP模塊,因此它們容易增加到應用程序管道中,或從中刪除。如果除了由ASP.NET提供的服務(wù)外,還需要額外的狀態(tài)管理服務(wù),那么可由第三方的模塊提供。
    ASP.NET同樣提供高速緩沖服務(wù),以改善性能。輸出緩沖可完全節省網(wǎng)頁(yè)翻譯,段緩沖儲存部分的網(wǎng)頁(yè)。由于提供了相應的類(lèi),所以只要需要,應用程序、HTTP模塊以及請求處理程序可以在高速緩存中儲存任意數量的對象。
    下面快速瀏覽一下建立在A(yíng)SP.NET可編程模塊之上的兩個(gè)高級可編程模塊:ASP.NET 網(wǎng)絡(luò ) 表單和 ASP.NET 網(wǎng)絡(luò ) 服務(wù)。

    ??ASP.NET 網(wǎng)絡(luò )表單

    網(wǎng)絡(luò )表單把基于Visual Basic?的表單的高生產(chǎn)性的優(yōu)點(diǎn)帶到了網(wǎng)絡(luò )應用程序的開(kāi)發(fā)中來(lái)。網(wǎng)絡(luò )表單支持傳統的將HTML內容與角本代碼混合的ASP語(yǔ)法,但是它提出了一種將應用程序代碼和用戶(hù)接口內容分離的更加結構化的方法。引入的網(wǎng)絡(luò )表單控件用于為封裝通用用戶(hù)接口元素提供了一種機制。這些新的特點(diǎn)使得開(kāi)發(fā)工具在支持VB小應用程序的同時(shí),也支持設計時(shí)模塊,使得WUSIWYG工具支持網(wǎng)頁(yè)布局。
    網(wǎng)絡(luò )表單控件負責生成用戶(hù)接口,典型情況是在HTML表單中。ASP.NET是提供了一套映射傳統的HTML用戶(hù)接口小部件(包括列表框,文本框和按鈕)的網(wǎng)絡(luò )表單控件和一套附加的更加復雜的網(wǎng)絡(luò )控件(如日歷和廣告轉板)。這些控件的一個(gè)重要特點(diǎn)是,它們可以被編寫(xiě)以適應客戶(hù)端的能力;同一網(wǎng)頁(yè)把大范圍的客戶(hù)端平臺和表單因素作為目標。換句話(huà)說(shuō),網(wǎng)絡(luò )表單控件能“嗅”到正在查找表單的客戶(hù),然后返回合適的用戶(hù)經(jīng)驗――可能是適合低級瀏覽器的HTML3.2或是適于IE5.0的動(dòng)態(tài)HTML。
    考慮到網(wǎng)絡(luò )是一種無(wú)狀態(tài)的聯(lián)接模型,網(wǎng)絡(luò )應用程序開(kāi)發(fā)人員所面臨的一個(gè)很復雜的問(wèn)題是,他們要對用戶(hù)與基于網(wǎng)絡(luò )的接口的交互作用作出反應。網(wǎng)絡(luò )利用ASP.NET的體系架構提供了一套豐富的服務(wù),以幫助開(kāi)發(fā)人員建立交互式網(wǎng)頁(yè)。這些服務(wù)的凈作用是使基于組件的、事件驅動(dòng)的可編程模塊,對開(kāi)發(fā)人員來(lái)說(shuō),非常象客戶(hù)端的表單程序設計。用戶(hù)與網(wǎng)頁(yè)交互作用的狀態(tài)管理的復雜性被ASP.NET 網(wǎng)絡(luò ) 表單和網(wǎng)絡(luò )表單控件隱藏起來(lái)了。對開(kāi)發(fā)人員來(lái)說(shuō),提供的豐富數據綁定服務(wù)使得顯示通過(guò)數據訪(fǎng)問(wèn)服務(wù)得到的數據變得非常容易。
    代碼與內容的分離使ASP.NET網(wǎng)頁(yè)能動(dòng)態(tài)地編譯到受控類(lèi)中,用以提高性能。每個(gè)引入的HTTP請求都被傳遞到一個(gè)新的網(wǎng)頁(yè)實(shí)例,因此開(kāi)發(fā)人員不需要關(guān)心代碼中的線(xiàn)程安全性。

    ??ASP.NET 網(wǎng)絡(luò ) 服務(wù)

    ASP.NET 網(wǎng)絡(luò ) 服務(wù)體系架構為用ASP.NET建立網(wǎng)絡(luò ) 服務(wù)提供了一高級可編程模板。雖然建立網(wǎng)絡(luò )服務(wù)并不需要使用網(wǎng)絡(luò ) 服務(wù)平臺,但是它提供許多的優(yōu)點(diǎn)將簡(jiǎn)化開(kāi)發(fā)過(guò)程,并且它使用的編程模型對用ASP或VB工作的開(kāi)發(fā)人員來(lái)說(shuō)是很熟悉的。使用這個(gè)可編程模型,開(kāi)發(fā)人員不需要理解HTTP、SOAP或其它任何網(wǎng)絡(luò )服務(wù)規范。
    開(kāi)發(fā)人員用ASP.NET生成一個(gè)擴展名為.asmx的文件,并把此文件配制為網(wǎng)絡(luò )應用程序的一部分,就建立起了一個(gè)網(wǎng)絡(luò ) 服務(wù)。ASMX文件或者包含對在其它地方定義的受控類(lèi)的引用,或者包含這個(gè)類(lèi)的定義。這個(gè)類(lèi)是由ASP.NET提供的WebService類(lèi)所派生。公有的類(lèi)方法在標記上WebMethod屬性后,就會(huì )成為網(wǎng)絡(luò )服務(wù)方法,把HTTP請求發(fā)送到ASMX文件中的URL后,這些方法就會(huì )被調用。你不必手工為你的網(wǎng)絡(luò )服務(wù)建立一個(gè)契約。當被調用者請求時(shí),ASP.NET檢查類(lèi)的元數據,以自動(dòng)生成SCL文件。
    客戶(hù)可通過(guò)SOAP,HTTP GET 和HTTP POST提交請求。對方法和參數進(jìn)行編碼的約定是:對HTTP GET,將被編碼為查詢(xún)字符串;對HTTP POST,將被編碼為表單數據。HTTP GET 和HTTP POST 的機制不如SOAP有力,但是它們使得客戶(hù)在訪(fǎng)問(wèn)網(wǎng)絡(luò )服務(wù)時(shí)不必支持SOAP。
    ASP.NET 網(wǎng)絡(luò )服務(wù)模型假定了一個(gè)無(wú)狀態(tài)服務(wù)結構。無(wú)狀態(tài)結構通常比有狀態(tài)結構更具可擴展性。每次收到一個(gè)服務(wù)請求后,就生成一個(gè)新對象,請求被轉化為一個(gè)方法調用,當方法調用返回時(shí)對象被銷(xiāo)毀。如果這些服務(wù)需要跨請求維護狀態(tài),那么它們將使用ASP.NET狀態(tài)管理服務(wù);贏(yíng)SP.NET的網(wǎng)絡(luò )服務(wù)在網(wǎng)絡(luò )應用程序模型中運行,因此它們得到了該模型的所有安全、配制和其它優(yōu)點(diǎn)。
    ASP.NET 網(wǎng)絡(luò )服務(wù)還提供了一個(gè)為在SCL文件中描述的網(wǎng)絡(luò )服務(wù)生成分類(lèi)的受控代理工具。代理生成器把SCL文件中描述的消息映射成受控類(lèi)中的方法。代理對應用程序代碼隱藏了所有的網(wǎng)絡(luò )和引導設備,因此使用網(wǎng)絡(luò )服務(wù)看起來(lái)就象使用其它受控代碼一樣。代理將優(yōu)先使用SOAP鏈接網(wǎng)絡(luò )服務(wù),但是它同樣支持HTTP GET和 HTTP POST機制。因此HTTP GET和 HTTP POST同樣也能被使用。
    網(wǎng)絡(luò )服務(wù)為在Internet上綁定應用程序提供了一個(gè)利用現存體系架構和應用程序的簡(jiǎn)單的、靈活的、基于許多標準的模型。網(wǎng)絡(luò )應用程序很容易與當地開(kāi)發(fā)的服務(wù)或已存在的服務(wù)集成在一起,而不用考慮開(kāi)發(fā)平臺、開(kāi)發(fā)語(yǔ)言或使用的對象模型,以用于實(shí)現任何組成的服務(wù)或應用程序。
    Microsft .NET框架在現有開(kāi)發(fā)人員技巧之上,提供了一個(gè)應用程序模板和關(guān)鍵技術(shù),用于簡(jiǎn)化安全、可靠、可擴展、高可用性的網(wǎng)絡(luò )服務(wù)的建立、部署和不斷的發(fā)展。
    通過(guò)上面的介紹,我們能夠感覺(jué)到MicroSoft .NET對于我們今后的程序設計將產(chǎn)生巨大的影響。
    1.1.3 ASP.NET歷史
    ???? 我們在講述ASP.NET歷史之前,讓我們來(lái)回顧一下ASP。
    ? ASP的第一個(gè)版本是0.9測試版。它給WEB開(kāi)發(fā)帶來(lái)一陣暴風(fēng),它能夠將代碼直接嵌入HTML,使得設計WEB頁(yè)面變得更簡(jiǎn)單,更強大,并且通過(guò)內置的組件能夠實(shí)現強大功能,最明顯的就是ActiveX Data Objects (ADO),它使得建立一個(gè)動(dòng)態(tài)頁(yè)面如小孩子玩游戲一樣簡(jiǎn)單。
    ???? 最終出場(chǎng)的是Active Server Page 1.0,它做為IIS的附屬產(chǎn)品免費發(fā)送。并且不久就在Windows平臺上廣泛使用。ASP與ADO的結合使用開(kāi)發(fā)者很容易地在一個(gè)數據庫中建立和打開(kāi)一個(gè)記錄集。這不無(wú)疑是它如此快就被大眾接受的因素,因為你現在能使用這些腳本建立和打開(kāi)一個(gè)記錄集,處理和輸出任何數據,以任何順序,幾乎只要你能想到的,它就能完成。
    ???? 1998年,微軟公司又發(fā)布了ASP 2.0 。ASP 1.0和ASP 2.0主要區別是外部的組件需要實(shí)例化。有了ASP 2.0 和IIS 4.0,我們就有可能建立ASP應用了,而且每個(gè)組件就有了自已單獨的內存空間。內置的MicroSoft Transaction Server(MTS)也使用制做組件便得簡(jiǎn)單。
    微軟公司接著(zhù)開(kāi)發(fā)了Windows 2000操作系統。 這個(gè)Windows版本給我們帶上了IIS 5.0 以及 ASP 3.0。此次并不是簡(jiǎn)單對ASP進(jìn)行補充,核心的不同實(shí)際上是把很多的事情交給了COM來(lái)做。在windows 2000中,微軟結合了MTS與COM核心環(huán)境做出了COM+,這就讓主機有了一種新的方法來(lái)使用組件,同樣給主機帶來(lái)了更多的穩定性,成了一個(gè)可以升級的效率高的工作平臺。IIS? 5.0在表面上似乎沒(méi)有改什么,但是在接口上動(dòng)的手術(shù)比較大。在內部,它使用COM+ 組件服務(wù)來(lái)對組件提供一個(gè)更好的執行的環(huán)境。
    有了這些,微軟公司推出了ASP.NET,ASP.NET又叫ASP.NET,他不是ASP的簡(jiǎn)單升級,而是MicroSoft推出的新一代Active Server Pages。ASP.NET是微軟發(fā)展的新的體系結.NET的一部分,其中全新的技術(shù)架構會(huì )讓每個(gè)人的編程生活變得更的簡(jiǎn)單


    1.1.4小結
    在本章中,我們介紹了微軟.NET的歷史,以及對.NET的構成、性能進(jìn)行了一個(gè)詳細的介紹,同時(shí),我們還詳細介紹了ASP.NET的歷史。在下面的章節中,我們將按實(shí)例一步一步的講解ASP.NET。

    第二章 .NET的安裝與運行環(huán)境

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

    ??支持哪幾種語(yǔ)言
    ? ASP.NET 目前能支持3種與語(yǔ)言, C# (讀作 "C Sharp"), Visual Basic,and Jscrip。.
    ??
    ??使你的機器持ASP.NET,必須滿(mǎn)足以下配置:
    ???
    硬件要求:
    1、 CPU: Intel Pentium II-class 300 MHz (最好Intel Pentium III-class 600 MHz)
    2、 內存: 96 MB (最好128 MB)
    3、 磁盤(pán)空間: 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是運行庫,還是開(kāi)發(fā)平臺?

    微軟的宏偉目標是讓MicroSoft.NET徹底改變軟件的開(kāi)發(fā)方式、發(fā)行方式、使用方式等等,并且不止是針對微軟一家,而是面向所有公司!2000年7月份在PDC展會(huì )上分發(fā)的是“.NET架構”包,“.NET架構”是MicroSoft.NET計劃中首先問(wèn)世的一部分,它包括了兩方面的組件:“.NET通用運行庫”和“.NET類(lèi)庫”。最近傳來(lái)好消息說(shuō)這兩個(gè)組件已經(jīng)被打包到“.NET架構SDK”中,放在微軟的站上免費供大家下載,有興趣的朋友一定要去試試看哦!另外,這個(gè)SDK中還包括C#、C++、JavaScript和VB的命令行編譯器,使用這些編譯器就可以開(kāi)發(fā)應用程序和組件了,從這個(gè)角度來(lái)看,.NET架構首先是一個(gè)開(kāi)發(fā)平臺,因為它提供了運行庫和類(lèi)庫,并且,下一個(gè)即將面市的就是Visual Studio.NET,其中包括了更加全面的SDK和圖形化的開(kāi)發(fā)界面、向導、工具等等,更象一個(gè)開(kāi)發(fā)平臺了。但是.NET的運行庫其實(shí)已經(jīng)融合到操作系統中,所以說(shuō)它為運行庫也是可以的。

    ??什么是NGWS?

    ASP.NET實(shí)際上是一個(gè)嶄新的運行結構的一部分,這個(gè)結構提供對所有windows應用程序的支持。這個(gè)結構是MicroSoft's Next Generation Web Services ( NGWS)關(guān)建部分。當你安裝了這個(gè)結構,你就獲得了ASP.NET。這個(gè)結構同樣支持所有其它服務(wù)器程序技術(shù)。
    ??? NGWS 結構通過(guò)對可升級分布式應用添加 [新的和增強的服務(wù)] 來(lái)擴展COM的結構,此種結構常用做編寫(xiě)可重復調用的可共同使用的軟件組件,這些新的和增強的服務(wù)有:
    ??? 一套統一的豐富的程序庫
    一個(gè)支持多語(yǔ)言的運行引擎
    簡(jiǎn)單地應用建立,調試,以及維護
    對分布式應用加強了可升級性
    保護現已存在的軟件和投資

    ??在A(yíng)SP.NET引入了namespace的概念,那么namespace是什么?
    ???
    ??? 對象一直是Windows開(kāi)發(fā)環(huán)境中,程序開(kāi)發(fā)的中心。不論在VB、VBA、VC++、VBScript等,都是如此,不同的開(kāi)發(fā)環(huán)境有不同的對象,這些對象均是各個(gè)語(yǔ)法所提供的的“資源”,程序開(kāi)發(fā)人員可以利用這些資源,來(lái)編寫(xiě)所需的系統,就象我們在蓋房屋的一樣,建筑師使用使用同樣的素材,然而蓋好的房子可能不盡相同。
    ???? 在過(guò)去的SP中,僅有Server、Request、Response…等七個(gè)對象。而在A(yíng)SP.NET的對象庫中卻分得很細。
    ???? 例如在A(yíng)SP.NET網(wǎng)頁(yè)中要通過(guò)SQL語(yǔ)句獲得數據庫中的數據,必須使用“System.Data.SQL”,這是NameSpace名稱(chēng)。 在System.Data.SQL下,又有很多類(lèi)(Class)。每個(gè)Class可視為一個(gè)對象,因為Class下有屬性、方法和事件等
    ???? 所以,最上層的NameSpace是看作是同類(lèi)型對象的集合,一個(gè)NameSpace之下可擁有多個(gè)Class。

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

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

    <%@ Import Namespace="DataEmployee" %>

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

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

    以上表示在A(yíng)SP.NET網(wǎng)頁(yè)中使用了四個(gè)NameSpace,接下來(lái)我們要申明變量,但此變量必須是已引用的四個(gè)NameSpace所屬的Class,如:

    Dim MyConnection As ADOConnection

    Dim MyCommand As ADODataSetCommand

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

    ??ASP.NET中的文件類(lèi)型?

    ASP 的文件類(lèi)型只有一種,其擴展名是.asp文件。那么在A(yíng)SP.NET,就有很多的文件名:

    文件擴展名?用途及說(shuō)明
    Global.asax
    ? ASP.NET系統環(huán)境設置文件,相當與ASP中的Global.asa。
    .aspx
    ? 內含ASP程序代碼的文件,如同過(guò)去的.asp,瀏覽器可執行此類(lèi)文件,向服務(wù)器 提出瀏覽請求
    .asmx
    ? 制作Web Service的原始文件
    .sdl
    ? 制作Web Service的XML格式的文件

    Vb或.cs?在非ASP.NET環(huán)境下,執行Web Service的文件
    .aspc
    ? 可重覆使用在多個(gè).aspx的文件,此文件內可含有控件
    .ascx
    ? 內含User Control的文件,可內含在多個(gè).aspx
    文件中.

    打印本頁(yè)】 【關(guān)門(mén)窗口
    上一篇:站點(diǎn)代碼優(yōu)化(全面提高頁(yè)面打開(kāi)速度) [2013/4/14]
    下一篇:Asp.Net 腳本語(yǔ)言介紹 [2013/4/14]
       
     監控維修手冊 []
     超市監控/店鋪監控/超市網(wǎng)... []
     ASP.net發(fā)郵件的實(shí)例 []
     SQL對象名無(wú)效的解決方法 []
     微軟.NET戰略和ASP.NET簡(jiǎn)介 []
     Asp.net 文件上傳示例代碼 []
     熱烈祝賀威寧縣人民政府門(mén)... []
     站點(diǎn)代碼優(yōu)化(全面提高頁(yè)面... []
     2014年春節放假通知 []
     2015年春節放假通知 []
    旗下網(wǎng)站:苗族文化網(wǎng)
    Copyright www.csi88.cn 版權所有:貴州狼邦科技有限公司
    ICP備案/許可證編號:黔ICP備12004694號 貴公網(wǎng)安備:52010302001843號
    地址:貴州省貴陽(yáng)市南明區花溪大道東側保利鳳凰灣B1區1-12-25號 電話(huà):0851-85111798
    業(yè)務(wù)及技術(shù):13688513435(潘先生) 財務(wù)及客服:18985103435(王女士)