日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

前言

因?yàn)樵蹅兊?span id="qsh1b7padf" class="candidate-entity-word" data-gid="7080942">MongoDB入門到實(shí)戰(zhàn)教程Web端準(zhǔn)備使用Blazor來(lái)作為前端展示UI,本篇文章主要是介紹Blazor是一個(gè)怎樣的Web UI框架,其優(yōu)勢(shì)和特點(diǎn)在哪?并帶你快速入門上手ASP.NET Core Blazor(當(dāng)然這個(gè)前提是你要有一定的C#編程基礎(chǔ)的情況,假如你完全沒(méi)有接觸過(guò)C#的話建議你先從基本語(yǔ)法學(xué)起)。

Blazor是什么?

  • Blazor是一個(gè)使用 .NET框架和C#編程語(yǔ)言Razor語(yǔ)法構(gòu)建Web應(yīng)用程序的UI框架,它可以用于構(gòu)建單頁(yè)應(yīng)用(SPA)和 Web服務(wù),它使用編譯的C#來(lái)操縱HTML DOM來(lái)替代JavaScript。Blazor 的目標(biāo)是讓開(kāi)發(fā)人員使用C#編程語(yǔ)言來(lái)編寫(xiě) Web 應(yīng)用程序,使得C#程序員可以在一個(gè)熟悉的編程語(yǔ)言中完成整個(gè)應(yīng)用程序的開(kāi)發(fā)。這樣既可以提高開(kāi)發(fā)效率,也可以減少學(xué)習(xí)成本。

  • Blazor的核心技術(shù)基于WebAssembly,它允許在瀏覽器中運(yùn)行編譯后的本地代碼,從而使得.NET運(yùn)行時(shí)可以在瀏覽器中運(yùn)行。在Blazor 中,開(kāi)發(fā)人員可以使用Razor模板語(yǔ)法或者C#語(yǔ)言來(lái)編寫(xiě)Web應(yīng)用程序的邏輯和界面代碼。Blazor 應(yīng)用程序可以直接在瀏覽器中運(yùn)行,也可以作為服務(wù)端應(yīng)用程序在服務(wù)器端運(yùn)行,并通過(guò) SignalR 實(shí)時(shí)通信。

  • Blazor提供了一些常見(jiàn)的UI組件和布局控件,使得開(kāi)發(fā)人員可以快速搭建 Web 應(yīng)用程序的前端界面。此外,Blazor 還支持依賴注入、路由和可重用組件等功能,增強(qiáng)了應(yīng)用程序的靈活性和可重用性。

總而言之:Blazor是一種新興的Web應(yīng)用程序框架,具有很大的潛力和發(fā)展前景。Blazor是在.NET和Razor上構(gòu)建的用戶界面框架,它采用了最新的Web技術(shù)和.NET框架優(yōu)勢(shì),可以使用C# 編程語(yǔ)言編寫(xiě)Web 應(yīng)用程序,它不僅可以提高開(kāi)發(fā)效率,還可以提供更好的用戶體驗(yàn)和更好的可維護(hù)性。

Blazor的優(yōu)勢(shì)和特點(diǎn)

Blazor是一個(gè)基于.NET框架和 C#編程語(yǔ)言構(gòu)建 Web 應(yīng)用程序的 UI 框架,它具有以下幾個(gè)優(yōu)勢(shì)和特點(diǎn):

  • 簡(jiǎn)化開(kāi)發(fā)流程:在Blazor中,前端和后端都可以使用C#進(jìn)行編程,使得C#程序員可以在一個(gè)熟悉的編程語(yǔ)言中完成整個(gè)應(yīng)用程序的開(kāi)發(fā),避免了學(xué)習(xí)多種語(yǔ)言和框架的麻煩。

  • 高效的性能:Blazor應(yīng)用程序可以直接在瀏覽器中運(yùn)行,也可以在服務(wù)端運(yùn)行,并通過(guò)SignalR實(shí)時(shí)通信,從而可以減少網(wǎng)絡(luò)延遲和帶寬消耗,提高應(yīng)用程序的性能。

  • 安全性強(qiáng):Blazor 應(yīng)用程序不需要在客戶端上運(yùn)行任何JavaScript代碼,相對(duì)于傳統(tǒng)的Web應(yīng)用程序,可以大幅度降低應(yīng)用程序受到跨站點(diǎn)腳本攻擊(XSS)的風(fēng)險(xiǎn)。

  • 易于測(cè)試和調(diào)試:由于Blazor應(yīng)用程序的代碼都是使用C#編寫(xiě)的,因此可以使用Visual Studio和其他C#開(kāi)發(fā)工具對(duì)其進(jìn)行測(cè)試和調(diào)試,簡(jiǎn)化了開(kāi)發(fā)人員的工作和提高Bug查找效率。

  • 可以重用現(xiàn)有代碼:由于Blazor使用.NET框架和C#編程語(yǔ)言,因此可以重用現(xiàn)有的.NET庫(kù)和組件,簡(jiǎn)化了開(kāi)發(fā)過(guò)程并提高了代碼的復(fù)用性。

  • 單語(yǔ)言全棧開(kāi)發(fā):在 Blazor 中,開(kāi)發(fā)人員可以使用同一種編程語(yǔ)言(C#)來(lái)構(gòu)建 Web 應(yīng)用程序的服務(wù)器端和客戶端代碼,從而實(shí)現(xiàn)一種全棧開(kāi)發(fā)的方式(如果是一個(gè)小項(xiàng)目并且需要一個(gè)人同時(shí)擼前后端代碼,用Blazor效率會(huì)更高)。

Blazor的劣勢(shì)

  • 框架生態(tài)相對(duì)較弱:相比于Vue、ReactAngular等前端框架,Blazor的生態(tài)尚不完全,社區(qū)資源和開(kāi)源項(xiàng)目相對(duì)較少,這可能會(huì)增加開(kāi)發(fā)人員的學(xué)習(xí)和解決問(wèn)題的難度。

  • 目前僅支持最新版本的瀏覽器:雖然 Blazor 支持各種主流瀏覽器,但由于涉及到 WebAssembly 和其他新技術(shù),一些舊版瀏覽器可能無(wú)法完全支持 Blazor 應(yīng)用程序。

  • 學(xué)習(xí)曲線較陡峭:Blazor是一種全新的Web開(kāi)發(fā)技術(shù),可能對(duì)一些非.NET后端開(kāi)發(fā)人員來(lái)說(shuō)存在較大的學(xué)習(xí)曲線,需要付出更多的時(shí)間和精力來(lái)學(xué)習(xí)和掌握。

Blazor支持的平臺(tái)

下表所示的瀏覽器在移動(dòng)平臺(tái)和桌面平臺(tái)上均支持 Blazor WebAssembly 和 Blazor Server。

瀏覽者 Version
Apple Safari 當(dāng)前版本
Google Chrome 當(dāng)前版本
Microsoft Edge 當(dāng)前版本
Mozilla Firefox 當(dāng)前版本

當(dāng)前版本指的是瀏覽器的最新版本。

對(duì)于 Blazor Hybrid 應(yīng)用,我們測(cè)試并支持最新的平臺(tái) Web View 控件版本:

  • Windows 上的 Microsoft Edge WebView2??

  • Android 上的 Chrome??

  • iOSmacOS 上的 Safari??

Blazor三種托管模型及其各自特點(diǎn)

1、Blazor Server

簡(jiǎn)介:

Blazor Server 應(yīng)用程序在服務(wù)器上運(yùn)行,可享受完整的 .NET Core 運(yùn)行時(shí)支持。所有處理都在服務(wù)器上完成,UI/DOM 更改通過(guò) SignalR 連接回傳給客戶端。這種雙向 SignalR 連接是在用戶第一次從瀏覽器中加載應(yīng)用程序時(shí)建立的。由于 .NET 代碼已經(jīng)在服務(wù)器上運(yùn)行,因此您無(wú)需為前端創(chuàng)建 API。您可以直接訪問(wèn)服務(wù)、數(shù)據(jù)庫(kù)等,并在傳統(tǒng)的服務(wù)端技術(shù)上做任何您想做的事情。在客戶端上,Blazor 腳本 (blazor.server.js) 與服務(wù)器建立 SignalR 連接。腳本由 ASP.NET Core 共享框架中的嵌入資源提供給客戶端應(yīng)用??蛻舳藨?yīng)用負(fù)責(zé)根據(jù)需要保持和還原應(yīng)用狀態(tài)。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

Blazor Server 托管模型具有以下優(yōu)點(diǎn):

  • 下載項(xiàng)大小明顯小于 Blazor WebAssembly 應(yīng)用,且應(yīng)用加載速度快得多。

  • 應(yīng)用可以充分利用服務(wù)器功能,包括對(duì) .NET Core API 的使用。

  • 服務(wù)器上的 .NET Core 用于運(yùn)行應(yīng)用,因此調(diào)試等現(xiàn)有 .NET 工具可按預(yù)期正常工作。

  • 支持瘦客戶端。例如,Blazor Server 應(yīng)用適用于不支持 WebAssembly 的瀏覽器以及資源受限的設(shè)備。

  • 應(yīng)用的 .NET/C# 代碼庫(kù)(其中包括應(yīng)用的組件代碼)不適用于客戶端。

Blazor Server 托管模型具有以下局限性:

  • 通常延遲較高。每次用戶交互都涉及到網(wǎng)絡(luò)躍點(diǎn)。

  • 不支持脫機(jī)工作。如果客戶端連接失敗,應(yīng)用會(huì)停止工作。

  • 若要縮放具有許多用戶的應(yīng)用,需要使用服務(wù)器資源處理多個(gè)客戶端連接和客戶端狀態(tài)。

  • 需要 ASP.NET Core 服務(wù)器為應(yīng)用提供服務(wù)。無(wú)服務(wù)器部署方案不可行,例如通過(guò)內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN) 為應(yīng)用提供服務(wù)的方案。

2、Blazor WebAssembly

簡(jiǎn)介:

Blazor WebAssembly(WASM)應(yīng)用程序在瀏覽器中基于WebAssembly的.NET運(yùn)行時(shí)運(yùn)行客戶端。Blazor應(yīng)用程序及其依賴項(xiàng)和.NET運(yùn)行時(shí)被下載到瀏覽器中。該應(yīng)用程序直接在瀏覽器的UI線程上執(zhí)行。UI更新和事件處理在同一進(jìn)程中進(jìn)行。應(yīng)用程序的資產(chǎn)被作為靜態(tài)文件部署到能夠?yàn)榭蛻籼峁╈o態(tài)內(nèi)容的網(wǎng)絡(luò)服務(wù)器或服務(wù)上。當(dāng)Blazor WebAssembly應(yīng)用被創(chuàng)建用于部署,而沒(méi)有后端ASP.NET Core應(yīng)用為其提供文件時(shí),該應(yīng)用被稱為獨(dú)立的Blazor WebAssembly應(yīng)用。當(dāng)應(yīng)用程序被創(chuàng)建用于部署,并有一個(gè)后端應(yīng)用程序?yàn)槠涮峁┪募r(shí),該應(yīng)用程序被稱為托管的Blazor WebAssembly應(yīng)用程序。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

Blazor WebAssembly 托管模型具有以下優(yōu)點(diǎn):

  • 從服務(wù)器下載應(yīng)用后,沒(méi)有 .NET 服務(wù)器端依賴項(xiàng),因此,如果服務(wù)器脫機(jī),應(yīng)用將保持正常運(yùn)行。

  • 可充分利用客戶端資源和功能。

  • 工作可從服務(wù)器轉(zhuǎn)移到客戶端。

  • 無(wú)需 ASP.NET Core Web 服務(wù)器即可托管應(yīng)用。無(wú)服務(wù)器部署方案可行,例如通過(guò)內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN) 為應(yīng)用提供服務(wù)的方案。

Blazor WebAssembly 托管模型具有以下局限性:

  • 應(yīng)用僅可使用瀏覽器功能。

  • 需要可用的客戶端硬件和軟件(例如 WebAssembly 支持)。

  • 下載項(xiàng)大小較大,應(yīng)用加載耗時(shí)較長(zhǎng)。

Blazor WebAssembly 支持預(yù)先 (AOT) 編譯,你可以直接將 .NET 代碼編譯到 WebAssembly 中。AOT 編譯會(huì)提高運(yùn)行時(shí)性能,代價(jià)是應(yīng)用大小增加。

3、Blazor Hybrid

簡(jiǎn)介:

  • Blazor 還可用于使用混合方法生成本機(jī)客戶端應(yīng)用?;旌蠎?yīng)用是利用 Web 技術(shù)實(shí)現(xiàn)其功能的本機(jī)應(yīng)用。在 Blazor Hybrid 應(yīng)用中,Razor 組件與任何其他 .NET 代碼一起直接在本機(jī)應(yīng)用中(而不在 WebAssembly 上)運(yùn)行,并通過(guò)本地互操作通道基于 HTML 和 CSS 將 Web UI 呈現(xiàn)到嵌入式 Web View 控件。

  • 可以使用不同的 .NET 本機(jī)應(yīng)用框架(包括 .NET MAUI、WPF 和 Windows 窗體)生成 Blazor Hybrid 應(yīng)用。Blazor 提供 BlazorWebView控件,將 Razor 組件添加到使用這些框架生成的應(yīng)用。通過(guò)結(jié)合使用 Blazor 和 .NET MAUI,可以便捷地生成適用于移動(dòng)和桌面的跨平臺(tái) Blazor Hybrid 應(yīng)用,而將 Blazor 與 WPF 和 Windows 窗體集成可以更好地實(shí)現(xiàn)現(xiàn)有應(yīng)用的現(xiàn)代化。

  • 由于 Blazor Hybrid 應(yīng)用是本機(jī)應(yīng)用,它們可以支持只有 Web 平臺(tái)所沒(méi)有的功能。通過(guò)正常的 .NET API,Blazor Hybrid 應(yīng)用對(duì)本機(jī)平臺(tái)功能具有完全訪問(wèn)權(quán)限。Blazor Hybrid 應(yīng)用還可以與現(xiàn)有 Blazor Server 或 Blazor WebAssembly 應(yīng)用共享和重復(fù)使用組件。Blazor Hybrid 應(yīng)用結(jié)合了 Web、本機(jī)應(yīng)用和 .NET 平臺(tái)的優(yōu)點(diǎn)。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

Blazor Hybrid 托管模型具有以下優(yōu)點(diǎn):

  • 重復(fù)使用可在移動(dòng)、桌面和 Web 之間共享的現(xiàn)有組件。

  • 利用 Web 開(kāi)發(fā)技能、體驗(yàn)和資源。

  • 應(yīng)用對(duì)設(shè)備的本機(jī)功能具有完全訪問(wèn)權(quán)限。

Blazor Hybrid 托管模型具有以下局限性:

  • 必須為每個(gè)目標(biāo)平臺(tái)生成、部署和維護(hù)單獨(dú)的本機(jī)客戶端應(yīng)用。

  • 與在瀏覽器中訪問(wèn) Web 應(yīng)用相比,查找、下載和安裝本機(jī)客戶端應(yīng)用通常需要更長(zhǎng)的時(shí)間。

如何選擇要使用的托管模型?

根據(jù)應(yīng)用的功能要求選擇 Blazor 托管模型。下表顯示了選擇托管模型的主要注意事項(xiàng)。

Blazor Hybrid 應(yīng)用包括 .NET MAUI、WPF 和 Windows 窗體框架應(yīng)用。

功能 Blazor Server Blazor WebAssembly (WASM) Blazor Hybrid
與 .NET API 完全兼容 ??支持 ?? ??支持
直接訪問(wèn)服務(wù)器和網(wǎng)絡(luò)資源 ??支持 ?不支持? ?不支持?
較小的有效負(fù)載,較快的初始加載速度 ??支持 ?? ??
接近本機(jī)執(zhí)行速度 ??支持 ??支持? ??支持
服務(wù)器上安全且專用的應(yīng)用代碼 ??支持 ?不支持? ?不支持?
下載后即可脫機(jī)運(yùn)行應(yīng)用 ?? ??支持 ??支持
靜態(tài)站點(diǎn)托管 ?? ??支持 ??
將處理過(guò)程轉(zhuǎn)移至客戶端 ?? ??支持 ??支持
對(duì)本機(jī)客戶端功能具有完全訪問(wèn)權(quán)限 ?? ?? ??支持
基于 Web 的部署 ??支持 ??支持 ??

?Blazor WebAssembly 和 Blazor Hybrid 應(yīng)用可以使用基于服務(wù)器的 API 來(lái)訪問(wèn)服務(wù)器/網(wǎng)絡(luò)資源并訪問(wèn)專用和安全的應(yīng)用代碼。?Blazor WebAssembly 僅通過(guò)預(yù)先 (AOT) 編譯達(dá)到接近本機(jī)性能。

總之,Blazor 的三種模式各有特點(diǎn),可以根據(jù)應(yīng)用場(chǎng)景選擇適當(dāng)?shù)哪J?。如果需要訪問(wèn)服務(wù)器端資源或者需要實(shí)現(xiàn)實(shí)時(shí)通信功能,可以選擇 Server 模式;如果需要實(shí)現(xiàn)離線訪問(wèn)或者減少網(wǎng)絡(luò)流量,可以選擇 WebAssembly 模式;如果需要兼顧兩種模式的優(yōu)勢(shì),可以選擇 Hybrid 模式。

