.NET Framework 框架的一些簡單介紹


20世紀90年代以來出現的3種典型的組件技術:

1)OMC(對象組件模型)的CORBA
2)Microsoft的COM/DCOM
3)Sun公司的JavaBeans

 

在2002年,微軟發布了.NET框架的第一個版本,聲稱其解決了舊問題並實現了下一代系統的目的。.NET框架是一種比MFC和COM編程技術更一致並面向對象的環境。它的特點包括:

1)多平台。【面向異構網絡、硬件平台和操作系統,可以在多種多樣的系統上運行,從服務器、桌面機到PDA和移動電話。】
2)行業標准。【實現軟件系統之間的智能交互和協同工作,使用行業標准的通信協議,比如:XML、HTTP、SOAP和WSDL。】
3)安全性。【提供一個標准化的、安全的、一致的模型和環境,提供更加安全的執行環境,即使有來源可疑的代碼存在。】



 

Microsoft為.NET技術制定了一整套完整的規范,便是CLI(Common Language Infrastructure,公共語言基礎結構,公共語言架構)。

CLI的組成:
1)CTSCommon Type System,公共類型系統)。【定義了一組豐富的內置類型,以及每種類新固有的、獨有的特性;最重要的特征之一是所有類型都繼承自公共的基類Object類】
2)CLSCommon Language Specification,公共語言規范)。【說明了.NET兼容編程語言的規則、屬性和行為,其主題包括數據類型、類結構和參數傳遞】
3)CILCommon Intermediate Language,公共中間語言)。
4)CLRCommon Language Runtime,公共語言運行庫)。
5)BCLBase Class Library,基類庫)。【FCL的一個子集】
6)元數據定義、語義。
7)其他相關標准化文檔、協議、規范。


 Microsoft針對CLI在Windows上的完整實現便是 .NET Framework(.NET 框架)。

.NET Framework的主要組成:
1)CLR(Common Language Runtime,公共語言運行時,公共語言運行庫)。【核心組件。提供服務:自動垃圾收集;安全和認證;通過訪問BCL得到廣泛的編程功能,如web服務和數據服務之類的功能】
2)FCL(Framework Class Library,Framework類庫,框架類庫)。【BCL的一個超集】

.NET Framework的優點:
1)面向對象的開發環境。【CLR、BLR和C#被設計得完全面向對象;為本地程序和分布式系統提供一致的、面向對象的編程模型;】
2)自動垃圾收集(Garbage Collection,GC)。【GC自動從內存中刪除程序不在訪問的對象】
4)互操作性。【不同.NET語言編寫的軟件模塊無縫交互;平台調用(platform invoke,P/Incoke)的特性;允許與COM進行交互】
4)不需要COM(Component Object Model,組件對象模型)。
5)簡化的部署。【.NET程序不需要使用注冊表注冊;並行執行特性】
6)類型安全性。【CLR檢查並確保參數及其它數據對的類型安全】
7)基類庫(Base Class Library,基類庫)。有時稱為框架類庫(Framework Class Library,FCL)。【包括通用基礎類、集合類、線程和同步類、XML類】

 

CLR在運行期管理程序的執行,包括以下內容:
1)內存管理。
2)代碼安全驗證。
3)代碼執行、線程管理和異常處理。
4)垃圾收集。

CLR提供的服務:
1)內存管理。
2)異常處理。
3)自動垃圾收集。
4)管理代碼的執行
5)JIT實時編譯器(Just-in-Time)。
6)類加載器。【通過訪問BCL得到廣泛的編程功能,如web服務和數據服務之類的功能】
7)反射服務。
8)安全服務。
9)提供系統服務。

FCL的組成 或 服務:
1)基礎類型。【整數、實數、字符串等類型定義】
2)數據結構封裝。【集合、鏈表、隊列、堆棧等數據類型】
3)Windows和Web等界面要素。【主要是按鈕、標簽、文本框、菜單等可視化控件】
4)Web Service要素。【用於Web服務的定義、描述、配置、解析等】
5)XML文檔處理。【如XML文件、屬性、元素、節點、讀寫器、解析器等類型】
6)文件的輸入輸出。【如驅動器、目錄、文件、流、讀寫器等類型】
7)數據訪問。【如數據連接、數據命令、數據集、數據表、記錄等類型】
8)網絡通信。【如主機、管道、套接字、消息等類型】
9)異常處理。【用於處理系統和應用程序所引發的各種異常】
9)類型反射。【用於獲取程序集、對象、方法屬性、字段等目標的元數據信息類型】
10)用於應用程序管理、操作系統功能封裝、安全性控制等其他方面的類型。

 

.NET Framework 環境結構圖:

 

 源代碼文件編譯成CIL的編譯過程:

 程序運行時CIL編譯成本機代碼:

 

 .NET 框架編譯和執行:

 

  

注:相關名稱一覽:

CLI(Common Language Infrastructure,公共語言基礎結構,公共語言架構)
CTS(Common Type System,公共類型系統)
CLS(Common Language Specification,公共語言規范)
CIL(Common Intermediate Language,公共中間語言)

.NET Framework(.NET 框架)
CLR(Common Language Runtime,公共語言運行庫)
FCL(Framework Class Library,Framework類庫,框架類庫)

BCL(Base Class Library,基類庫)
實時JIT(Just-in-Time)編譯器
GC(Garbage Collection,垃圾收集)

API(Application Programming Interface,應用程序編程接口)注:還特指API的說明文檔,也稱為幫助文檔
MFC(Microsoft foundation classes,微軟基礎類庫)
COM(Component Object Model,組件對象模型)

managed code 托管代碼
unmanaged code 非托管代碼

平台調用(platform invoke,P/Incoke)
Ecma(Europen Computer Manufacturers Association,歐洲計算機制造商協會)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM