“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)
既然要學(xué).NET,就要先認(rèn)識(shí)認(rèn)識(shí)她,我不喜歡大段大段文字的東西,自己通過理解,畫個(gè)圖,來看看.NET的沉魚落雁,閉月羞花之容。
?
最下層藍(lán)色部分是.NET Framework的基礎(chǔ),也是所有應(yīng)用軟件的基礎(chǔ)。.NET Framework不是憑空出來的,實(shí)際上API,COM+,和一些相關(guān)驅(qū)動(dòng)依然是它的基石。.NET Framework只不過是對(duì)這些前輩們進(jìn)行了系統(tǒng)的封裝和擴(kuò)充,在這個(gè)過程中,吸取了Java框架的很多經(jīng)驗(yàn)。關(guān)于Win32 API與.NET Framework API的對(duì)應(yīng)關(guān)系,可以參考Microsoft Win32 to Microsoft .NET Framework API Map
菜譜:除了藍(lán)色部分以外,其他均為.NET Framework的主體。它是基于通用語言基礎(chǔ)架構(gòu)(Common Language Infrastructure,CLI)。它就像一本江湖上失傳已久的菜譜。
廚師:通用語言運(yùn)行平臺(tái)(Common Language Runtime,CLR),是對(duì)CLI這個(gè)架構(gòu)在Windows平臺(tái)的實(shí)現(xiàn)。簡單地理解就是CLR這個(gè)廚師,讓CLI這本菜譜發(fā)揮了其真正的作用。
下面我們來嘗嘗這些佳肴:
食物:類庫(Framework Class Library,FCL),所有在.NET能夠使用的類庫。分為兩部分,一部分為原料,另一部分為成品菜。
- 原料:基類庫Base Class Library(BCL)?,顧名思義,其中包含一些基礎(chǔ)的類,如:IO,String,Net等等。它們是做菜所必需的原料,當(dāng)然也可以直接吃。
- 成品菜:FCL中的其他類。這些類庫基本上都是引用BCL,在這些類庫的基礎(chǔ)上做的擴(kuò)充。如:ADO.NET,ASP.NET,Windows.Forms等等,它們是我們編寫程序更加方便,專一。
餐具:公共語言規(guī)范Common Language Specification (CLS)?和公共類型系統(tǒng)Common Type System (CTS)?,是CLI的一部分內(nèi)容,它們的目的是保證各種語言與.NET Framework的兼容性的。就好像有的食客習(xí)慣用筷子,有的則喜歡用叉子,像八戒就用九齒釘耙。有了CLS和CTS,各路食客就能使用自己喜歡用的餐具吃上可口的食物了。例如:把C#中的int和VB中的Integer統(tǒng)一映射到System.Int32。
食客:各種語言,C#,VB,等等。
至于食客們是怎么吃這些東西的,可以參考深入探索.NET框架內(nèi)部了解CLR如何創(chuàng)建運(yùn)行時(shí)對(duì)象,這篇文章詳細(xì)的解釋了,.NET是如何運(yùn)行的,涉及一些底層的東西,大家了解就行,不必深究。
好了,這是我自己對(duì).NET Framework的一點(diǎn)理解,可能比喻有不恰當(dāng)?shù)牡胤?#xff0c;甚至有概念性的錯(cuò)誤,希望大家指出來。我畢竟是初學(xué)者,大家的批評(píng)會(huì)幫助我成長。謝謝!
總結(jié)
以上是生活随笔為你收集整理的“菜”鸟理解.NET Framework(CLI,CLS,CTS,CLR,FCL,BCL)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最近银行理财出现不少亏损的产品,是怎么回
- 下一篇: [你必须知道的.NET] 开篇有益