Razor語(yǔ)法簡(jiǎn)述

Blazor 是一種基于 .NET 平臺(tái)的 Web 開(kāi)發(fā)框架,它使用 C# 語(yǔ)言和 Razor 語(yǔ)法來(lái)編寫(xiě)前端代碼。

什么是Razor?

Razor 是一種標(biāo)記語(yǔ)法,用于將基于 .NET 的代碼嵌入網(wǎng)頁(yè)中。Razor 語(yǔ)法由 Razor 標(biāo)記、C# 和 HTML 組成。包含 Razor 的文件通常具有 .cshtml文件擴(kuò)展名。Razor 也可在 Razor 組件 文件 (.razor) 中找到。Razor 語(yǔ)法類似于各種 JavaScript 單頁(yè)應(yīng)用程序 (SPA) 框架(如 Angular、React、VueJs 和 Svelte)的模板化引擎。更多請(qǐng)查看ASP.NET Core 的 Razor 語(yǔ)法??。

Razor 操作符

Razor 操作符是用于將 Razor 代碼與 HTML 元素相互關(guān)聯(lián)的語(yǔ)法。例如:

  • @ 符號(hào):用于將 C# 代碼嵌入到 HTML 中。

  • @: 符號(hào):用于輸出 HTML 編碼的文本。

  • @@ 符號(hào):用于在 Razor 模板中編寫(xiě) @ 符號(hào)。

  • @ 符號(hào):用于在 Razor 表達(dá)式中調(diào)用 C# 方法。

Razor代碼塊

<p>@UserName</p>
@code{ private string UserName = "追逐時(shí)光者";}

隱式 Razor 表達(dá)式

隱式 Razor 表達(dá)式以 @開(kāi)頭,后跟 C# 代碼:

<p>@DateTime.Now</p><p>@DateTime.IsLeapYear(2023)</p>

顯式 Razor 表達(dá)式

顯式 Razor 表達(dá)式由 @符號(hào)和平衡圓括號(hào)組成。若要呈現(xiàn)上一周的時(shí)間,可使用以下 Razor 標(biāo)記:

<p>Last week this time: @(DateTime.Now - TimeSpan.FromDays(7))</p>

表達(dá)式編碼

計(jì)算結(jié)果為字符串的 C# 表達(dá)式采用 HTML 編碼。計(jì)算結(jié)果為 IHtmlContent的 C# 表達(dá)式直接通過(guò)IHtmlContent.WriteTo呈現(xiàn)。計(jì)算結(jié)果不為IHtmlContent的 C# 表達(dá)式通過(guò)ToString轉(zhuǎn)換為字符串,并在呈現(xiàn)前進(jìn)行編碼。

@("<span>Hello World</span>")
輸出:
HTML 在瀏覽器中顯示為純文本:<span>Hello World</span>

條件判斷 @if, else if, else, and @switch

@if控制何時(shí)運(yùn)行代碼:

@if (value % 2 == 0){ <p>The value was even.</p>}

elseelse if不需要@符號(hào):

@if (value % 2 == 0){ <p>The value was even.</p>}else if (value >= 1337){ <p>The value is large.</p>}else{ <p>The value is odd and small.</p>}

以下標(biāo)記展示如何使用 switch 語(yǔ)句:

