1. 程式人生 > >Net Framework,Net Core 和 Net Standard 區別

Net Framework,Net Core 和 Net Standard 區別

  前幾天我在一個群裡看到有關這方面的討論,最後感覺討論的不是很清晰,有幸的是我們的專案去年就開始遷移NetCore的調研了,我個人多多少少也是有過這方面的研究。下面我將說一下我自己對著三個的認識如果有不足的地方,請大家指出。

大家的討論是這個問題引起的如下:

NetCore

 

 

 

 Net Framework

 

 

 

Net Standard

 

 

 

 最終大家想了解的是這些的區別是什麼。

 

  Net Framework 是什麼

 

    1.Net Framework 是Net的一種實現,在此類庫上我們可以使用C#,VB,F#進行程式編寫,主要用於構建Windows 下的應用程式

    2.有兩部分組成部分:

                                    i.      公共語言執行時(CLR)處理應用程式

                                   ii.      基礎類庫(BCL)這是可重用的程式碼庫,使用其編寫進行應用程式編寫

    3.在執行的過程中.Net編寫的程式碼將會編譯成一種稱為中間語音(IL)儲存形式以DLL和EXE字尾名結尾的檔案為主,當程式執行時CLR會編譯轉換為機器程式碼。

    4. Net Framework 本身不是跨平臺的也就是話說僅限於執行在Windows 平臺,想要跨平臺需要藉助第三方。

 

  Net Core 是什麼

 

    1.Net Core 的出現就是為了適應軟體開發的趨勢,因為各種不同的裝置還有云計算的出現,其他的作業系統使用量也有所增加,如果Net 不發生改變也就意味著市場將會越來越小。Net Core的出現用於滿足當前以及未來軟體開發的需求

    2.NetCore是一個全新的框架,是.Net的跨平臺的實現,它和Net Framework有很多共同的特性,這也就意味著Net Framework從業者轉到Net Core 將會變的很簡單。

    3.Net Core的所有方面都是開源的,無論是類庫,執行時,編譯器。NET Core3.0之後支援了C#,VB,F#。

  Net Standard 是什麼,

    1.    Net Standard 是一個規範,它定義了Net Framewoek和Net Core必須實現的Api,它的出現為各種平臺上開發的.Net人員解決了程式碼共享問題,但是僅用於開發類庫,意思就是說如果你的類庫是Net Standard規範的,那麼此類庫既可以是Net Framewoek也可以是Net Core類庫。

    2.    微軟提供的的圖表詳細說明了各個不同版本的相容情況

                                                               i.      如果我們的類庫是NET Standard 2.0版本的如果想在Net Framework和Core兩種實現中使用,則根據此圖表,我們必須為.NET Core專案選擇2.0版本和NET Framework 4.6.1的版本

                  

 

 

 

  總結:

    從上面我們可以看出,.Net 是一種標準,而Net Framework 和NetCore 是.Net 的一種實現。而Net Standard 是一個規範。

  題外話:

    作為微軟技術站的從業人員,微軟這幾年的動作也告訴我們我們需要多方面的學習才能實現更高的價