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

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

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技術制定了一整套完整的規範,即是CLICommon 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,歐洲計算機制造商協會)

相關文章
相關標籤/搜索