@switch (value){ case 1: <p>The value is 1!</p> break; case 1337: <p>Your number is 1337!</p> break; default: <p>Your number wasn't 1 or 1337.</p> break;}

語(yǔ)句循環(huán) @for, @foreach, @while, and @do while

可以使用循環(huán)控制語(yǔ)句呈現(xiàn)模板化 HTML。若要呈現(xiàn)一組人員:

@{ var people = new Person { new Person("Weston", 33), new Person("Johnathon", 41), ... };}

支持以下循環(huán)語(yǔ)句:

@for

@for (var i = 0; i < people.Length; i ){ var person = people[i]; <p>Name: @person.Name</p> <p>Age: @person.Age</p>}

@foreach

@foreach (var person in people){ <p>Name: @person.Name</p> <p>Age: @person.Age</p>}

@while

@{ var i = 0; }@while (i < people.Length){ var person = people[i]; <p>Name: @person.Name</p> <p>Age: @person.Age</p>
i ;}

@do while

@{ var i = 0; }@do{ var person = people[i]; <p>Name: @person.Name</p> <p>Age: @person.Age</p>
i ;} while (i < people.Length);

復(fù)合語(yǔ)句 @using

在 C# 中,using 語(yǔ)句用于確保釋放對(duì)象。在 Razor 中,可使用相同的機(jī)制來(lái)創(chuàng)建包含附加內(nèi)容的 HTML 幫助程序。在下面的代碼中,HTML 幫助程序使用 @using 語(yǔ)句呈現(xiàn) <form> 標(biāo)記:

@using (Html.BeginForm){ <div> Email: <input type="email" id="Email" value=""> <button>Register</button> </div>}

@try, catch, finally

異常處理與 C# 類似:

@try{ throw new InvalidOperationException("You did something invalid.");}catch (Exception ex){ <p>The exception message: @ex.Message</p>}finally{ <p>The finally statement.</p>}

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

更多Razor語(yǔ)法請(qǐng)查看ASP.NET Core 的 Razor 語(yǔ)法??。https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?view=aspnetcore-6.0

新建ZeroBlazor空白解決方案

1、啟動(dòng) Visual Studio 2022選擇創(chuàng)建新項(xiàng)目

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

2、搜索“空白解決方案“并創(chuàng)建

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

使用VS 2022快速創(chuàng)建Blazor Server應(yīng)用

1、在ZeroBlazor解決方案中添加新項(xiàng)目

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

2、添加新項(xiàng)目中搜索“Blazor Server 應(yīng)用”進(jìn)行創(chuàng)建

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

3、框架選擇“.NET 7.0 (標(biāo)準(zhǔn)期限支持)”,然后單擊“創(chuàng)建”按鈕

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

4、應(yīng)用程序文件夾和文件介紹

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

  • Program.cs 是啟動(dòng)服務(wù)器以及在其中配置應(yīng)用服務(wù)和中間件的應(yīng)用的入口點(diǎn)。

  • App.razor 為應(yīng)用的根組件。

  • Pages 存放應(yīng)用程序的 Razor 頁(yè)面,每個(gè) Razor 頁(yè)面都對(duì)應(yīng)著一個(gè)組件,用于呈現(xiàn)應(yīng)用程序的 UI 元素。

  • Shared 存放多個(gè) Razor 頁(yè)面或組件之間共享的組件、布局和其他視圖元素等。

  • wwwroot 該文件夾包含靜態(tài)文件,例如圖片、字體、圖標(biāo)、CSS 和 JavaScript 文件等。

  • BlazorAppSample.csproj 應(yīng)用程序的項(xiàng)目文件,用于指定依賴項(xiàng)、編譯選項(xiàng)和發(fā)布選項(xiàng)等。

  • Properties 目錄中的 launchSettings.json 文件為本地開(kāi)發(fā)環(huán)境定義不同的配置文件設(shè)置。創(chuàng)建項(xiàng)目時(shí)會(huì)自動(dòng)分配端口號(hào)并將其保存在此文件上。

5、運(yùn)行應(yīng)用

單擊 Visual Studio 調(diào)試工具欄中的“開(kāi)始調(diào)試”按鈕(綠色箭頭)以運(yùn)行應(yīng)用,查看運(yùn)行效果。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

打開(kāi)瀏覽器開(kāi)發(fā)者工具(F12),您會(huì)注意到所有標(biāo)準(zhǔn)的 CSS 和 JavaScript 文件都下載到了客戶端,并通過(guò) Web Sockets 建立了一個(gè) SignalR 連接。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

使用VS 2022快速創(chuàng)建Blazor WebAssembly應(yīng)用

1、在ZeroBlazor解決方案中添加新項(xiàng)目

2、添加新項(xiàng)目中搜索“Blazor WebAssembly 應(yīng)用”進(jìn)行創(chuàng)建

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

3、框架選擇“.NET 7.0 (標(biāo)準(zhǔn)期限支持)”,然后單擊“創(chuàng)建”按鈕

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

4、應(yīng)用程序文件夾和文件介紹

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

  • Program.cs 是啟動(dòng)服務(wù)器以及在其中配置應(yīng)用服務(wù)和中間件的應(yīng)用的入口點(diǎn)。它創(chuàng)建了WebAssemblyHostBuilder并啟動(dòng)它。

  • App.razor是應(yīng)用程序的啟動(dòng)路由頁(yè)面,里面規(guī)定了默認(rèn)Layout。

  • Pages 存放應(yīng)用程序的 Razor 頁(yè)面,每個(gè) Razor 頁(yè)面都對(duì)應(yīng)著一個(gè)組件,用于呈現(xiàn)應(yīng)用程序的 UI 元素。

  • Shared 存放公共 Razor 頁(yè)面或組件之間共享的組件、布局和其他視圖元素等。

  • wwwroot 該文件夾包含靜態(tài)文件,例如圖片、字體、圖標(biāo)、CSS 和 JavaScript 文件等。

  • BlazorWasmSample.csproj 應(yīng)用程序的項(xiàng)目文件,用于指定依賴項(xiàng)、編譯選項(xiàng)和發(fā)布選項(xiàng)等。

  • Properties 目錄中的 launchSettings.json 文件為本地開(kāi)發(fā)環(huán)境定義不同的配置文件設(shè)置。創(chuàng)建項(xiàng)目時(shí)會(huì)自動(dòng)分配端口號(hào)并將其保存在此文件上。

5、運(yùn)行應(yīng)用

單擊 Visual Studio 調(diào)試工具欄中的“開(kāi)始調(diào)試”按鈕(綠色箭頭)以運(yùn)行應(yīng)用,查看運(yùn)行效果。

正如我們看到的一樣Blazor WebAssembly應(yīng)用程序首次啟動(dòng)會(huì)比較慢,因?yàn)樗鼤?huì)在客戶端下載應(yīng)用程序及其所有依賴項(xiàng),你可以F12打開(kāi)瀏覽器開(kāi)發(fā)者工具,會(huì)看到客戶端下載了大量dll文件(只會(huì)在第一次瀏覽時(shí)下載)。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

