跳至頁尾內容
開發者更新

Blazor .NET 8 (開發者教程)

Blazor,這個全棧Web UI框架,隨著.NET 8.0的發布已經有了顯著的演變。這次更新帶來了各種功能和增強,讓開發者可以使用C#和.NET構建互動和現代化的Web應用程式。

在本文中,我們將深入探討Blazor .NET 8.0的關鍵方面,探索新的渲染模式、專案模板、工具改進等等。

Blazor .NET 8(開發者教程):圖1

了解Blazor的渲染模式

Blazor在.NET 8.0中引入了三種渲染模式:

  1. 靜態伺服器渲染:針對最佳效能生成靜態HTML。
  2. 互動伺服器渲染:利用伺服器端ASP.NET Core運行時進行初始渲染與互動。
  3. 互動WebAssembly渲染:在使用者端利用.NET WebAssembly運行時進行後續渲染與互動。

多功能的互動自動渲染

其中一個亮點是互動自動渲染模式,它將內容的伺服器端渲染與使用.NET WebAssembly運行時的使用者端渲染與互動結合起來。這提升了應用啟動速度,使其成為開發者的誘人選擇。

Blazor Web App模板的介紹

.NET 8.0引入了Blazor Web App模板,這是一個統一的起始點,結合了Blazor伺服器和Blazor WebAssembly託管模型的優勢。

這個模板包含了新的特性,如靜態伺服器渲染、串流渲染、增強的導航和表單處理。 專案模板的整合簡化了開發過程。

精簡的Blazor Web App的JS初始化

傳統的JS初始化已被Blazor Web App的新集合取代,提供對自訂載入過程、日誌級別和其他選項的更好控制。 這一變更增強了開發體驗,並符合在.NET 8.0中統一託管模型的目標。

分割預渲染與整合指南

為了提供更有針對性的覆蓋,預渲染和整合的指南已分為單獨的文章。 此變更旨在簡化理解和實施,使開發者更易於遵循最佳實踐。

Blazor Web App中輕鬆的狀態持久化

Blazor Web App現在自動持久化預渲染期間建立的任何註冊的應用層級狀態。 這消除了對於維持組件狀態標記助手的需求,簡化了持久化和讀取組件狀態的過程。

增強的表單處理和模型綁定

.NET 8.0為Blazor組件帶來了改進的表單處理功能,包括模型綁定和資料驗證。 該框架遵循資料契約屬性,讓開發者能夠更好地控制表單資料是如何綁定到模型的。 反偽造支援的引入,為表單提交新增了額外的安全層。

增強的導航和表單處理

Blazor .NET 8.0中的靜態伺服器渲染帶來了頁面導航和表單處理的顯著改進。 傳統上,在導航或提交表單時會發生整頁刷新。

利用增強的導航功能,Blazor攔截請求並執行抓取請求,無縫地將渲染的響應內容修補到瀏覽器DOM中。 這避免了整頁刷新,從而提高了頁面載入速度和流暢性,同時保持更多的頁面狀態。

當Blazor腳本(blazor.web.js)載入時,增強的導航功能會自動啟用,並可選擇性地為特定表單啟用。 新的增強導航API允許開發者以編程方式刷新當前頁面,提供對使用者體驗的更多控制。

串流渲染

Blazor .NET 8.0引入了串流渲染,這是一個強大的功能,提升了執行長時間異步任務的頁面的使用者體驗。 利用串流渲染,頁面可以在異步操作進行中渲染佔位符內容。

完成後,更新的內容通過相同的響應連接傳流到使用者端,無縫嵌入到DOM中。 這種方法確保應用的主要佈局快速渲染,而頁面在內容可用時立即更新。

鍵控服務注入

Blazor現在支援使用Inject屬性注入鍵控服務。 鍵允許在依賴注入場景中對服務註冊和消費進行作用域設定。

新的InjectAttribute.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中,SectionContent組件的引入革新了內容管理。 這些組件允許開發者在佈局中定義佔位符,之後由特定頁面填充。

部分可以使用唯一名稱或物件ID來引用,提供了構建動態Web佈局的靈活性和可重用性。

錯誤頁面支持

Blazor Web Apps在.NET 8.0中現在擁有強大的錯誤頁面支持,允許開發者為ASP.NET Core異常處理中介軟體定義自定義錯誤頁面。

預設錯誤頁面(Components/Pages/Error.razor)提供了一致的使用者體驗。 即使在啟用互動時,錯誤頁面仍作為靜態伺服器組件渲染,確保在異常情境中的穩定性。

QuickGrid從實驗變為必要

QuickGrid,這個高效能的網格組件,從實驗狀態畢業,成為.NET 8中Blazor框架的一個不可或缺的部分。

此組件簡化了表格資料的顯示,同時提供強大的功能,如排序、篩選、分頁和虛擬化。 了解更多關於QuickGrid在ASP.NET Core Blazor QuickGrid文件中的內容。

命名元素的路由

Blazor .NET 8.0引入了用於使用者端路由的支持,以利用標準URL片段直接導航到頁面上的特定HTML元素。 通過使用標準id屬性為HTML元素指定識別符,當URL片段與元素標識符匹配時,Blazor會無縫地滾動到該元素。

根級別的流傳值

Blazor .NET 8.0通過引入可以為整個組件層級註冊的根級別流傳值來增強流傳值。 現在支援命名的流傳值和更新通知的訂閱,提供更大的靈活性和控制。

虛擬化空內容

在Virtualize組件上新的ItemsProviderResult<t>.TotalItemCount為零時提供內容。

這讓開發者可以建立更直觀和使用者友好的介面。

電路管理和SignalR監控

Blazor .NET 8.0引入了在沒有剩餘皆為互動伺服器組件的情況下關閉電路的功能。 此優化釋放了伺服器資源並增強了整體效能。

