1,.NET Framework類
.NET完全物件導向的,無論用它做什麼工作,都會用到對象,在.NET中也有子系統,但是不能直接存取它們,因為它們已經被Framework抽象化,.NET應用程式英語對象通訊,然後再與子系統通訊,這也就是Microsoft不依賴Windows的方式,不需要瞭解子系統。如果知道拉一個檔案的名稱,用相同的對象就可以開啟,不管是在Windows作業系統上還是Linux或者是其他的系統上都可以運行。
.NET Framework是一組類,成為基類,類庫是很大的,其中有可用的數千個對象。類與所使用的語言無關。所以無論編寫.NET程式還是C#程式,所用的對象都是一樣的,對象會有相同的屬性方法和時間,兩種語言在功能上沒有什麼不同,都依賴於Framework。
2,公用語言運行庫(CLR)
Common Language Runtime是.NET的核心,它可以提取.NET應用程式,將它編譯成原生處理器代碼,然後運行代碼。內容包括:載入並執行代碼,應用程式隔離,記憶體管理,安全性,異常處理,互操作。
載入並執行代碼:是從磁碟中載入MSIL代碼並運行它,將代碼從MSIL編譯成機器代碼
應用程式隔離:簡單理解就是比如你的思維導圖軟體崩潰啦,不影響你的vs軟體中的東西,一個應用程式的崩潰不會引起其他應用程式的崩潰。
安全性:代碼需要許可權才能執行,使用者和管理員可以設定證據代碼的來源。
互操作:一種是在Framework核心上進行,資料類型由所有託管語言共用,一般型別系統(STS);一種是與已有的COM介面通訊,COM互操作。
異常處理:能夠在異常發生時Catch住,並讓程式去處理這種異常。
3,基底類別庫(BCL)
broadcast lisener基底類別庫,被組織到namespace中,BCL和這些其他類庫集合在一起成為.NET Framework。
對很多程式有協助,提供開發各種解決方案所使用的物件,加速開發解決方案的速度;將各種不同的解決方案模型一致化。
總結:無論是bcl還是framework基類,總之都是前人為我們做好了的,封裝在一起的類,我們用的時候,就是執行個體化對象,讓相應的對象去為我們服務就是啦,問題是我們得知道現成的有哪些功能的類,能為我們做什麼。
附:
Microsoft intermediate language 微軟中繼語言,不依賴任何處理器,是在機器代碼上面的一層