以上所有dll文件只會(huì)在第一次請(qǐng)求時(shí)下載,然后它們會(huì)被緩存在瀏覽器中。如果你再次刷新頁(yè)面,將會(huì)看到這此加載下載的文件很少,而且運(yùn)行時(shí)不再需要網(wǎng)絡(luò),這樣在斷網(wǎng)環(huán)境或沒(méi)有網(wǎng)絡(luò)的離線下,仍然可以運(yùn)行,再次運(yùn)行時(shí)的情況:

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

課外知識(shí)拓展

WebAssembly是什么?

WebAssembly(縮寫(xiě)為“Wasm”)是一種開(kāi)放標(biāo)準(zhǔn),旨在提供一種高效且可移植的二進(jìn)制格式,以運(yùn)行跨平臺(tái)的應(yīng)用程序。與 JavaScript 不同,WebAssembly 不是一種高級(jí)腳本語(yǔ)言,而是一種可移植的二進(jìn)制格式(低級(jí)指令集),它的主要目的是提供一種更高效和可移植的編程語(yǔ)言,以便于在 Web 平臺(tái)上進(jìn)行運(yùn)行??梢詫⑵渌幊陶Z(yǔ)言(如C 、C#、Golang、Rust等)的代碼編譯成 WebAssembly格式,可以實(shí)現(xiàn)比 JavaScript 更高效的運(yùn)行速度,并且減少了代碼大小和網(wǎng)絡(luò)帶寬的消耗。與傳統(tǒng)的瀏覽器插件相比,WebAssembly 還具有更好的性能和更高的安全性。

目前,WebAssembly 可以在主流的 Web 瀏覽器(如 Chrome、Firefox、Safari 和 Edge)上運(yùn)行,并且被越來(lái)越多的 Web 應(yīng)用程序所采用。WebAssembly 還提供了與 JavaScript 相互操作的功能,使得開(kāi)發(fā)人員可以輕松地在現(xiàn)有的 Web 應(yīng)用程序中使用 WebAssembly。

SPA 單頁(yè)面應(yīng)用程序是什么?

SPA(single-page application),翻譯過(guò)來(lái)就是單頁(yè)應(yīng)用SPA是一種網(wǎng)絡(luò)應(yīng)用程序或網(wǎng)站的模型,它通過(guò)動(dòng)態(tài)重寫(xiě)當(dāng)前頁(yè)面來(lái)與用戶交互,這種方法避免了頁(yè)面之間切換打斷用戶體驗(yàn)在單頁(yè)應(yīng)用中,所有必要的代碼(HTML、JavaScriptCSS)都通過(guò)單個(gè)頁(yè)面的加載而檢索,或者根據(jù)需要(通常是為響應(yīng)用戶操作)動(dòng)態(tài)裝載適當(dāng)?shù)馁Y源并添加到頁(yè)面頁(yè)面在任何時(shí)間點(diǎn)都不會(huì)重新加載,也不會(huì)將控制轉(zhuǎn)移到其他頁(yè)面舉個(gè)例子來(lái)講就是一個(gè)杯子,早上裝的牛奶,中午裝的是開(kāi)水,晚上裝的是茶,我們發(fā)現(xiàn),變的始終是杯子里的內(nèi)容,而杯子始終是那個(gè)杯子結(jié)構(gòu)如下圖(我們熟知的JS框架如react,vue,angular,ember都屬于SPA)。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

