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

1.1 .NET Framework概述

.NET Framework即Microsoft .NET Framework,又被稱為.NET框架。它是支持生成和運行下一代應用程序與Web服務內容的Windows組件。.NET Framework提供了托管執行環境、簡化開發和部署以及與各種編程語言的集成。

簡單來說,如果想要開發和運行.NET運行程序,就必須首先安裝.NET Framework。

1.1.1 .NET Framework組件

.NET Framework是一種技術,該技術支持生成和運行下一代應用程序與XML Web服務。.NET Framework旨在實現以下幾個目標。

(1)提供一個一致的面向對象的編程環境,而無論對象代碼是在本地存儲和執行,還是在本地執行但在Internet上分布,或者是在遠程執行的。

(2)提供一個將軟件部署和版本控制沖突最小化的代碼執行環境。

(3)提供一個可提高代碼(包括由未知的或不完全受信任的第三方創建的代碼)執行安全性的代碼執行環境。

(4)提供一個可消除腳本環境或解釋環境的性能問題的代碼執行環境。

(5)使開發者的經驗在面對類型大不相同的應用程序(如基于Windows的應用程序和基于Web的應用程序)時保持一致。

(6)按照工業標準生成所有通信,以確保基于.NET Framework的代碼可與任何其他代碼集成。

.NET Framework包含兩個組件:公共語言運行時和.NET Framework類庫。公共語言運行時是.NET Framework的基礎。.NET Framework類庫是一個綜合性的面向對象的可重用類型集合。如圖1-1所示為公共語言運行時、.NET Framework類庫與應用程序以及整個系統之間的關系。

圖1-1 公共語言運行時、類庫和應用程序以及整個系統的關系

目前,.NET Framework 4.5是相當穩定的版本。.NET Framework 4.5在之前版本(如.NET Framework 4.0)的基礎上新增了多個功能,并且改進了之前版本的部分功能。如實現程序集的自動綁定重定向、可以在垃圾回收過程中顯式壓縮大對象堆、支持對區域性字符串排序以及比較數據進行版本控制。除這些基本功能外,還對WPF、WCF和WF等應用程序的功能進行了添加和更改。

1.1.2 公共語言運行時

.NET Framework提供了一個稱為公共語言運行時(Command Language Runtime,CLR)的運行環境,它運行代碼并提供使開發過程更輕松的服務。作為.NET Framework的核心組件,它是執行時管理代碼的代理,并提供內存管理、線程管理和遠程處理等核心服務。

公共語言運行時通過通用類型系統(Common Type System,CTS)和公共語言規范(Common Language Specification,CLS)定義標準數據類型和語言之間相互操作的規則。Just-In-Time(JIT)編輯器在運行應用程序之前把中間語言(Intermediate Language,IL)代碼轉換為可執行代碼。公共語言運行時還管理應用程序,在應用程序運行時為其分配內存和解除分配內存。

1.通用類型系統

通用類型系統定義如何在CLR中聲明、使用和管理類型,同時也是CLR支持跨語言集成的一個重要組成部分。通用類型系統支持.NET Framework提供的兩種常用類型,即值類型和引用類型,每一種類型又可以包含多種類型。

通用類型系統的實現功能如下。

(1)建立一個支持跨語言的集成、類型安全和高性能代碼執行的框架。

(2)提供一個支持完整實現多種編程語言的面向對象的模型。

(3)定義各語言必須遵守的規則,有助于確保用不同語言編寫的對象能夠交互作用。

2.公共語言規范

公共語言規范是一組結構和限制條件,作為庫開發者和編譯器編寫者的指南。公共語言規范定義所有基于.NET Framework的語言都必須支持的最小功能集,定義規則包括以下幾種。

(1)CLS定義命名變量的標準規則。例如,與CLS兼容的變量名稱都必須以字母開始,并且不能包含空格。除了變量名之間的大小寫區別之外,還要有其他區別。

(2)CLS定義原數據類型,如Int32、Int64、Double和Boolean等。

(3)CLS禁止無符號數值數據類型。有符號數值數據類型的一個數據位被保留來指示數值的正負,而無符號數據類型沒有保留這個數據位。

(4)CLS定義對支持基于0的數組的支持。

(5)CLS指定函數參數列表的規則,以及參數傳遞給函數的方式。例如,CLS禁止使用可選的參數。

(6)CLS定義事件名和參數傳遞給事件的規則。

(7)CLS禁止內存指針和函數指針,但是可以通過委托提供類型安全的指針。

3.中間語言

使用.NET開發的任何應用程序在執行之前都會編譯為目標計算機能夠理解的語言,即本機代碼。在.NET Framework下這個過程分為兩個階段:首先把應用程序編譯成一種稱為中間語言(Intermediate Language,IL)的獨立于硬件的格式;然后就是使用JIT編輯器的階段,它把中間語言編譯為專門用于目標操作系統和目標機器結構的本機代碼,只有這樣目標操作系統才能執行應用程序。

4.托管執行過程

公共語言運行時執行的代碼稱為托管代碼(Managed Code),其作用之一就是防止一個應用程序干擾另外一個應用程序的運行,這個過程稱為安全性。使用類型安全的托管代碼,一個應用程序就不會覆蓋另一個應用程序分配的內容。創建托管代碼的步驟如下。

(1)選擇一個合適的編譯器,它能夠生成適合CLR執行的代碼,并且使用.NET Framework提供的資源。

(2)把應用程序編譯為獨立于機器的中間語言。

(3)在執行時,把中間語言代碼轉換為本機可執行文件。

(4)在應用程序執行時,調用.NET Framework和CLR提供的資源。

5.自動內存管理

自動內存管理是公共語言運行時在托管執行過程中提供的服務之一。公共語言運行時的垃圾回收器為應用程序管理內存的分配和釋放。對于開發者而言,這意味著在開發托管應用程序時不必編寫執行內存管理任務的代碼。自動內存管理解決了常見的一些問題,例如忘記釋放對象并導致內存泄漏,或者嘗試訪問已釋放對象的內存。

1.1.3 .NET Framework類庫

.NET Framework類庫是一個由Microsoft .NET Framework SDK中包含的類、接口和值類型組成的庫,提供對系統功能的訪問。.NET Framework類庫是建立.NET Framework應用程序、組件和控件的基礎。.NET Framework類庫中還包含.NET Framework中定義的所有類型。

.NET Framework類庫由命名空間組成,每個命名空間都包含可以在程序中使用的類型,如類、結構、枚舉、委托和接口等。命名空間名稱是類型的完全限定名(namespace.typename)的一部分,所有Microsoft提供的命名空間都以System或Microsoft開頭,如表1-1所示列出了.NET Framework類庫中提供的一些常見命名空間。

表1-1 .NET Framework類庫中提供的一些常見命名空間

主站蜘蛛池模板: 墨竹工卡县| 洪泽县| 兴隆县| 乡宁县| 太保市| 同德县| 富平县| 威海市| 兴和县| 通道| 奇台县| 邮箱| 合作市| 尤溪县| 扎囊县| 山西省| 中牟县| 永寿县| 耿马| 湘乡市| 九龙城区| 宝兴县| 霞浦县| 阿合奇县| 黎平县| 吉水县| 林甸县| 富宁县| 满城县| 金华市| 来凤县| 晋宁县| 平昌县| 阳西县| 故城县| 瓦房店市| 泌阳县| 壶关县| 米易县| 巴林右旗| 临汾市|