此外,開發者現在可以在伺服器端應用中使用CreateInboundActivityHandler方法監控入站電路活動。

使用Jiterpreter提升運行時效能

新的運行時功能Jiterpreter在.NET 8中引入,為WebAssembly的運行提供部分即時(JIT)編譯支援。 此功能提升了運行時效能,為使用Blazor WebAssembly應用程式的使用者提供了更流暢的體驗。

提前編譯(AOT)SIMD和異常處理

Blazor WebAssembly的AOT編譯現已預設使用WebAssembly固定寬度SIMD和WebAssembly異常處理。 此策略選擇顯著提升了運行時效能,提供了更高效和響應的使用者體驗。

Webcil打包以方便Web部署

Blazor WebAssembly現使用Webcil,這是一種.NET程式集的網頁友好型打包形式。 這確保在阻止下載或使用.dll文件的環境中仍然保持相容性,解決了部署挑戰。 Webcil對Blazor WebAssembly應用預設啟用。

Blazor WebAssembly除錯改進

在.NET 8中除錯Blazor WebAssembly應用程式變得更為順暢。除錯器現在從Visual Studio偏好設定中配置的位置下載符號資料,增強了利用NuGet包的應用的除錯體驗。

此外,現在在Firefox中支援除錯,需配置遠端除錯並通過.NET WebAssembly除錯代理進行連接。

內容安全性策略(CSP)相容性

Blazor WebAssembly在.NET 8.0中消除了在指定內容安全性策略(CSP)時啟用unsafe-eval腳本源的需求。 這一增強簡化了安全性配置,使得為Blazor WebAssembly應用程式強制實施強大的CSP變得更加簡單。

在組件生命週期之外處理異常

ComponentBase.DispatchExceptionAsync的引入允許開發者處理在Razor組件生命週期調用堆棧之外拋出的異常。

此功能允許組件的程式碼將異常視為生命週期方法異常,確保更一致和受控的錯誤處理機制。

介紹Iron Suite

Iron Suite由Iron Software開發,由若干有用的程式庫組成,讓開發者能夠構建強大的Blazor應用。它提供增強PDF功能、Excel或CSV文件功能、影像文字識別、條碼和QR碼生成與讀取、以及壓縮或提取文件能力的解決方案。

Iron Suite是Blazor WebAssembly託管模型或任何Microsoft技術,不論是Blazor WebAssembly應用,Blazor伺服器應用,ASP.NET Core MVC應用,ASP.NET Core Web API,或任何在.NET運行時構建的應用,包括任何版本,網頁開發的完美選擇。

Iron Suite程式庫

  1. IronPDF用于建立、操控和從PDF檔案中無縫提取資料。

IronPDF的一個突出功能是將HTML轉換為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");
    }
}
```
  1. IronOCR(光學字元識別)用於從掃描影像或PDF中提取文字,增強資料可存取性。
  2. IronXL用於高效地讀取、寫入和操作Excel電子表格。
  3. IronBarcode用於生成和讀取各種格式的條碼,便利資料編碼和檢索。
  4. IronQR用於使用機器學習建立和讀取QR碼。
  5. IronWebScraper用於從網站提取有價值的資料,增強基於網路的應用程式能力。
  6. IronZIP用於壓縮和解壓文件,簡化資料儲存和傳輸過程。

Blazor .NET 8(開發者教程):圖2

Iron Suite的獨特之處

  1. 以僅需兩個單個產品的價格獲取整個套件,最大化您的投資價值。
  2. 不管您是在Windows、macOS還是Linux上工作,Iron Suite都確保相容於(幾乎)所有平台。
  3. 從下載到生產的過程中體驗快速旅程,只需5分鐘即可啟動並運行。
  4. 存取詳盡的文件和所有功能的範例,提供整個開發過程中的清晰度和指導。
  5. 一支專門的工程師團隊24/5為您提供幫助,確保順利的開發體驗。
  6. Iron Suite提供30天的無條件退款政策,給您信心和安心。

結論

總之,Blazor .NET 8.0的發布標誌著全棧Web UI開發中使用C#和.NET的演化的重要里程碑。

新渲染模式、Blazor Web App模板的引入、增強的導航功能和大量其他功能使其成為有志於建立現代化和互動Web應用開發者的引人注目的選擇。

Blazor .NET 8.0還推出了引人入勝的功能,如增強的表單處理、串流渲染以及注入鍵控服務的能力,為開發增添了深度和靈活性。

Iron Software推出的Iron Suite補充了Blazor的能力,為.NET生態系統中的文件相關任務提供了全面的工具包。

Blazor .NET 8.0藉助Iron Suite賦予開發者建立強大且功能豐富的Web應用程式的能力。

強大功能的結合、性能的提升以及一個充滿活力的開發者社群的支持,使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應用程式,這些對於構建強大的網頁應用程式開發是必不可少的。

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範本如何簡化開發?

Blazor Web App範本在.NET 8.0中統一了Blazor Server和Blazor WebAssembly模型,通過增強的導航和表單處理簡化了開發過程。

Iron Software的工具套件如何補充Blazor .NET 8.0?

Iron Software的工具套件通過提供全面的文件相關功能來補充Blazor .NET 8.0,增強了該框架在處理複雜文件處理任務方面的能力。

在Blazor網頁應用程式中使用IronPDF有什麼好處?

IronPDF提供強大的PDF生成和操作功能,使其成為開發需要強大文件處理功能的Blazor網頁應用程式的理想選擇。

Blazor .NET 8.0在除錯方面有哪些改進?

Blazor .NET 8.0改進了WebAssembly應用程式的除錯,具有增強的符號資料下載和對Firefox的支持,從而簡化了除錯過程。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話