Blazor .NET 8(開發者教學)
Blazor 是全堆疊網頁 UI 框架,隨著 .NET 8.0 的釋出而大幅演進。此更新帶來了各種功能和增強功能,使開發人員能夠使用 C# 和 .NET 建立互動式的現代網路應用程式。
在本文中,我們將深入探討 Blazor .NET 8.0 的關鍵方面,探索新的渲染模式、項目模板、工具改進等。

瞭解 Blazor 渲染模式
.NET 8.0 中的 Blazor 引入了三種渲染模式:
1.靜態伺服器呈現:產生靜態 HTML 以獲得最佳效能。 2.互動式伺服器呈現:利用伺服器端 ASP.NET Core 執行時間進行初始呈現和互動。 3.互動式 WebAssembly 渲染:利用用戶端的 .NET WebAssembly 運行時間進行後續渲染和互動。
多用途互動式自動渲染
其中一個重點是 Interactive Auto 渲染模式,它結合了伺服器端的內容渲染,以及使用 .NET WebAssembly runtime 在客戶端進行的後續渲染和互動。這會帶來更快的應用程式啟動體驗,使其成為吸引開發人員的選項。
Blazor Web 應用程式範本簡介
.NET 8.0 引入了 Blazor Web App 模板,這是一個統一的起點,結合了 Blazor Server 和 Blazor WebAssembly 主機模型的優點。
本範本整合了靜態伺服器渲染、串流渲染、增強導航和表單處理等新功能。 專案範本的整合簡化了開發流程。
Blazor Web 應用程式的簡化 JS 初始化程序。
傳統的 JS 初始化程式已被 Blazor Web Apps 的一套新程式取代,提供更好的控制任務,例如自訂載入程序、日誌層級和其他選項。 這項變更可提升開發經驗,並符合 .NET 8.0 統一託管模型的目標。
分割預演與整合指南
為了提供更有針對性的涵蓋範圍,有關預演和整合的指引已被分割成不同的文章。 此變更旨在簡化理解與執行,讓開發人員更容易遵循最佳實務。
Blazor Web 應用程式中輕鬆的狀態持續。
Blazor Web Apps 現在可自動持久化在預繪製過程中建立的任何已註冊應用程式層級狀態。 這樣就不需要使用 Persist Component State Tag Helper,簡化了持久化和讀取元件狀態的流程。
增強的表單處理和模型綁定
.NET 8.0 為 Blazor 元件帶來了改進的表單處理功能,包括模型綁定和資料驗證。 該架構尊重資料契約屬性,讓開發人員更能控制表單資料與模型的綁定方式。 防偽支援的引入為表單提交增加了一層額外的安全性。
強化導航及表單處理
Blazor .NET 8.0 中的靜態伺服器渲染在頁面導覽和表單處理方面引入了顯著的改進。 傳統上,瀏覽或提交表單時會刷新整個頁面。
透過增強的導覽功能,Blazor 會攔截請求並執行擷取請求,將呈現的回應內容無縫修補到瀏覽器 DOM 中。 這樣可以避免整頁刷新,使頁面載入更快、更順暢,同時保留更多的頁面狀態。
在載入 Blazor script (blazor.web.js) 時,預設會啟用增強導覽功能,也可針對特定表單選擇啟用。 新的增強導覽 API 允許開發人員以程式化的方式刷新目前頁面,提供更多的使用者體驗控制。
串流渲染
Blazor .NET 8.0 引入了流式渲染,這是一項強大的功能,可增強執行長時間異步任務的頁面的使用者體驗。 透過串流式呈現,網頁可以在進行異步作業時呈現占位符內容。
完成後,更新的內容會在相同的回應連線上串流到客戶端,並無縫地修補到 DOM 中。 此方法可確保應用程式的主要版面能快速渲染,並在內容可用時立即更新頁面。
關鍵服務注入
Blazor 現在支援使用 Inject 屬性注入關鍵服務。 關鍵詞能夠在依賴注入情境中為服務註冊和消耗設定範圍。
新的 InjectAttribute.Key 屬性允許開發人員指定要注入的服務的 key,為服務範圍設定開啟了新的可能性。
存取 HttpContext 作為層疊參數。
Blazor .NET 8.0 引入了從靜態伺服器元件以層遞式參數存取目前 HttpContext 的功能。 此增強功能對於檢查和修改標頭或其他與 HTTP 上下文相關的屬性特別有用。
在 ASP.NET Core 以外渲染 Razor 元件。
Blazor .NET 8.0 開啟了在 HTTP 請求上下文之外渲染 Razor 元件的可能性。這種靈活性讓開發人員可以獨立於 ASP.NET Core 主機環境,直接將 Razor 元件渲染為字串或串流。
此功能對於需要產生 HTML 片段(如電子郵件或靜態網站內容)的場景尤其方便。
部門支援
在 Blazor .NET 8.0 中,SectionOutlet 和 SectionContent 元件的引入為內容管理帶來了革命性的變化。 這些元件可讓開發人員在版面中定義佔位符,之後再由特定頁面填入。
可使用獨特的名稱或物件 ID 來參照各區段,提供建構動態網頁佈局的彈性與重複使用性。
錯誤頁面支援
.NET 8.0 中的 Blazor Web Apps 現在擁有強大的錯誤頁面支援,允許開發人員定義自訂錯誤頁面,以便與 ASP.NET Core 異常處理中間件一起使用。
預設錯誤頁面 (Components/Pages/Error.razor) 提供一致的使用者體驗。 即使啟用互動功能,錯誤頁面仍會以靜態伺服器元件的形式呈現,以確保異常情況下的穩定性。
QuickGrid 從實驗到必備。
QuickGrid,高性能網格元件,已經從實驗狀態畢業,成為 .NET Framework 8 中 Blazor 框架不可或缺的一部分。
此元件可簡化表格資料的顯示,同時提供排序、篩選、分頁和虛擬化等強大功能。 在 ASP.NET Core Blazor QuickGrid 文件中了解更多關於 QuickGrid 的資訊。
命名元素的路徑
Blazor .NET 8.0 引入了對用戶端路由的支援,可使用標準的 URL 片段直接導航到頁面上的特定 HTML 元素。 透過標準 id 屬性指定 HTML 元素的識別碼,當 URL 片段與元素識別碼相符時,Blazor 即會無縫捲動到該元素。
根層級層疊值
Blazor .NET 8.0 透過引入可為整個元件層級架構註冊的根層級階層疊層值,增強了疊層值的功能。 現在支援已命名的層疊值和更新通知的訂閱,提供更大的彈性和控制。
虛擬化空白內容
Virtualize 元件上新增的 EmptyContent 參數,可讓開發人員在元件載入且項目為空或 ItemsProviderResult.TotalItemCount 為零時提供內容。
這能讓開發人員建立更直覺、更友善的使用者介面。
電路管理與 SignalR 監控
Blazor .NET 8.0 引入了當沒有剩餘的互動伺服器元件時關閉電路的功能。 此最佳化可釋放伺服器資源並提昇整體效能。
此外,開發人員現在可以使用 CircuitHandler 上的 CreateInboundActivityHandler 方法在伺服器端應用程式中監控入站電路活動。
使用 Jiterpreter 提供更快的執行時效能。
Jiterpreter 是 .NET 8 中的一項新運行時功能,在 WebAssembly 上運行時引入了部分即時 (JIT) 編譯支援。 這將改善運行時的效能,為與 Blazor WebAssembly 應用程式互動的使用者提供更順暢的體驗。
Ahead-of-Time (AOT) SIMD 與異常處理。
Blazor WebAssembly 的 AOT 編譯現在預設使用 WebAssembly Fixed-width SIMD 和 WebAssembly Exception 處理。 這項策略性的選擇可大幅提升執行時的效能,提供更有效率、反應更迅速的使用者體驗。
Webcil Packaging for Web-Friendly Deployment
Blazor WebAssembly 現在使用 Webcil,這是一種對網頁友善的 .NET 程序集包裝。 這可確保在阻止下載或使用 .dll 檔案的環境中的相容性,解決部署上的挑戰。 Blazor WebAssembly 應用程式預設啟用 Webcil。
Blazor WebAssembly 調試改進
在 .NET 8 中,調試 Blazor WebAssembly 應用程式變得更加簡化。調試器現在可以從 Visual Studio 偏好設定中的配置位置下載符號資料,增強了使用 NuGet 套件的應用程式的調試體驗。
此外,Firefox 現在也支援除錯功能,需要設定遠端除錯,並透過 .NET WebAssembly 除錯代理進行連線。
內容安全政策 (CSP) 相容性
Blazor WebAssembly in .NET 8.0 在指定內容安全政策 (CSP) 時,無需啟用不安全評估腳本來源。 此增強功能簡化了安全性配置,使 Blazor WebAssembly 應用程式更容易執行穩健的 CSP。
在元件生命週期外處理異常。
ComponentBase.DispatchExceptionAsync 的引入允許開發人員處理在 Razor 元件的生命週期呼叫堆疊之外產生的異常。
此功能允許元件的程式碼將異常視為生命週期方法的異常,以確保更一致且更受控制的錯誤處理機制。
介紹 Iron Suite
由 Iron Software 開發的 Iron Suite 由幾個有用的函式庫組成,讓開發人員能夠建立功能強大的 Blazor 應用程式。它提供的解決方案可增加 PDF 功能、Excel 或 CSV 檔案功能、圖像轉文字辨識、條碼與 QR 代碼的產生與讀取,以及壓縮或擷取檔案的能力。
Iron Suite 是使用 Blazor WebAssembly 主機模式或任何微軟技術進行網頁開發的最佳選擇,包括 Blazor WebAssembly 應用程式、Blazor 伺服器應用程式、ASP.NET Core MVC APP、ASP.NET Core WEB API 或任何以 .NET runtime 建立的應用程式,不論是任何版本。
Iron Suite 的庫
1.IronPDF用於從 PDF 檔案中無縫建立、操作和擷取資料。
IronPdf 的突出功能是將 [HTML 轉換為 PDF](/tutorials/html-to-pdf/),並完全保留版面和樣式。 它非常適合從網頁內容產生 PDF,包括報告、發票和文件。 您可以將 HTML 檔案、URL 或 HTML 字串轉換成 PDF 檔案。
```csharp
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
```2.IronOCR(光學字元識別)用於從掃描影像或 PDF 中提取文字,增強資料的可讀性。 3.IronXL用於高效讀寫和操作 Excel 試算表。 4.IronBarcode用於產生和讀取各種格式的 BarCode,方便資料編碼和檢索。 5.使用機器學習來建立和讀取 QR 碼的 IronQR</a 6.IronWebScraper用於從網站擷取有價值的資料,增強網頁型應用程式的功能。 7.IronZIP用於壓縮和解壓縮檔案,簡化資料儲存和傳輸流程。

