|
引言 本文著眼于微軟.NET框架。這是較新發(fā)布的軟件開(kāi)發(fā)環(huán)境,它幫助開(kāi)發(fā)者快速開(kāi)發(fā)應(yīng)用程序并且提供各種不同語(yǔ)言像Visual Basic .NET, C#, ASP .NET, 和Jscript .NET等開(kāi)發(fā)最合適的,高效的,可擴(kuò)展的,面向性能的應(yīng)用程序 。
.NET框架概述
服務(wù) NET框架提供以下服務(wù):
.NET框架將使開(kāi)發(fā)者為不同設(shè)備和不同平臺(tái)開(kāi)發(fā)應(yīng)用程序,如:windows應(yīng)用程序、web應(yīng)用程序、windows服務(wù)和web服務(wù)。
目標(biāo) 設(shè)計(jì).NET框架是為了實(shí)現(xiàn)下列目標(biāo):
理解.NET框架體系結(jié)構(gòu) .NET框架有兩個(gè)組件:.NET框架類(lèi)庫(kù)和公共語(yǔ)言運(yùn)行時(shí)。
.NET框架體系結(jié)構(gòu)最頂部是像VB .NET C#, VJ#, VC++ .NET之類(lèi)的語(yǔ)言;開(kāi)發(fā)者能開(kāi)發(fā)(使用上面的任何語(yǔ)言)像Windows窗體,Web窗體,Windows服務(wù)和XML Web服務(wù)。 .NET框架有兩個(gè)組要的組件:公共語(yǔ)言運(yùn)行時(shí)(CLR)和.NET框架類(lèi)庫(kù)。公共語(yǔ)言運(yùn)行時(shí)是.NET框架的基礎(chǔ)。CLR 在運(yùn)行時(shí)管理代碼,提供像內(nèi)存管理,線(xiàn)程管理和remoting之類(lèi)的核心服務(wù),同時(shí)也加強(qiáng)嚴(yán)格的類(lèi)型安全和促進(jìn)代碼正確來(lái)確保程序的安全性和健壯性(魯棒性)。代碼管理的概念是CLR的基本原則。針對(duì)CLR的代碼被認(rèn)為是可管理的代碼,而不是針對(duì)CLR的代碼則被認(rèn)為是不可管理的代碼。 類(lèi)庫(kù)是.NET框架的一個(gè)完整的組件, 包括可重用類(lèi)的面向?qū)ο蠹?,它使我們能用?lái)開(kāi)發(fā)應(yīng)用程序包括傳統(tǒng)的命令行或是任何像Windows窗體,ASP. NET Web窗體和新近發(fā)明的XML Web 服務(wù)的Windows服務(wù)這樣的圖形用戶(hù)接口(GUI)。 歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)標(biāo)準(zhǔn)定義了通用語(yǔ)言規(guī)范(CLS);這加強(qiáng)了軟件開(kāi)發(fā)語(yǔ)言能夠進(jìn)行互操作。按照CLS編寫(xiě)的代碼應(yīng)該能和另一個(gè)符合CLS語(yǔ)言的代碼一起編譯。因?yàn)橛煞?/span>CLS語(yǔ)言支持的代碼將會(huì)被編譯成中間語(yǔ)言(IL)代碼。CLR引擎執(zhí)行IL代碼。這保證了符合CLS語(yǔ)言的互用性。微軟.NET框架支持的語(yǔ)言有Microsoft Visual Basic .NET, Microsoft Visual C#, Microsoft Visual C++ .NET, and Microsoft Visual J# .NET. 語(yǔ)言編譯器生成中間語(yǔ)言代碼,叫做微軟中間語(yǔ)言(MSIL),它使不同可互操作的.NET語(yǔ)言編寫(xiě)程序。 圖1.微軟.NET框架的ECMA標(biāo)準(zhǔn) .NET框架提供基礎(chǔ)架構(gòu)和服務(wù)。CLI規(guī)范.它們包括: CLR包括CLI CLR也提供.NET應(yīng)用程序的執(zhí)行環(huán)境 公共類(lèi)型系統(tǒng): 提供數(shù)據(jù)類(lèi)型,值,對(duì)象類(lèi)型。這使得開(kāi)發(fā)人員能用不同的語(yǔ)言開(kāi)發(fā)應(yīng)用程序。.NET語(yǔ)言共享CTS意味著所有在應(yīng)用程序中的類(lèi)型在CLI類(lèi)型定義中是一樣的。 類(lèi)型安全: .NET框架在值和對(duì)象上執(zhí)行操作,因?yàn)?/span>.NET框架需要知道每個(gè)值和對(duì)象的類(lèi)型并且引用值和對(duì)象類(lèi)型。 可管理的代碼執(zhí)行 .NET框架管理執(zhí)行.NET應(yīng)用程序時(shí)對(duì)象的狀態(tài)。 .NET框架自動(dòng)分配內(nèi)存并提供來(lái)機(jī)收集機(jī)制來(lái)重新分配內(nèi)存 Side-by-side執(zhí)行 .NET框架通過(guò)使用不同版本的裝配器允許同一應(yīng)用程序的不同版本運(yùn)行在同一機(jī)器上。裝配器由IL代碼和元數(shù)據(jù)組成。元數(shù)據(jù)決定應(yīng)用程序的依賴(lài)關(guān)系。通過(guò)這個(gè),.NET框架運(yùn)行時(shí)能執(zhí)行多種版本裝配器并且解決遺留的開(kāi)發(fā)環(huán)境的主要問(wèn)題。那就是DLL HELL? 圖1.微軟.NET框架的ECMA標(biāo)準(zhǔn) .NET框架提供基礎(chǔ)架構(gòu)和服務(wù)。CLI規(guī)范.它們包括: CLR包括CLI CLR也提供.NET應(yīng)用程序的執(zhí)行環(huán)境 公共類(lèi)型系統(tǒng): 提供數(shù)據(jù)類(lèi)型,值,對(duì)象類(lèi)型。這使得開(kāi)發(fā)人員能用不同的語(yǔ)言開(kāi)發(fā)應(yīng)用程序。.NET語(yǔ)言共享CTS意味著所有在應(yīng)用程序中的類(lèi)型在CLI類(lèi)型定義中是一樣的。 類(lèi)型安全: .NET框架在值和對(duì)象上執(zhí)行操作,因?yàn)?/span>.NET框架需要知道每個(gè)值和對(duì)象的類(lèi)型并且引用值和對(duì)象類(lèi)型。 可管理的代碼執(zhí)行 .NET框架管理執(zhí)行.NET應(yīng)用程序時(shí)對(duì)象的狀態(tài)。 .NET框架自動(dòng)分配內(nèi)存并提供來(lái)機(jī)收集機(jī)制來(lái)重新分配內(nèi)存 Side-by-side執(zhí)行 .NET框架通過(guò)使用不同版本的裝配器允許同一應(yīng)用程序的不同版本運(yùn)行在同一機(jī)器上。裝配器由IL代碼和元數(shù)據(jù)組成。元數(shù)據(jù)決定應(yīng)用程序的依賴(lài)關(guān)系。通過(guò)這個(gè),.NET框架運(yùn)行時(shí)能執(zhí)行多種版本裝配器并且解決遺留的開(kāi)發(fā)環(huán)境的主要問(wèn)題。那就是DLL HELL? 理解.NET框架CLR 公共語(yǔ)言運(yùn)行時(shí): 理解.NET框架CLR的體系結(jié)構(gòu) 公共語(yǔ)言運(yùn)行時(shí)的特征 CLR有以下特征: 理解CLR 為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成: MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。 CLR的特點(diǎn) CLR的結(jié)構(gòu) CLR的特點(diǎn) CLR的結(jié)構(gòu) 為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成: MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。 CLR的特點(diǎn) CLR的結(jié)構(gòu) CLR的特點(diǎn) CLR的結(jié)構(gòu) CLR有以下特征: 理解CLR 為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成: MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。 CLR的特點(diǎn) CLR的結(jié)構(gòu) CLR的特點(diǎn) CLR的結(jié)構(gòu) 為了執(zhí)行程序并且獲得可管理執(zhí)行環(huán)境的所以好處,我們用CLS支持的.NET框架語(yǔ)言編寫(xiě)代碼。語(yǔ)言編譯器將源代碼編譯成由CPU相關(guān)的代碼和平臺(tái)相關(guān)的指令組成的MSIL代碼。MSIL有下列組成: MSIL代碼能夠在執(zhí)行前被編譯成特定CPU指令,CLR所需要代碼的信息只有元數(shù)據(jù)。元數(shù)據(jù)描述代碼并且定義代碼類(lèi)型包括引用代碼在運(yùn)行期用到的其他類(lèi)型。 CLR的特點(diǎn) CLR的結(jié)構(gòu) CLR的特點(diǎn) CLR的結(jié)構(gòu) |
|
|
來(lái)自: joojo > 《構(gòu)架設(shè)計(jì)》