本文對應的原文來至 c-sharpcorner 的一篇文章,文末有連結。如有錯誤,還請指正。
前言
你會為你的下一個應用程式選擇哪一種開發平臺 – .NET Framework 或者 .NET Core?在這篇文章中,讓我們比較一下這兩個開發平臺的特點,看能否得出一個結論。
.NET Framework 的優點
-
如果你是一位傳統的 .NET 開發者,希望快速構建和釋出應用,沒有時間學習.NET Core,那麼 .NET Framework 對你來說是一個不錯的選擇,.NET Core 可能會有一些學習曲線。
-
如果你目前主要是維護和更新現有 .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. |
相關參考
- 原文地址:
Difference Between .NET Framework and .NET Core
朋友會在“發現-看一看”看到你“在看”的內容