.Net Framework 和 .Net Core的區別


.Net Framework 和 .Net Core的區別

1. .net 平台簡介

.net 平台主要分為三個部分(.net 5 中據說會大一統,這我拋開.net 5了):.net Framework.net Corexamarin

  • .net Framework : 2002年發布,現在很多公司都在使用,可以開發:

    • window桌面程序:winform、UWP、wpf等

    • web應用程序:Asp.Net webform、Asp.Net MVC

  • .net Core : 2016年6月27號發布,是微軟最新退出開源的、跨平台的平台,可以用來創建運行在mac、Linux上的應用程序

  • 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 地獄

img

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

微軟官方文檔:https://docs.microsoft.com/zh-cn/dotnet/standard/choosing-core-framework-server?toc=%2Faspnet%2Fcore%2Ftoc.json&bc=%2Faspnet%2Fcore%2Fbreadcrumb%2Ftoc.json&view=aspnetcore-2.2

https://www.cnblogs.com/haogj/p/9220653.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM