到底什麼是.NET?

​.NET 概念比較龐大,本文只討論基礎知識,只用簡單語言描述。程序員

咱們是NET程序員,可是咱們有沒有思考過到底什麼是.NET ?web

官方定義 .NET是微軟推出來的一個致力於敏捷開發的軟件框架。安全

 大概2000年年左右,微軟推出了.NET 標準規範,既然有了標準就等於開發時候定義接口同樣,須要東西去實現它。.NET Framework  就是 .NET 的具體實現。app

能夠這麼認爲 .NET一種優秀的設計規範和平臺標準。框架

 

下面咱們來講說什麼是 .NET Framework?工具

官方定義 .NET Framework  是 Windows 的託管執行環境,可爲其運行的應用提供各類服務。學習

.NET Framework 有兩個主要組件:  線程

1. .NET 公共語言運行時 (Common Language Runtime,CLR)設計

CLR核心功能:內存管理,程序集加載,安全性,異常處理,和線程同步,CLR像一個管家同樣,管理着程序代碼的執行,爲程序提供一個運行環境。被CLR託管的代碼就叫託管代碼。orm

       要想了解CLR機制,就要知道咱們寫的C#代碼通過VS 編譯以後變成了什麼?       

左邊的圖是將咱們編寫的C#源代碼編譯成託管模塊,右邊圖是託管模塊的組成部分,這裏咱們只關注IL代碼,其餘的不用關注。C#代碼通過編譯器生成的並非最終的CUP指令,而是一箇中間語言IL代碼,也就是託管代碼,CLR操做的就是IL代碼,最終由CLR將IL編譯成計算機能夠認識的Cpu指令。咱們應該知道程序運行時候須要佔用計算機的內存,C++時代的的程序員是須要本身手動操做管理內存的,須要本身分配和釋放內存。可是咱們.NET程序員是不須要進行這個操做的。這是由於CLR幫咱們自動作分配內存和釋放內存的這個操做了。這個操做對於NET開發者來講是透明的,這就是文章的前面所說CLR的主要功能內存管理。由CLR管理釋放的內存空間叫作託管堆。在託管堆上的代碼稱之爲安全代碼也叫託管代碼,反之不在託管堆上的代碼就叫非託管代碼,非託管代碼有可能形成內存泄漏。

CLR是很複雜的一個東西。本文不作過多的討論,只是對其概念進行簡單的講解。

2.  Framework 類庫 

.NET Framework類庫應該比較好理解,相似咱們本身封裝工具類同樣的概念。Framework 類庫 (Framework Class Library) 簡稱 FCL,FCL 裏面定義了數千個類型供咱們用。利用這些類型咱們能夠開發各類類型的應用程序 webService,MVC,Windows Forms ,WPF,Windows 服務等。因此要想學好NET的,雖然不須要你都掌握整個NET類庫。這也不現實,可是也要儘量掌握經常使用的類型。

總結

.NET Framework是.NET平臺標準的主要的實現,實現的不單單有.NET Framework還有.NET Core和mono。

.NET Framework包含CLR和 FCL。

CLR爲NET程序提供一個運行環境並對其進行託管。

FCL Framework類庫爲NET程序員提供了大量豐富的基礎類型供其使用。封裝了一些基礎的操做,爲了NET程序員的開發提供了便利。

 ps:文章乃我的學習筆記。大神勿噴。

相關文章
相關標籤/搜索