W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
有兩種支持的實現(xiàn)可用于通過 NET Framework 和 .NET Core 生成服務器端應用程序。 這兩者共享許多相同的組件,可在它們之間共享代碼。 但兩者之間存在根本的差異,可根據(jù)需要實現(xiàn)的目標進行選擇。 本文介紹了在何種情況下進行選擇。
在以下情況,對服務器應用程序使用 .NET Core:
在以下情況,對服務器應用程序使用 .NET Framework :
以下各部分對前面提到的選擇 .NET Core 的原因進行了進一步說明。
如果應用程序(Web/服務)需要在多個平臺(Windows、Linux 和 macOS)上運行,請使用 .NET Core。
.NET Core 作為開發(fā)工作站支持前面提到的操作系統(tǒng)。 Visual Studio 提供了適用于 Windows 和 macOS 的集成開發(fā)環(huán)境 (IDE)。 還可使用運行于 macOS、Linux 和 Windows 上的 Visual Studio Code。 Visual Studio Code 支持 .NET Core,包括 IntelliSense 和調(diào)試。 大多數(shù)第三方編輯器(如 Sublime、Emacs 和 VI)都可搭配 .NET Core 使用。 這些第三方編輯器可使用 Omnisharp 獲取編輯器 IntelliSense。 也可不使用任何代碼編輯器,直接使用適用于所有支持平臺的 .NET Core CLI 工具。
微服務體系結構允許跨服務邊界組合使用技術。 通過這種技術組合,可逐步接受 .NET Core 作為能與其他微服務或服務搭配使用的新微服務。 例如,可組合使用微服務或使用 .NET Framework、Java、Ruby 或其他單片技術開發(fā)的服務。
可用的基礎結構平臺有很多。 Azure Service Fabric,設計用于大型和復雜微服務系統(tǒng) 。 Azure App Service,很適合用于無狀態(tài)微服務。 基于 Docker 的微服務備選方案適合任何一種微服務方法,這部分內(nèi)容將在容器部分進行說明。 所有這些平臺都支持 .NET Core,是托管微服務的理想選擇。
有關微服務體系結構的詳細信息,請參閱 .NET 微服務 - 適用于容器化 .NET 應用程序的體系結構。
容器通常與微服務體系結構結合使用。 還可使用容器將遵循任何體系結構模式的 Web 應用或服務容器化。 可在 Windows 容器上使用 .NET Framework,但 .NET Core 的模塊化和輕型性質(zhì)使之成為容器的更佳選擇。 在創(chuàng)建和部署容器時,使用 .NET Core 時容器的映像大小要遠小于使用 .NET Framework 時的大小。 例如,因為它是跨平臺的,所以可將服務器應用部署到 Linux Docker 容器。
Docker 容器可托管在自己的 Linux 或 Windows 基礎結構中,或托管在 Azure Kubernetes 服務等云服務中。 Azure Kubernetes 服務可管理、協(xié)調(diào)和縮放云中基于容器的應用程序。
如果系統(tǒng)需要最佳的性能和可伸縮性,.NET Core 和 ASP.NET Core 是最佳的選擇。 Windows Server 和 Linux 的高性能服務器運行時使 .NET 成為 TechEmpower 基準上執(zhí)行最佳的 Web 框架。
性能和可伸縮性對微服務體系結構尤為重要,體系結構中可能正在運行數(shù)百個微服務。 借助 ASP.NET Core,系統(tǒng)運行的服務器/虛擬機 (VM) 數(shù)要低得多。 減少服務器/VM 后可節(jié)省基礎結構和托管成本。
若要安裝含不同 .NET 版本上的依賴項的應用程序,建議使用 NET Core。 通過 .NET Core 可在同一計算機上并行安裝不同版本的 .NET Core 運行時。 并行安裝允許在同一服務器上使用多個服務,每個服務位于其相應的 .NET Core 版本上。 這還可在應用程序升級和 IT 運營時降低風險、節(jié)省成本。
.NET Core 對新應用程序和應用程序模式特別有用。 但是在很多現(xiàn)有方案中依然會自然而然地選擇 .NET Framework,并且對于所有服務器應用程序,.NET Framework 不會被 .NET Core 代替。
在大多數(shù)情況下,不需要將現(xiàn)有應用程序遷移到 .NET Core。 相反,若要擴展現(xiàn)有的應用程序(例如,在 ASP.NET Core 中寫入新的 Web 服務),建議使用 .NET Core。
庫很快將使用 .NET Standard。 通過 .NET Standard 可跨各種 .NET 實現(xiàn)(包括 .NET Core)共享代碼。 使用 .NET Standard 2.0 則更簡單:
因此,只有在庫或 NuGet 包使用的技術在 .NET Standard/.NET Core 中不可用的情況下,才需要使用 .NET Framework。
某些 .NET Framework 技術在 .NET Core 中不可用。 其中一些技術可能在更高版本的 .NET Core 中可用。 但其他技術不會應用于 .NET Core 面向的新應用程序模式,因此可能永遠不可用。 以下列表顯示無法在 .NET Core 中找到的最常見技術:
除了正式的路線圖,還有其他框架將植入 .NET Core。 若要查看完整列表,請參閱標記為 port-to-core 的 CoreFX 問題。 此列表并不代表 Microsoft 承諾將這些組件引入 .NET Core。 這樣做只是因為他們捕獲到了社區(qū)所需。 如果關注任何標記為 port-to-core 的組件,請在 GitHub 上參與討論。 如果認為遺漏了某些內(nèi)容,請在 CoreFX 存儲庫中提出新的問題。
某些 Microsoft 或第三方平臺不支持 .NET Core。 某些 Azure 服務提供尚不可用于 .NET Core 的 SDK。 這只是過渡情況,因為所有 Azure 服務都將使用 .NET Core。 在此期間,可用始終使用等效的 REST API 取代客戶端 SDK。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: