Asp.net Core 6系列學(xué)習(xí)
Asp.net Core 概述
ASP.NET Core 是一個跨平臺的高性能開源框架,用于生成啟用云且連接 Internet 的新式應(yīng)用。
使用 ASP.NET Core,可以:
- 生成 Web 應(yīng)用和服務(wù)、物聯(lián)網(wǎng) (IoT) 應(yīng)用和移動后端。
- 在 Windows、macOS 和 Linux 上使用喜愛的開發(fā)工具。
- 部署到云或本地。
- 在 .NET Core 上運(yùn)行。
ASP.NET Core 是對 ASP.NET 4.x 的重新設(shè)計,其中包括體系結(jié)構(gòu)上的更改,產(chǎn)生了更精簡、更模塊化的框架。
一、在 ASP.NET 4.x 和 ASP.NET Core 之間進(jìn)行選擇
ASP.NET Core 是一個跨平臺的開源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 應(yīng)用。
ASP.NET 4.x 是一個成熟的框架,提供在 Windows 上生成基于服務(wù)器的企業(yè)級 Web 應(yīng)用所需的服務(wù)。
ASP.NET Core | ASP.NET 4.x |
---|---|
針對 Windows、macOS 或 Linux 進(jìn)行生成 | 針對 Windows 進(jìn)行生成 |
Razor Pages 是在 ASP.NET Core 2.x 及更高版本中創(chuàng)建 Web UI 時建議使用的方法。 另請參閱 MVC、Web API 和 SignalR。 | 使用 Web FormsSignalR、MVCWeb APIWebHooks 或網(wǎng)頁 |
每個計算機(jī)多個版本 | 每個計算機(jī)一個版本 |
使用 C# 或 F# 通過 Visual Studio、Visual Studio for Mac 或 Visual Studio Code 進(jìn)行開發(fā) | 使用 C#、VB 或 F# 通過 Visual Studio 進(jìn)行開發(fā) |
比 ASP.NET 4.x 性能更高 | 良好的性能 |
使用 .NET Core 運(yùn)行時 | 使用 .NET Framework 運(yùn)行時 |
二、適用于服務(wù)器應(yīng)用的 .NET 與 .NET Framework
有兩種支持的 .NET 實(shí)現(xiàn)可用于生成服務(wù)器端應(yīng)用。
實(shí)現(xiàn) | 包含的版本 |
---|---|
.NET | .NET Core 1.0 - 3.1、.NET 5 及更高版本的 .NET。 |
.NET Framework | .NET Framework 1.0 - 4.8 |
這兩者共用許多相同的組件,你可在它們之間共享代碼。 但兩者之間存在根本的差異,可根據(jù)需要實(shí)現(xiàn)的目標(biāo)進(jìn)行選擇。 本文介紹了在何種情況下進(jìn)行選擇。
在以下情況,對服務(wù)器應(yīng)用程序使用 .NET:
- 用戶有跨平臺需求。
- 你正在以微服務(wù)為目標(biāo)。
- 你正在使用 Docker 容器。
- 需要高性能和可擴(kuò)展的系統(tǒng)。
- 需按應(yīng)用程序提供并行的 .NET 版本。
在以下情況,對服務(wù)器應(yīng)用程序使用 .NET Framework :
- 應(yīng)用當(dāng)前使用 .NET Framework(建議擴(kuò)展而不是遷移)。
- 應(yīng)用使用不可用于 .NET 的第三方庫或 NuGet 包。
- 應(yīng)用使用不可用于 .NET 的 .NET Framework 技術(shù)。
- 應(yīng)用使用不支持 .NET 的平臺。
三、ASP.NET Core Web UI
1.服務(wù)器和客戶端呈現(xiàn) UI 的優(yōu)勢和成本
有三種常見的方法可以使用 ASP.NET Core 構(gòu)建新式 Web UI:
- 從服務(wù)器呈現(xiàn) UI 的應(yīng)用。
- 在瀏覽器的客戶端上呈現(xiàn) UI 的應(yīng)用。
- 利用服務(wù)器和客戶端 UI 呈現(xiàn)方法的混合應(yīng)用。 例如,大多數(shù) Web UI 呈現(xiàn)在服務(wù)器上,并會根據(jù)需要來添加客戶端呈現(xiàn)的組件。
在服務(wù)器或客戶端上呈現(xiàn) UI 時,需要考慮其優(yōu)點(diǎn)和缺點(diǎn)。
2.服務(wù)器呈現(xiàn)的 UI
優(yōu)點(diǎn):
- 客戶端的需求最少,因?yàn)槭怯煞?wù)器執(zhí)行邏輯和頁面生成工作:
- 非常適用于低端設(shè)備和低帶寬連接。
- 允許在客戶端上使用各種瀏覽器版本。
- 快速加載初始頁面。
- 盡可能少地使用或不使用 JavaScript 拉到客戶端。
- 靈活地訪問受保護(hù)的服務(wù)器資源:
- 數(shù)據(jù)庫訪問。
- 訪問機(jī)密,如對 Azure 存儲的 API 調(diào)用值。
- 靜態(tài)站點(diǎn)分析優(yōu)點(diǎn),例如搜索引擎優(yōu)化。
常見的服務(wù)器呈現(xiàn)的 Web UI 應(yīng)用場景的示例:
- 動態(tài)站點(diǎn),例如提供個性化頁面、數(shù)據(jù)和窗體的站點(diǎn)。
- 顯示只讀數(shù)據(jù),如事務(wù)列表。
- 顯示靜態(tài)博客頁面。
- 面向公眾的內(nèi)容管理系統(tǒng)。
缺點(diǎn):文章來源:http://www.zghlxwxcb.cn/news/detail-462226.html
- 計算和內(nèi)存使用的成本都集中在服務(wù)器上,而不是分?jǐn)偟矫總€客戶端。
- 用戶交互需要往返服務(wù)器才能生成 UI 更新。
四、可用的 ASP.NET Core Web UI 服務(wù)器呈現(xiàn)的模型
Razor Pages 和 MVC 是基于服務(wù)器的框架,用于通過 .Net 生成 Web 應(yīng)用。
1.ASP.NET Core Razor Pages
Razor Pages 是一個基于頁面的模型。 UI 和業(yè)務(wù)邏輯關(guān)注點(diǎn)保持分離狀態(tài),但都在頁面內(nèi)。
Razor Pages 創(chuàng)建新的基于頁面或基于窗體的應(yīng)用。
Razor Pages 入門比 ASP.NET Core MVC 要簡單一些。
在服務(wù)器呈現(xiàn)的優(yōu)點(diǎn)基礎(chǔ)上,Razor Pages 的優(yōu)點(diǎn):
- 快速構(gòu)建和更新 UI。 頁面的代碼與頁面一起保存,同時保持 UI 和業(yè)務(wù)邏輯關(guān)注點(diǎn)相互分離。
- 可進(jìn)行測試并縮放到大型應(yīng)用。
- 組織 ASP.NET Core 頁面,使用起來比 ASP.NET MVC 更簡單:
- 視圖的具體邏輯和視圖模型可以一起保存在它們自己的命名空間和目錄中。
- 相關(guān)頁面的組可以保存在各自的命名空間和目錄中。
2.ASP.NET Core MVC
ASP.NET MVC 在服務(wù)器上呈現(xiàn) UI,并使用模型-視圖-控制器 (MVC) 結(jié)構(gòu)模式。
MVC 模式將應(yīng)用分成三組主要組件:模型、視圖和控制器。
用戶請求被路由到控制器。 控制器負(fù)責(zé)使用模型來執(zhí)行用戶操作或檢索查詢結(jié)果。 控制器選擇要顯示給用戶的視圖,并為其提供所需的任何模型數(shù)據(jù)。
對 Razor Pages 的支持是建立在 ASP.NET Core MVC 基礎(chǔ)之上的。
在服務(wù)器呈現(xiàn)的優(yōu)點(diǎn)基礎(chǔ)上,MVC 也有它的優(yōu)點(diǎn):
- 基于可縮放且成熟的模型生成大型 Web 應(yīng)用。
- 明確分離關(guān)注點(diǎn)以獲得最大的靈活性。
- 模型-視圖-控制器的責(zé)任分離,確保了業(yè)務(wù)模型的發(fā)展,而不會與底層的實(shí)現(xiàn)細(xì)節(jié)緊密相連。
3.Blazor Server
Blazor 是一個使用 Blazor 生成交互式客戶端 Web UI 的框架:
- 使用 C# 代替 JavaScript 來創(chuàng)建信息豐富的交互式 UI。
- 共享使用 .NET 編寫的服務(wù)器端和客戶端應(yīng)用邏輯。
- 將 UI 呈現(xiàn)為 HTML 和 CSS,以支持眾多瀏覽器,其中包括移動瀏覽器。
- 與新式托管平臺(如 Docker)集成。
- 使用 .NET 和 Blazor 生成混合桌面和移動應(yīng)用。
使用 .NET 進(jìn)行客戶端 Web 開發(fā)可提供以下優(yōu)勢:
- 使用 C# 代替 JavaScript 來編寫代碼。
- 利用現(xiàn)有的 .NET 庫生態(tài)系統(tǒng)。
- 在服務(wù)器和客戶端之間共享應(yīng)用邏輯。
- 受益于 .NET 的性能、可靠性和安全性。
- 使用開發(fā)環(huán)境(例如 Visual Studio 或 Visual Studio Code)保持 Windows、Linux 或 macOS 上的工作效率。
- 以一組穩(wěn)定、功能豐富且易用的通用語言、框架和工具為基礎(chǔ)來進(jìn)行生成。
Blazor Server 支持在 ASP.NET Core 應(yīng)用中托管服務(wù)器呈現(xiàn)的 UI。 可通過 SignalR 連接處理客戶端 UI 更新。 運(yùn)行時保留在服務(wù)器上,并處理應(yīng)用 C# 代碼的執(zhí)行。
4.Blazor WebAssembly
Blazor WebAssembly 是單頁應(yīng)用 (SPA) 框架,用于生成具有本文前面 Blazor Server 部分所述的一般特征的交互式客戶端 Web 應(yīng)用。
通過 WebAssembly,可在 Web 瀏覽器內(nèi)運(yùn)行 .NET 代碼。 WebAssembly 是針對快速下載和最大執(zhí)行速度優(yōu)化的壓縮字節(jié)碼格式。 WebAssembly 是開放的 Web 標(biāo)準(zhǔn),支持用于無插件的 Web 瀏覽器。 Blazor WebAssembly 適用于所有新式 Web 瀏覽器,包括移動瀏覽器。
當(dāng) Blazor WebAssembly 應(yīng)用生成并運(yùn)行時:
- C# 代碼文件和 Razor 文件將被編譯為 .NET 程序集。
- 該程序集和 .NET 運(yùn)行時將被下載到瀏覽器。
- Blazor WebAssembly 啟動 .NET 運(yùn)行時,并配置運(yùn)行時,以為應(yīng)用加載程序集。 Blazor WebAssembly 運(yùn)行時使用JavaScript 互操作處理文檔對象模型 (DOM) 操作和瀏覽器 API 調(diào)用。
5.使用 JavaScript 框架(例如 Angular 和 React)的 ASP.NET Core 單頁應(yīng)用程序 (SPA)
使用熱門的 JavaScript 框架(如 Angular 或 React)生成適用于 ASP.NET Core 應(yīng)用的客戶端邏輯。 ASP.NET Core 為 Angular 和 React 提供了項(xiàng)目模板,也可以用于其他 JavaScript 框架。
在前面列出的客戶端呈現(xiàn)的優(yōu)點(diǎn)基礎(chǔ)上,將 ASP.NET Core SPA 與 JavaScript 框架結(jié)合使用也有一些優(yōu)點(diǎn):
- JavaScript 運(yùn)行時環(huán)境已隨瀏覽器提供。
- 大型社區(qū)和成熟的生態(tài)系統(tǒng)。
- 使用熱門的 JS 框架(如 Angular 和 React)構(gòu)建適用于 ASP.NET Core 應(yīng)用的客戶端邏輯。
缺點(diǎn):
- 需要更多編碼語言、框架和工具。
- 難以共享代碼,因此一些邏輯可能會重復(fù)。
總結(jié)
MVC、Razor Pages 和 Blazor 都是 ASP.NET Core 框架的一部分,設(shè)計為可以結(jié)合使用。 Razor 組件可以通過托管的 Blazor WebAssembly 或 Blazor Server 解決方案集成到 Razor Pages 和 MVC 應(yīng)用。 呈現(xiàn)視圖或頁面時,可以同時預(yù)呈現(xiàn)組件。文章來源地址http://www.zghlxwxcb.cn/news/detail-462226.html
到了這里,關(guān)于Asp.net Core系列學(xué)習(xí)(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!