Blazor UI組件庫(kù)推薦

值得推薦的Blazor UI組件庫(kù)??

ASP.NET Core Blazor入門到實(shí)戰(zhàn)教程

公眾號(hào)回復(fù):Blazor實(shí)戰(zhàn),獲取教程鏈接?????。

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

Blazor相關(guān)學(xué)習(xí)教程

  • 微軟官方教程ASP.NET Core Blazor??:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/?view=aspnetcore-7.0

  • 全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門??:https://www.cnblogs.com/Can-daydayup/p/17157143.html

  • Blazor Server和WebAssembly應(yīng)用程序入門指南??:https://www.cnblogs.com/ittranslator/p/a-beginners-guide-to-blazor-server-and-webassembly-applications.html

  • Blazor教程 – 生成第一個(gè) Blazor 應(yīng)用??:https://dotnet.microsoft.com/zh-cn/learn/aspnet/blazor-tutorial/run

  • 生成Blazor待辦事項(xiàng)列表應(yīng)用??:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/tutorials/build-a-blazor-app?view=aspnetcore-6.0&pivots=server

  • 使用Blazor的ASP.NET Core SignalR??:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/tutorials/build-a-blazor-app?view=aspnetcore-6.0&pivots=server

  • 使用 Blazor 構(gòu)建 Web 應(yīng)用程序??:https://learn.microsoft.com/zh-cn/training/paths/build-web-apps-with-blazor/?view=aspnetcore-6.0

參考文章

微軟官方教程ASP.NET Core Blazor:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/?view=aspnetcore-7.0

Blazor VS 傳統(tǒng)Web應(yīng)用程序:https://zhuanlan.zhihu.com/p/343079368

Blazor Server 和 WebAssembly 應(yīng)用程序入門指南:https://www.cnblogs.com/ittranslator/p/a-beginners-guide-to-blazor-server-and-webassembly-applications.html

什么是SPA單頁(yè)面應(yīng)用:https://www.cnblogs.com/xiaozhuangge/p/15396609.html

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

  • 免費(fèi)開(kāi)源的程序員簡(jiǎn)歷模板

  • 了解作者&獲取更多學(xué)習(xí)資料

  • 加入DotNetGuide技術(shù)交流群

  • 程序員常用的開(kāi)發(fā)工具軟件推薦

  • C#/.NET/.NET Core推薦學(xué)習(xí)書(shū)籍

  • C#/.NET/.NET Core學(xué)習(xí)視頻匯總

  • .NET/.NET Core ORM框架資源匯總

  • ASP.NET Core開(kāi)發(fā)者學(xué)習(xí)指南路線圖

  • C#/.NET/.NET Core優(yōu)秀項(xiàng)目框架推薦

  • C#/.NET/.NET Core面試寶典(基礎(chǔ)版)

  • C#/.NET/.NET Core學(xué)習(xí)、工作、面試指南

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

學(xué)習(xí)是一個(gè)永無(wú)止境的過(guò)程,你知道的越多,你不知道的也會(huì)越多,在有限的時(shí)間內(nèi)堅(jiān)持每天多學(xué)一點(diǎn),你一定能成為你想要成為的那個(gè)人。不積跬步無(wú)以至千里,不積小流無(wú)以成江河!?。?/strong>

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

See you next good day

全面的ASP.NET Core Blazor簡(jiǎn)介和快速入門(asp.net core razor)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部
应城市| 仁寿县| 庆元县| 淮安市| 万盛区| 乐至县| 遵义县| 行唐县| 宁夏| 甘德县| 马尔康县| 岚皋县| 荆州市| 广汉市| 河池市| 余江县| 浙江省| 连云港市| 沅陵县| 南通市| 沧源| 连城县| 旬阳县| 长兴县| 若羌县| 稷山县| 阿克苏市| 白山市| 大城县| 武冈市| 石林| 五常市| 定日县| 宁波市| 孝感市| 潜山县| 牙克石市| 广河县| 神农架林区| 井研县| 沅陵县|