“菜”鳥理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
既然要學.NET,就要先認識認識她,我不喜歡大段大段文字的東西,自己通過理解,畫個圖,來看看.NET的沈魚落雁,閉月羞花之容。
最下層藍色部分是.NET Framework的基礎,也是所有應用軟件的基礎。.NET Framework不是憑空出來的,實際上API,COM+,和一些相關驅動依然是它的基石。.NET Framework只不過是對這些前輩們進行了系統的封裝和擴充,在這個過程中,吸取了Java框架的很多經驗。關於Win32 API與.NET Framework API的對應關系,可以參考Microsoft Win32 to Microsoft .NET Framework API Map
菜譜:除了藍色部分以外,其他均為.NET Framework的主體。它是基於通用語言基礎架構(Common Language Infrastructure,CLI)。它就像一本江湖上失傳已久的菜譜。
廚師:通用語言運行平臺(Common Language Runtime,CLR),是對CLI這個架構在Windows平臺的實現。簡單地理解就是CLR這個廚師,讓CLI這本菜譜發揮了其真正的作用。
下面我們來嘗嘗這些佳肴:
食物:類庫(Framework Class Library,FCL),所有在.NET能夠使用的類庫。分為兩部分,一部分為原料,另一部分為成品菜。
- 原料
- 成品菜:FCL中的其他類。這些類庫基本上都是引用BCL,在這些類庫的基礎上做的擴充。如:ADO.NET,ASP.NET,Windows.Forms等等,它們是我們編寫程序更加方便,專一。
餐具:公共語言規範Common Language Specification (CLS) 和公共類型系統Common Type System (CTS) ,是CLI的一部分內容,它們的目的是保證各種語言與.NET Framework的兼容性的。就好像有的食客習慣用筷子,有的則喜歡用叉子,像八戒就用九齒釘耙。有了CLS
食客:各種語言,C#,VB,等等。
至於食客們是怎麽吃這些東西的,可以參考深入探索.NET框架內部了解CLR如何創建運行時對象,這篇文章詳細的解釋了,.NET是如何運行的,涉及一些底層的東西,大家了解就行,不必深究。
好了,這是我自己對.NET Framework的一點理解,可能比喻有不恰當的地方,甚至有概念性的錯誤,希望大家指出來。我畢竟是初學者,大家的批評會幫助我成長。謝謝!
“菜”鳥理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)