官术网_书友最值得收藏!

1.2 .NET Framework 3.5介紹

Visual Studio 2008與Visual Studio 2005相比,采用的框架為3.5版本。.NET Framework 3.5版是在2.0和3.0版及其Service Pack的基礎上構建的。.NET Framework 3.5 Service Pack 1更新了3.5版程序集,并包含2.0和3.0版的新Service Pack。

1. .NET Framework的兩個主要組件——公共語言運行庫和.NET Framework類庫

公共語言運行庫是.NET Framework的基礎。可以將運行庫看做一個在執行時管理代碼的代理,它提供內存管理、線程管理和遠程處理等核心服務,并且還強制實施嚴格的類型安全檢查以提高代碼的安全性、可靠性和準確性。事實上,代碼管理的概念是運行庫的基本原則。以運行庫為目標的代碼稱為托管代碼,而不以運行庫為目標的代碼稱為非托管代碼。.NET Framework的另一個主要組件是類庫,它是一個綜合性的面向對象的可重用類型集合,可以使用它開發多種應用程序,這些應用程序包括傳統的命令行或圖形用戶界面(GUI)應用程序,也包括基于ASP.NET所提供的最新創新的應用程序(如Web窗體和XMLWeb Services)。

如圖1-12 所示為公共語言運行庫和類庫與應用程序之間,以及與整個系統之間的關系。該圖還顯示了托管代碼如何在更大的結構內運行。

圖1-12 公共語言運行庫和類庫與應用程序之間,以及與整個系統之間的關系

2. 使用.NET平臺的優點

(1)Microsoft.NET XML Web服務,不是一個單一的程序。這些Web服務易于編程和調試,彼此之間相互獨立,通過XML Message進行通信及合作。

(2)Microsoft.NET減少了程序員要寫的代碼量。一個XML Web服務能適用于所有的設備,不必再去為每一個設備編寫一個不同的版本。另外,將顯示特性與.NET體驗分開,以便以后加入新的接口技術。

(3)Microsoft.NET開創了全新的商業模型,它使得一個公司可以用多種方法來把自己的技術商品化。技術提供商可以把他們現有的軟件包轉變為XML Web服務,并把這些服務出售給需要這些功能的第三方,或供給.NET體驗提供商,用以構建新的軟件包。

(4)Microsoft.NET允許IT部門使用其他提供商的XML Web服務,減少內部研發的工作量。它能記住用戶的個人設置,并在適當的時候,向用戶使用的智能設備發送適當的數據。

1.2.1 公共語言運行庫

公共語言運行庫的功能通過編譯器和工具公開,可以編寫利用此托管執行環境的代碼。使用基于公共語言運行庫的語言編譯器開發的代碼稱為托管代碼。托管代碼具有許多優點,如跨語言集成、跨語言異常處理、增強的安全性、版本控制和部署支持、簡化的組件交互模型、調試和分析服務等。

若要使公共語言運行庫能夠向托管代碼提供服務,語言編譯器必須生成一些元數據來描述代碼中的類型、成員和引用。元數據與代碼一起存儲;每個可加載的公共語言運行庫可移植執行(PE)文件都包含元數據。公共語言運行庫可使用元數據來完成查找和加載類、在內存中安排實例、解析方法調用、生成本機代碼、強制安全性,以及設置運行時上下文邊界等任務。

公共語言運行庫會自動處理對象布局并管理對象引用,當不再使用對象時可釋放它們。按這種方式實現生存期管理的對象稱為托管數據。垃圾回收消除了內存泄漏及其他一些常見的編程錯誤。如果編寫的代碼是托管代碼,則可以在 .NET Framework應用程序中使用托管數據、非托管數據,或者同時使用這兩種數據。由于語言編譯器會提供自己的類型(如基元類型),因此可能并不總是知道(或需要知道)這些數據是否是托管的。

有了公共語言運行庫,就可以很容易地設計出對象能夠跨語言交互的組件和應用程序。也就是說,用不同語言編寫的對象可以互相通信,并且它們的行為可以緊密集成。例如,可以定義一個類,然后使用不同的語言從原始類派生出另一個類或調用原始類的方法,還可以將一個類的實例傳遞到用不同的語言編寫的另一個類的方法中。這種跨語言集成之所以成為可能,是因為基于公共語言運行庫的語言編譯器和工具使用由公共語言運行庫定義的通用類型系統,而且它們遵循公共語言運行庫關于定義新類型,以及創建、使用、保持和綁定到類型的規則。

