本文對應的原文來至 c-sharpcorner 的一篇文章,文末有連接。若有錯誤,還請指正。瀏覽器
你會爲你的下一個應用程序選擇哪種開發平臺 - .NET Framework 或者 .NET Core?在這篇文章中,讓咱們比較一下這兩個開發平臺的特色,看可否得出一個結論。架構
若是你是一位傳統的 .NET 開發者,但願快速構建和發佈應用,沒有時間學習.NET Core,那麼 .NET Framework 對你來講是一個不錯的選擇,.NET Core 可能會有一些學習曲線。app
若是你目前主要是維護和更新現有 .NET 應用程序,那麼 .NET Framework 是你一個不錯的選擇。將現有 .NET 程序移植到 .NET Core 上可能仍是須要一些工做。框架
找工做? 您如今可能在.NET Core 中找不到太多工做。編輯器
這就是 .NET Framework 的現狀。當前版本的.NET Framework 4.8 應該是.NET Framework的最新版本。 未來不會再計劃新版本的.NET Framework。模塊化
若是你嘗試經過 .NET Core 和 .NET Framework 來構建新的應用程序,那麼 .NET Core 是一條應該要走的路。微服務
微軟已經宣佈了 .NET Core v 3.0 ,這是一個有很是多改進的 .NET Core 版本,若是你想學習和使用裏面的新特性,那麼.NET Core 是值得嘗試的。性能
.NET Core 3.0 目前支持 WPF 和 Windows Forms,.NET Core 3.0 一樣也支持在 UWP, WPF 和 Windows Forms 之間進行混合開發。這將使得開發者可以更靈活地將 UWP 中一些更現代化的接口引入到 WPF 和 Windows Forms 中。學習
若是你正在構建新的應用程序,而且你的公司支持使用 .NET Core,那麼 .NET Core 是一個不錯的選擇,總之 .NET Core 會愈來愈好的。測試
NET Core 更適合跨平臺的需求, .NET Core 的應用程序支持在 Windows, Linux, and macOS 運行。微軟廣受好評的開源代碼編輯器 Visual Studio Code 支持 Linux 和 macOS,同時它也支持更加現代化的編輯需求,如 智能感知[IntelliSense] 和 調試[debugging],大多數其它第三方的編輯器,如 Sublime, Emacs, 和 VI 一樣支持 .NET Core。
微服務架構一樣在 .NET Core 中適用,它能夠和不一樣平臺的服務共同工做。包括經過 .NET Framework, Java, Ruby 等語言開發的。
在容器化大行其道的今天,.NET Core 的模塊化、輕量級以及它的靈活性使得它能很容易地部署到容器中,容器能夠部署到任何平臺,如 雲上、Linux 和 Windows 上。 .NET Core 適用於 Docker 和 Azure Kubernetes 服務。
對於 .NET Core 開發而言,性能和可縮放性是兩個主要的關注點,根據一些基準測試,.NET Core和ASP.NET Core是性能最佳的Web框架。
.NET Core 的多個版本能夠共存, 您能夠在同一臺計算機上同時部署運行多個版本的應用程序。
時至今日,讓咱們再回顧一下 .NET 生態架構圖。
正如你看到的那樣,.NET 生態有三個主要的高級別組件 - .NET Framework, .NET Core, 和 Xamarin。
毋庸置疑,當你想經過 C# 來構建移動應用(IOS,Android 和 Windows Mobile),Xamarin 是你惟一的選擇。
支持 Windows 和 Web 應用。現現在,你可使用 Windows Forms, WPF, 和 UWP 來構建基於 .NET Framework 的 Windows 應用程序,ASP.NET MVC 用於構建基於 .NET Framework 的 Web 應用。
是最新的開源跨平臺框架,用於構建包括 Windows, Mac 和 Linux 操做系統在內的應用程序。.NET Core 僅支持 UWP和 ASP.NET Core。 UWP用於構建 Windows10 目標Windows和移動應用程序。 ASP.NET Core用於構建基於瀏覽器的 Web 應用程序。
若是你今天必需要在 .NET Framework 和 .NET Core 之間作出選擇,這有一個原則,請記住,在將來一年左右的時間裏,您可能根本不想選擇.NET Framework。
到目前爲止:
若是你:
那麼,.NET Framework 會是一個好的選擇。
若是你:
那麼,.NET Core 會是更好的選擇。
以下有一張表,但願幫到你:
High-performance and scalable system without UI | .NET Core is much faster. |
Docker containers support | Both, but .NET Core is born to live in a container. |
Heavily reply on command line | .NET Core has better support. |
Cross-platform needs | .NET Core |
Using Microservices | Both, but .NET Core is designed to keep today's needs in mind. |
User interface centric Web applications | .NET Framework is better now until .NET Core catches up. |
Windows client applications using Windows Forms and WPF | .NET Framework |
Already have a pre-configured environment and systems | .NET Framework is better. |
Stable version for immediate need to build and deploy | .NET Framework has a been around since 2001. .NET Core is just a baby. |
Have existing experienced .NET team | .NET Core has a learning curve. |
Time is not a problem. Experiments are acceptable. No rush to deployment. | .NET Core is the future of .NET. |