.NET Framework VS .NET Core

本文對應的原文來至 c-sharpcorner 的一篇文章,文末有連接。若有錯誤,還請指正。瀏覽器

前言

你會爲你的下一個應用程序選擇哪種開發平臺 - .NET Framework 或者 .NET Core?在這篇文章中,讓咱們比較一下這兩個開發平臺的特色,看可否得出一個結論。架構

.NET Framework 的優勢

  • 若是你是一位傳統的 .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 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 生態有三個主要的高級別組件 - .NET Framework, .NET Core, 和 Xamarin。

  • Xamarin

毋庸置疑,當你想經過 C# 來構建移動應用(IOS,Android 和 Windows Mobile),Xamarin 是你惟一的選擇。

  • .NET Framework

支持 Windows 和 Web 應用。現現在,你可使用 Windows Forms, WPF, 和 UWP 來構建基於 .NET Framework 的 Windows 應用程序,ASP.NET MVC 用於構建基於 .NET Framework 的 Web 應用。

  • .NET Core

是最新的開源跨平臺框架,用於構建包括 Windows, Mac 和 Linux 操做系統在內的應用程序。.NET Core 僅支持 UWP和 ASP.NET Core。 UWP用於構建 Windows10 目標Windows和移動應用程序。 ASP.NET Core用於構建基於瀏覽器的 Web 應用程序。

我該如何選擇

若是你今天必需要在 .NET Framework 和 .NET Core 之間作出選擇,這有一個原則,請記住,在將來一年左右的時間裏,您可能根本不想選擇.NET Framework。

到目前爲止:

若是你:

  • 沒有時間學習新技術;
  • 須要一個穩定溫馨的工做環境;
  • 有更近的發佈日程表;
  • 已經在爲現有應用程序擴展功能;
  • 已經擁有一支具備 .NET 專業知識和爲構建生產軟件準備就緒的現有團隊;
  • 不想處理持續的升級和更改;
  • 使用了 Windows Forms 或 WPF 構建了 Windows 客戶端程序;

那麼,.NET Framework 會是一個好的選擇。

若是你:

  • 但願你的應用程序運行在 Windows, Linux, 和 Mac 操做系統上;
  • 不懼怕學習新東西;
  • 不懼怕在 DotNetCore 還不成熟的狀況下遇到和解決問題;
  • 是一名剛開始學習 .NET 的學生;
  • 喜歡開源;

那麼,.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.

相關參考

相關文章
相關標籤/搜索