Iron Suite 的與眾不同之處
1.只需兩個單獨產品的價格即可使用整個套件,讓您的投資價值最大化。 2.無論您是在 Windows、macOS 或 Linux 上工作,Iron Suite 都能確保跨越(幾乎)所有平台的相容性。 3.體驗從下載到生產的快速過程,只需 5 分鐘即可上線運行。 4.存取所有功能的詳細說明文件和範例,在整個開發過程中提供清晰的說明和指導。 5.專門的工程師團隊全天候 24 小時為您提供協助,解答任何疑問,確保您擁有順暢的開發體驗。 6.Iron Suite 提供 30 天無問退費政策,讓您放心使用。
結論
總而言之,Blazor .NET 8.0 的發行,標誌著使用 C# 和 .NET 進行全堆疊網頁 UI 開發的演進過程中的一個重要里程碑。
引入新的渲染模式、Blazor Web App 模板、增強的導覽功能以及無數其他功能,使其成為旨在創建現代化互動式 Web 應用程式的開發人員令人信服的選擇。
Blazor .NET 8.0 還引入了一些引人注目的功能,例如增強表單處理、流式渲染以及注入鍵入服務的能力,增加了開發的深度和靈活性。
Iron Software 推出的 Iron Suite 補充了 Blazor 的功能,為 .NET 生態系統內的文件相關工作提供了全面的工具包。
Blazor .NET 8.0 讓開發人員能夠利用 Iron Suite 建立強大且功能豐富的網路應用程式。
Blazor 結合了強大的功能、更佳的效能,以及充滿活力的開發者社群的支持,使其成為現代網路開發的最佳選擇。
常見問題解答
如何在 Blazor 應用程式中將 HTML 轉換為 PDF?
您可以在 Blazor 應用程式中使用 IronPDF 的RenderHtmlAsPdf方法將 HTML 字串轉換為 PDF。此方法與 Blazor Server 和 Blazor WebAssembly 模型皆相容。
Blazor .NET 8.0 中有哪些新的渲染模式?
Blazor .NET 8.0 引入了三種新的渲染模式:靜態伺服器渲染、互動式伺服器渲染和互動式 WebAssembly 渲染,每種模式都旨在優化效能和互動性。
Iron Suite 如何增強 Blazor 應用程式的功能?
Iron Suite 透過提供 PDF 處理、OCR、Excel 操作和條碼生成等功能來增強 Blazor 應用程序,這些功能對於強大的 Web 應用程式開發至關重要。
Blazor .NET 8.0 中的互動式自動渲染模式是什麼?
Blazor .NET 8.0 中的交互式自動渲染模式結合了伺服器端渲染和客戶端交互,利用 .NET WebAssembly 運行時加快應用程式啟動速度。
如何改進 Blazor .NET 8.0 中的表單處理?
Blazor .NET 8.0 透過增強模型綁定、資料驗證和防偽支援改進了表單處理,使開發人員能夠更好地控製表單資料管理。
Blazor .NET 8.0 中串流渲染的目的是什麼?
Blazor .NET 8.0 中的串流渲染允許在長時間運行的非同步任務完成時初始渲染佔位符內容,從而透過無縫更新頁面來增強使用者體驗。
Blazor Web App 範本如何簡化開發流程?
.NET 8.0 中的 Blazor Web App 範本統一了 Blazor Server 和 Blazor WebAssembly 模型,透過增強的導航和表單處理簡化了開發過程。
Iron Software 的工具包如何與 Blazor .NET 8.0 互補?
Iron Software 的工具包透過提供全面的文件相關功能來補充 Blazor .NET 8.0,增強了此框架處理複雜文件處理任務的能力。
在 Blazor Web 應用程式中使用 IronPDF 有哪些好處?
IronPDF 提供強大的 PDF 生成和操作功能,是建立需要強大文件處理功能的 Blazor Web 應用程式的開發人員的理想選擇。
Blazor .NET 8.0 在調試方面有哪些改進?
Blazor .NET 8.0 透過增強符號資料下載並增加對 Firefox 的支持,改進了 WebAssembly 應用程式的調試,從而簡化了調試過程。







