一. 概述
ASP.NET Core 是一個(gè)跨平臺(tái)的高性能開(kāi)源框架,可以用來(lái):建置 Web 應(yīng)用程序和服務(wù)练慕、IoT應(yīng)用和移動(dòng)后端从铲、在 Windows macOS 和 Linux 上使用喜愛(ài)的開(kāi)發(fā)工具澜建、部署到云或本地米丘、NET Core 或 .NET Framework 上運(yùn)行。
ASP.NET Core 可以面向 .NET Core 或 .NET Framework舌镶。面向 .NET Framework 的 ASP.NET Core 應(yīng)用無(wú)法跨平臺(tái)柱彻,它們僅在 Windows 上運(yùn)行豪娜。通常,ASP.NET Core由 .NET Standard 庫(kù)組成哟楷。與 .NET Standard 2.0 兼容的 .NET Framework 版本建議使用4.7.1瘤载。在未來(lái)ASP.NET Core 3.0及以上只能在 .NET Core 中運(yùn)行。
1.1 ASP.NET Core 具有如下優(yōu)點(diǎn):
(1)生成 Web UI 和 Web API 的統(tǒng)一場(chǎng)景卖擅。
(2)針對(duì)可測(cè)試性進(jìn)行構(gòu)建鸣奔。
(3)Razor Pages可以使基于頁(yè)面的編碼方式更簡(jiǎn)單高效。
(4)能夠在 Windows磨镶、macOS 和 Linux 上進(jìn)行開(kāi)發(fā)和運(yùn)行溃蔫。
(5)開(kāi)放源代碼和以社區(qū)為中心健提。
(6)集成新式客戶端框架和開(kāi)發(fā)工作流琳猫。
(7)基于環(huán)境的云就緒配置系統(tǒng)。
(8)內(nèi)置依賴項(xiàng)注入私痹。
(9)輕型的高性能模塊化 HTTP 請(qǐng)求管道脐嫂。
(10)能夠在IIS、Nginx紊遵、Apache账千、Docker 上進(jìn)行托管或在自己的進(jìn)程中進(jìn)行自托管。
(11)目標(biāo)到NET Core 時(shí)暗膜,可以使用并行應(yīng)用版本控制匀奏。
(12)簡(jiǎn)化新式 Web 開(kāi)發(fā)的工具。
1.2 使用 ASP.NET Core MVC 生成 Web API 和 Web UI所需的功能:
(1).Model-View-Controller (MVC) 模式使 Web API 和 Web 應(yīng)用可測(cè)試学搜。
(2).Razor Pages是基于頁(yè)面的編程模型娃善,它讓 Web UI 的生成更加簡(jiǎn)單高效。
(3).Razor 標(biāo)記提供了適用于 Razor 頁(yè)面和 MVC 視圖的高效語(yǔ)法瑞佩。
(4).標(biāo)記幫助程序使服務(wù)器端代碼可以在 Razor 文件中參與創(chuàng)建和呈現(xiàn) HTML 元素聚磺。
(5).內(nèi)置的多數(shù)據(jù)格式和內(nèi)容協(xié)商支持使 Web API 可訪問(wèn)多種客戶端,包括瀏覽器和移動(dòng)設(shè)備炬丸。
(6).模型綁定自動(dòng)將 HTTP 請(qǐng)求中的數(shù)據(jù)映射到操作方法參數(shù)瘫寝。
(7).模型驗(yàn)證自動(dòng)執(zhí)行客戶端和服務(wù)器端驗(yàn)證。
1.3 NET Core與 .NET Framework 比較
ASP.NET Core | ASP.NET 4.x |
---|---|
針對(duì) Windows稠炬、macOS 或 Linux 進(jìn)行生成 | 針對(duì) Windows 進(jìn)行生成 |
Razor 頁(yè)面是在 ASP.NET Core 2.x 及更高版本中創(chuàng)建 Web UI 時(shí)建議使用的方法 | 使用 Web 窗體焕阿、SignalR、MVC首启、Web API捣鲸、WebHooks 或網(wǎng)頁(yè) |
每個(gè)計(jì)算機(jī)多個(gè)版本 | 每個(gè)計(jì)算機(jī)一個(gè)版本 |
比 ASP.NET 4.x 性能更高 良好的性能 | 選擇 .NET Framework 或 .NET Core 運(yùn)行時(shí) 使用 .NET Framework 運(yùn)行時(shí) |
1.4 運(yùn)用場(chǎng)景
(1) 在什么情況下要求使用 .NET Core包括: 用戶有跨平臺(tái)需求、用戶正在面向微服務(wù)闽坡、用戶正在使用 Docker 容器栽惶、需要高性能和可擴(kuò)展的系統(tǒng)愁溜、需按應(yīng)用程序提供并行的 .NET 版本。
(2) 在什么情況下使用.NET Framework包括: 當(dāng)前使用 .NET Framework(建議擴(kuò)展而不是遷移)外厂、不可用于 .NET Core 的第三方 .NET 庫(kù)或 NuGet 包冕象、不可用于 .NET Core 的 .NET 技術(shù)、不支持 .NET Core 的平臺(tái)汁蝶。
不可用于 .NET Core的.NET技術(shù)包括:不能用于 ASP.NET Web 窗體渐扮、WCF 服務(wù)的實(shí)現(xiàn)(將來(lái)會(huì)考慮在Core上實(shí)現(xiàn))、工作流相關(guān)的服務(wù)掖棉。