1. .net 平台簡介
.net 平台主要分為三個部分(.net 5 中據說會大一統,這我拋開.net 5了):.net Framework
、 .net Core
和 xamarin
-
.net Framework
: 2002年發布,現在很多公司都在使用,可以開發:-
window桌面程序:winform、UWP、wpf等
-
web應用程序:Asp.Net webform、Asp.Net MVC
-
-
.net Core
-
xamarin
: 主要用來構建手機APP,主要使用的語言是C#語言(但是因為使用人數不多,所以可參考的案例較少)
1.1 在.net core 和 .net framework 之間如何選擇
.net core
與 .net framework
都可以寫web程序,兩者有很多共享的組件(ef 庫以及其他庫都可以在.net framework或.net core上運行),兩者之間是可以共享代碼的,但兩者是存在根本的差異,這需要根據實現的目標進行選擇
選擇.net core
-
有跨平台需求
-
正在面向微服務
-
正在使用Docker容器
-
需要高性能和可擴展性的系統
選擇.net framework
-
當前項目使用的是.net framework(建議擴展而不是遷移)
-
開發的程序中使用到在.net Core中暫不支持的第三方.net 庫或者NuGet包
-
使用到.net Core中暫不支持的技術(例如在.net core 2.x的時候是不支持winfrom的,.net core 3.x已經支持了)
-
WCF服務的實現目前在.net core 無法使用
-
Asp.Net Web窗體應用程序目前也是只可以在.net framework中使用
-
1.2 在.net core和.net framework中共享庫
因為 .net core 是一個新興的系統生態系統,所以有些之前在 .net framework 中使用的庫在 .net core 中是無法使用的,為了盡快彌補這一空缺,Microsoft 引入了.net standard 以提供在微軟生態下的公共標准,意思就是你可以創建直接用於 .net core 或 .net framework 的庫(甚至包括 xamarin )。只要確保 .net standard 庫的 NuGet 包添加到.net 應用中,就可以使用了。
.net standard 可以看作是可移植類庫 PCL 的后繼者,簡化了針對不同平台的業務。在 PCL 基於平台能力的配置中,.net Standard 提供了精心選擇的 API 集。
但是 .net Standard 不同的版本適配 .net core 或 .net framework 版本也是不同的,這感覺就像走了DLL地獄,來了 .net Standard 地獄
asp.net core 2.x 由 .net Standard 庫組成,所以同時支持 .net core 運行和 .net framework 運行
文中使用到了其他博客提到的一些內容:
https://www.jianshu.com/p/78c7590674d4
https://www.cnblogs.com/itzhangxp/p/8322364.html
https://blog.csdn.net/weixin_30312557/article/details/95216051