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)生成 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 開發的工具。
Model-View-Controller (MVC) 模式使 Web API 和 Web 應用可測試。
Razor Pages是基於頁面的編程模型,它讓 Web UI 的生成更加簡單高效。
Razor 標記提供了適用於 Razor 頁面和 MVC 視圖的高效語法。
標記幫助程序使服務器端代碼能夠在 Razor 文件中參與建立和呈現 HTML 元素。
內置的多數據格式和內容協商支持使 Web API 可訪問多種客戶端,包括瀏覽器和移動設備。
模型綁定自動將 HTTP 請求中的數據映射到操做方法參數。
模型驗證自動執行客戶端和服務器端驗證。
.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) 在什麼狀況下要求使用 .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上實現)、工做流相關的服務。