最后,運行庫可由高性能的服務器端應用程序承載,如Microsoft SQL Server和Internet信息服務(IIS)。此基礎結構在享受支持運行庫宿主的行業最佳企業服務器的優越性能的同時,能夠使用托管代碼編寫業務邏輯。

1.2.2 .NET Framework類庫

.NET Framework類庫是一個由Windows軟件開發工具包(SDK)中包含的類、接口和值類型組成的庫。該庫提供對系統功能的訪問,是建立 .NET Framework應用程序、組件和控件的基礎。

.NET Framework類型是生成.NET應用程序、組件和控件的基礎。它包括可加快和優化開發過程并提供對系統功能的訪問的類、接口和值類型。為了便于語言之間進行交互操作,大多數.NET Framework類型都符合公共語言規范(CLS),因而可在編譯器符合CLS的任何編程語言中使用。

.NET Framework提供了一組豐富的接口,以及抽象類和具體(非抽象)類。.NET Framework包括的類型可執行下列功能。

● 表示基礎數據類型和異常。

● 封裝數據結構。

● 執行I/O。

● 訪問關于加載類型的信息。

● 調用.NET Framework安全檢查。

● 提供數據訪問、多客戶端GUI和服務器控制的客戶端GUI。

可以按原樣使用這些具體的類,或者在多數情況下從這些類派生自己的類。若要使用接口的功能,既可以創建實現接口的類,也可以從某個實現接口的.NET Framework類中派生類。

1.2.3 程序集

傳統的程序開發環境使用進程邊界來隔離在同一臺計算機上運行的應用程序。每一個應用程序被加載到單獨的進程中,這樣就將該應用程序與在同一臺計算機上運行的其他應用程序相隔離了。隔離這些應用程序的原因在于內存地址是與進程相關的。在目標進程中,不能通過任何有意義的方式使用從一個進程傳遞到另一個進程的內存指針。此外,不能在兩個進程間進行直接調用。

.NET Framework程序集提供了一個更安全、用途更廣的處理單元,公共語言運行庫可使用該單元提供應用程序之間的隔離。可以在具有同等隔離級別(存在于單獨的進程中)的單個進程中運行幾個程序集,而不會造成進程間調用或進程間切換等方面的額外開銷。

一個程序集由兩部分組成,即中間語言和元數據。

(1)中間語言:包含了程序的可執行部分。中間語言與編譯器的第一遍輸出類似,由于還沒有被轉換成計算機處理器能識別的二進制格式,因此它還不可以在計算機上直接執行。中間語言必須由編譯器進行最后一遍編譯,該編譯器是.NET框架的一部分。

(2)元數據:描述了程序集的內容。通過將元數據嵌入每個程序集中,任何程序集都可以實現完全的自描述,從而簡化了發布使用較舊技術的組件時所需進行的工作。.NET框架使用元數據省略組件的注冊過程。每個程序集都在元數據中包含了對其他程序集的引用信息,使得運行庫可以通過一種靈活的方法來綁定多個程序集。

公共語言運行庫加載某個應用程序時,會檢查該應用程序的元數據,從而判斷在執行時需要哪種外部數據集。

有以下兩種類型的數據集。

(1)私有程序集。僅由單個應用程序使用,通常與使用它們的應用程序保存于同一目錄下。使用程序集時應首選此方法。因為私有的程序集不需要與其他的應用程序共享,所有更新或替換私有程序集的操作不會影響其他的應用程序,相對比較容易。

(2)共享程序集。通常由多個應用程序共同使用,共享程序集布局有運行庫所附加的一些約束,并且必須遵循命名和版本控制規則。

主站蜘蛛池模板: 山阳县| 淮滨县| 鱼台县| 南皮县| 岳西县| 土默特右旗| 娄底市| 高阳县| 乐山市| 陆丰市| 安龙县| 七台河市| 嵩明县| 鸡西市| 阳春市| 兴和县| 娱乐| 黄石市| 黔西| 徐州市| 无为县| 利津县| 尼木县| 高台县| 房山区| 新宾| 临安市| 德州市| 阿鲁科尔沁旗| 余干县| 行唐县| 拜泉县| 黑山县| 九龙城区| 毕节市| 泰来县| 双鸭山市| 乡城县| 滨州市| 板桥市| 满洲里市|