最近學習了一些高級語言虛擬機的知識,在此對.NET平臺和java平臺作一個簡單的比較。對java平臺已經很熟了,因此此處只介紹.NET平臺下的一些概念。html
1、CLIjava
通用語言基礎架構(Common Language Infrastructure,簡稱CLI)是一個開放的技術規範。架構
通用語言基礎架構定義了構成.NET Framework基礎結構的可執行碼以及代碼的運行時環境的規範,它定義了一個語言無關的跨體系結構的運行環境,這使得開發者能夠用規範內定義的各類高級語言來開發軟件,而且無需修正便可將軟件運行在不一樣的計算機體系結構上。jvm
通用語言運行庫(CLR)則是微軟對此標準(CLI)的實現。工具
2、對CLI的實現學習
Microsoft .NET Framework - 微軟提供的面向Windows系統的實現,提供了各類各樣的程序庫,工具等。
Microsoft Silverlight - 微軟提供的一個跨平臺實現,能同時在Windows和Macintosh操做系統上運行。
.NET Compact Framework - 微軟提供的面向便攜式系統的商用實現。
Microsoft XNA - 微軟提供給遊戲開發人員使用的一個CLI,面向的是XBOX和Windows Vista。
Rotor - Microsoft Shared Source CLI(Rotor)微軟開發出來的一個在Window,Mac OS X和FreeBSD上運行的一個CLI實現,但微軟並無受權用Rotor開發商業程序,只是一個學習工具。
Mono - 由Novell贊助開發的開源實現,它可以應用於Linux,Mac OS等多種操做系統。
dotGNU - dotGNU項目也是一個開源而且自由的實現。操作系統
3、CLR3d
通用語言運行平臺(Common Language Runtime,簡稱CLR)是微軟爲他們的.NET的虛擬機所選用的名稱。它是微軟對通用語言架構(CLI)的實現版本,它定義了一個代碼運行的環境。CLR運行一種稱爲通用中間語言的字節碼,這個是微軟的通用中間語言實現版本。code
4、.NET Framework vs. CLI vs. CLRhtm
CLI是標準。
.NET Framework是對CLI標準的實現。
CLR只是.NET Framework裏面的虛擬機的名字。相似jvm。
附上.NET平臺與JAVA平臺的比較:(圖片來源)