前幾天我在一個群里看到有關(guān)這方面的討論,最后感覺討論的不是很清晰,有幸的是我們的項目去年就開始遷移NetCore的調(diào)研了,我個人多多少少也是有過這方面的研究。下面我將說一下我自己對著三個的認識如果有不足的地方,請大家指出。
大家的討論是這個問題引起的如下:
NetCore
?
?
?
?Net Framework
?
?
?
Net Standard
?
?
?
?最終大家想了解的是這些的區(qū)別是什么。
?
Net Framework 是什么
?
1.Net Framework 是Net的一種實現(xiàn),在此類庫上我們可以使用C#,VB,F(xiàn)#進行程序編寫,主要用于構(gòu)建Windows 下的應(yīng)用程序
2.有兩部分組成部分:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i.????? 公共語言運行時(CLR)處理應(yīng)用程序
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ii.????? 基礎(chǔ)類庫(BCL)這是可重用的代碼庫,使用其編寫進行應(yīng)用程序編寫
3.在執(zhí)行的過程中.Net編寫的代碼將會編譯成一種稱為中間語音(IL)存儲形式以DLL和EXE后綴名結(jié)尾的文件為主,當程序運行時CLR會編譯轉(zhuǎn)換為機器代碼。
4. Net Framework 本身不是跨平臺的也就是話說僅限于運行在Windows 平臺,想要跨平臺需要借助第三方。
?
Net Core 是什么
?
1.Net Core 的出現(xiàn)就是為了適應(yīng)軟件開發(fā)的趨勢,因為各種不同的設(shè)備還有云計算的出現(xiàn),其他的操作系統(tǒng)使用量也有所增加,如果Net
不發(fā)生改變也就意味著市場將會越來越小。Net Core的出現(xiàn)用于滿足當前以及未來軟件開發(fā)的需求
2.NetCore是一個全新的框架,是.Net的跨平臺的實現(xiàn),它和Net Framework有很多共同的特性,這也就意味著Net
Framework從業(yè)者轉(zhuǎn)到Net Core 將會變的很簡單。
3.Net Core的所有方面都是開源的,無論是類庫,運行時,編譯器。NET Core3.0之后支持了C#,VB,F(xiàn)#。
Net Standard?是什么,
1.??? Net Standard 是一個規(guī)范,它定義了Net Framewoek和Net
Core必須實現(xiàn)的Api,它的出現(xiàn)為各種平臺上開發(fā)的.Net人員解決了代碼共享問題,但是僅用于開發(fā)類庫,意思就是說如果你的類庫是Net
Standard規(guī)范的,那么此類庫既可以是Net Framewoek也可以是Net Core類庫。
2.??? 微軟提供的的圖表詳細說明了各個不同版本的兼容情況
?????????????????????????????????????????????????????????????? i.?????
如果我們的類庫是NET Standard 2.0版本的如果想在Net Framework和Core兩種實現(xiàn)中使用,則根據(jù)此圖表,我們必須為.NET
Core項目選擇2.0版本和NET Framework 4.6.1的版本
?
?
?
總結(jié):
從上面我們可以看出,.Net 是一種標準,而Net Framework 和NetCore 是.Net 的一種實現(xiàn)。而Net Standard
是一個規(guī)范。
題外話:
作為微軟技術(shù)站的從業(yè)人員,微軟這幾年的動作也告訴我們我們需要多方面的學(xué)習(xí)才能實現(xiàn)更高的價值。
熱門工具 換一換