一、.NET概述 .NET是微軟公司推出的一組開放的互聯(lián)網(wǎng)協(xié)議相關(guān)產(chǎn)品、技術(shù)和服務(wù)的綜合。.NET的開發(fā)框架是在通用語言運(yùn)行環(huán)境的基礎(chǔ)上,為開發(fā)人員提供了完整的基礎(chǔ)庫、數(shù)據(jù)庫訪問技術(shù)及網(wǎng)絡(luò)開發(fā)技術(shù),開發(fā)者使用多種語言快速構(gòu)件相關(guān)網(wǎng)絡(luò)應(yīng)用。 .NET的目標(biāo)是:提供一個(gè)一致的面向?qū)ο缶幊汰h(huán)境,無論對象代碼在本地執(zhí)行還是在Internet上分布,遠(yuǎn)程執(zhí)行;提供了一個(gè)將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境,以消除“dll hell”問題;提供一個(gè)保證代碼安全執(zhí)行的代碼執(zhí)行環(huán)境;提供一個(gè)可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境;按照工業(yè)標(biāo)準(zhǔn)省城所有通信,以確?;谠摽蚣艿拇a可以與任何其他代碼集成。 二、.NET的體系結(jié)構(gòu) .NET框架有通用語言規(guī)范、框架類庫、ASP.NET以及ADO.NET、企業(yè)服務(wù)、Web服務(wù)、Windows窗體、遠(yuǎn)程處理等。.NET開發(fā)工具一般是Visual Studio .NET。 1.通用語言運(yùn)行環(huán)境(CLR) CLR為.NET框架的最底層,是將底層平臺差異進(jìn)行抽象的運(yùn)行基礎(chǔ)設(shè)施,CLR支持所有能用公共中間語言(common intermediate language)表示的編程語言。從而為多種語言提供了一種統(tǒng)一的運(yùn)行環(huán)境,使得組件和XML Web服務(wù)的綜合使用不再受編程語言的限制。提供更多的功能和特性,從而簡化應(yīng)用程序的發(fā)布和升級、多種語言之間的交互、自動的內(nèi)存和資源管理等。 .NET框架中的幾個(gè)重要概念: 程序集 程序集是.NET平臺用于部署和配置的單元,是自我描述的安裝單元,由一個(gè)或多個(gè)文件組成,一個(gè)程序集科研是一個(gè)包括元數(shù)據(jù)的DLL或EXE門業(yè)科研是多個(gè)文件組成的,如資源文件、元數(shù)據(jù)、DLL和EXE。 應(yīng)用程序域 提供安全通用的處理單元,處理CLR可使用它來提供應(yīng)用程序之間的隔離??蒲性诰哂型雀綦x級別的單個(gè)程序中運(yùn)行幾個(gè)應(yīng)用程序域,而不會造成進(jìn)程間調(diào)用或進(jìn)程間切換等額外開銷,在一個(gè)進(jìn)程內(nèi)運(yùn)行多個(gè)應(yīng)用程序的的能力顯著增強(qiáng)了服務(wù)器的可伸縮性。 應(yīng)用程序域提供的隔離好處有:在一個(gè)應(yīng)用程序中出現(xiàn)的錯(cuò)誤不會影響其他應(yīng)用程序;能夠在不停止整個(gè)進(jìn)程的情況下停止單個(gè)應(yīng)用程序;可以卸載應(yīng)用程序中運(yùn)行的代碼。 元數(shù)據(jù) 元數(shù)據(jù)包括類型定義、版本信息、外部程序集引用和其他標(biāo)準(zhǔn)化信息。.NET使用元數(shù)據(jù)描述特定程序集中使用的類型;相對類型庫來說,元數(shù)據(jù)要豐富的多,包括程序集、模塊、類、接口、方法、屬性、字段、事件以及全局方法等的描述;對元數(shù)據(jù)的訪問可以利用.NET提供的反射API進(jìn)行。 IL中間語言 Microsoft將其語言抽象層稱為共用中間語言common intermediate language,CLR。IL類似于Java編譯器聲稱的字節(jié)碼,支持所有面向?qū)ο筇匦?,包括?shù)據(jù)抽象、繼承、多態(tài)以及異常的事件等。.NET支持多種語言,因此理論上.NET語言都可以轉(zhuǎn)化為IL,公用類型系統(tǒng)和公用語言規(guī)范可以確保不同語言的兼容性、互操作性和可集成性。 三、ADO.NET ADO.NET是數(shù)據(jù)訪問模型,用于訪問關(guān)系型數(shù)據(jù)庫系統(tǒng),其優(yōu)越性體現(xiàn)在以下幾個(gè)方面: 互操作性: 采用XML作為其有效的數(shù)據(jù)格式,解決了公用數(shù)據(jù)交換的限制,而由于XML只是結(jié)構(gòu)化文本,將XML作為HTTP網(wǎng)絡(luò)協(xié)議頂層的數(shù)據(jù)格式,可以將防火墻的相關(guān)問題降到最小。 可伸縮性: 采用非連接數(shù)據(jù)的機(jī)制,當(dāng)客戶請求數(shù)據(jù)時(shí),將獲得的數(shù)據(jù)集傳送到客戶處,并盡可能及時(shí)關(guān)閉連接,對數(shù)據(jù)操作的可伸縮性和系統(tǒng)的性能有一定的提高。 高效性 : ADO.NET為用戶提供了更為豐富的可擴(kuò)展的框架,開發(fā)者可以在此基礎(chǔ)上快速開發(fā)健壯、高性能的XML Web服務(wù)以及多層應(yīng)用程序。 ADO.NET對象模型由內(nèi)容組件和托管供應(yīng)器組件組成,內(nèi)容組件包括DataSet類和其他支持類如DataTable、DataRow等;托管供應(yīng)器組件用于輔助數(shù)據(jù)的獲取和更新。 四、ASP.NET ASP.NET是微軟.NET中的網(wǎng)絡(luò)編程結(jié)構(gòu),使得建造、運(yùn)行和發(fā)布網(wǎng)絡(luò)應(yīng)用更加方便和高效。ASP.NET提供的網(wǎng)絡(luò)表單功能使得開發(fā)者能夠非常容易的創(chuàng)建網(wǎng)絡(luò)表單,將VB中的快速開發(fā)模型引入到網(wǎng)絡(luò)開發(fā)中來。 ASP.NET中建造和使用網(wǎng)絡(luò)服務(wù)都非常方便,在ASP.NET中建造網(wǎng)絡(luò)服務(wù)就是編寫一個(gè)擴(kuò)展名為.asmx的文件,并在文件中加入必要的表現(xiàn)方法,網(wǎng)絡(luò)服務(wù)的建造者不需要了解SOAP和XML的細(xì)節(jié)。 ASP.NET的應(yīng)用不再是解釋腳本,而是編譯運(yùn)行的,加上靈活的緩沖技術(shù),從根本上提高了性能;發(fā)布一個(gè)網(wǎng)絡(luò)應(yīng)用也僅僅需要復(fù)制文件即可;開發(fā)者可以將應(yīng)用的配置信息存放在XML格式的文件中;提供了更多的認(rèn)證和安全管理方法,提高應(yīng)用程序的可靠性。 與Java的J2EE相比,.NET是微軟開發(fā)的中間件產(chǎn)品,采用CLR解釋執(zhí)行,對動態(tài)頁面采用ASP.NET表現(xiàn),支持Web服務(wù)和數(shù)據(jù)庫訪問,對數(shù)據(jù)庫的訪問采用的是ADO.NET管理。而Java是Sun公司開發(fā)支持多加中間件廠商產(chǎn)品的標(biāo)準(zhǔn),采用JRE解釋執(zhí)行,動態(tài)頁面用JSP實(shí)現(xiàn),支持Web服務(wù)和數(shù)據(jù)庫訪問,采用JDBC等方式實(shí)現(xiàn)對數(shù)據(jù)庫的訪問。
|