一. 概述 ASP.NET Core 是一個跨平臺的高性能開源框架,可以用來:建置 Web 應用程式和服務、IoT應用和移動後端、在 Windows macOS 和 Linux 上使用喜愛的開發工具、部署到雲或本地、NET Core 或 .NET Framework 上運行。 ASP.NET Cor ...
一. 概述
ASP.NET Core 是一個跨平臺的高性能開源框架,可以用來:建置 Web 應用程式和服務、IoT應用和移動後端、在 Windows macOS 和 Linux 上使用喜愛的開發工具、部署到雲或本地、NET Core 或 .NET Framework 上運行。
ASP.NET Core 可以面向 .NET Core 或 .NET Framework。面向 .NET Framework 的 ASP.NET Core 應用無法跨平臺,它們僅在 Windows 上運行。通常,ASP.NET Core由 .NET Standard 庫組成。與 .NET Standard 2.0 相容的 .NET Framework 版本建議使用4.7.1。在未來ASP.NET Core 3.0及以上只能在 .NET Core 中運行。
1.1 ASP.NET Core 具有如下優點:
(1)生成 Web UI 和 Web API 的統一場景。
(2)針對可測試性進行構建。
(3)Razor Pages可以使基於頁面的編碼方式更簡單高效。
(4)能夠在 Windows、macOS 和 Linux 上進行開發和運行。
(5)開放源代碼和以社區為中心。
(6)集成新式客戶端框架和開發工作流。
(7)基於環境的雲就緒配置系統。
(8)內置依賴項註入。
(9)輕型的高性能模塊化 HTTP 請求管道。
(10)能夠在IIS、Nginx、Apache、Docker 上進行托管或在自己的進程中進行自托管。
(11)目標到NET Core 時,可以使用並行應用版本控制。
(12)簡化新式 Web 開發的工具。
1.2 使用 ASP.NET Core MVC 生成 Web API 和 Web UI所需的功能:
Model-View-Controller (MVC) 模式使 Web API 和 Web 應用可測試。
Razor Pages是基於頁面的編程模型,它讓 Web UI 的生成更加簡單高效。
Razor 標記提供了適用於 Razor 頁面和 MVC 視圖的高效語法。
標記幫助程式使伺服器端代碼可以在 Razor 文件中參與創建和呈現 HTML 元素。
內置的多數據格式和內容協商支持使 Web API 可訪問多種客戶端,包括瀏覽器和移動設備。
模型綁定自動將 HTTP 請求中的數據映射到操作方法參數。
模型驗證自動執行客戶端和伺服器端驗證。
1.3 NET Core與 .NET Framework 比較
.NET Core與 .NET Framework 相比優勢包括: 跨平臺、提高性能、並行版本控制、新API、開源。目前NET Framework 還不會被 .NET Core 代替。Core會試圖縮小二者在實現上的差距,下表將 ASP.NET Core 與 ASP.NET 4.x 進行比較:
ASP.NET Core | ASP.NET 4.x |
針對 Windows、macOS 或 Linux 進行生成 | 針對 Windows 進行生成 |
Razor 頁面是在 ASP.NET Core 2.x 及更高版本中創建 Web UI 時建議使用的方法 | 使用 Web 窗體、SignalR、MVC、Web API、WebHooks 或網頁 |
每個電腦多個版本 | 每個電腦一個版本 |
比 ASP.NET 4.x 性能更高 | 良好的性能 |
選擇 .NET Framework 或 .NET Core 運行時 | 使用 .NET Framework 運行時 |
1.4 運用場景
(1) 在什麼情況下要求使用 .NET Core包括: 用戶有跨平臺需求、用戶正在面向微服務、用戶正在使用 Docker 容器、需要高性能和可擴展的系統、需按應用程式提供並行的 .NET 版本。
(2) 在什麼情況下使用.NET Framework包括: 當前使用 .NET Framework(建議擴展而不是遷移)、不可用於 .NET Core 的第三方 .NET 庫或 NuGet 包、不可用於 .NET Core 的 .NET 技術、不支持 .NET Core 的平臺。
不可用於 .NET Core的.NET技術包括:不能用於 ASP.NET Web 窗體、WCF 服務的實現(將來會考慮在Core上實現)、工作流相關的服務。