.NET 帮助

Blazor .NET 8 (开发者教程)

发布 2023年十二月24日
分享:

随着.NET 8.0的发布,全栈Web UI框架Blazor有了长足的发展。这次更新带来了各种功能和增强功能,使开发人员能够使用 C# 和 .NET 来构建交互式的现代网络应用程序。该更新带来了各种功能和增强功能,使开发人员能够使用 C# 和 .NET 构建交互式现代网络应用程序。

在本文中,我们将深入探讨 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 网络应用程序模板介绍

.NET 8.0引入了Blazor Web App模板,这是一个统一的起点,结合了Blazor Server和Blazor WebAssembly托管模型的优势。

该模板集成了静态服务器渲染、流式渲染、增强导航和表单处理等新功能。项目模板的合并简化了开发流程。

为Blazor网络应用程序精简JS初始化程序

传统的JS初始化程序已被一组新的Blazor Web应用程序初始化程序所取代,可更好地控制任务,如自定义加载过程、日志级别和其他选项。这一改变增强了开发体验,并与.NET 8.0中统一托管模型的目标相一致。

拆分预演和整合指南

为了提供更有针对性的内容,预呈现和集成指南已被拆分为不同的文章。这一改动旨在简化理解和实施,使开发人员更容易遵循最佳实践。

Blazor Web 应用程序中的轻松状态持久性

Blazor Web应用程序现在可自动持久化在预渲染过程中创建的任何已注册应用程序级状态。这样就无需使用持久化组件状态标签助手,从而简化了持久化和读取组件状态的过程。

增强表单处理和模型绑定

.NET 8.0为Blazor组件带来了改进的表单处理功能,包括模型绑定和数据验证。该框架尊重数据契约属性,为开发人员提供了更多关于表单数据如何绑定到模型的控制。防伪造支持的引入为表单提交增加了一层额外的安全性。

增强导航和表单处理功能

Blazor .NET 8.0中的静态服务器渲染对页面导航和表单处理进行了重大改进。传统上,在导航或提交表单时会刷新整个页面。

有了增强的导航功能,Blazor会拦截请求并执行获取请求,将渲染的响应内容无缝添加到浏览器的DOM中。这避免了整个页面的刷新,使页面加载更快、更流畅,同时保留了更多的页面状态。

当使用 Blazor 脚本时,默认情况下会启用增强导航功能。 (blazor.web.js) 加载,并可为特定表单选择启用。新的增强型导航应用程序接口允许开发人员以编程方式刷新当前页面,从而为用户体验提供更多控制。

流渲染

Blazor .NET 8.0引入了流式渲染(streaming rendering)功能,该功能非常强大,可增强执行长期异步任务的页面的用户体验。通过流式渲染,页面可以在异步操作进行时渲染占位符内容。

一旦完成,更新的内容就会在同一响应连接上以流式传输方式传送到客户端,并无缝地修补到 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中,"SectionOutlet "和 "SectionContent "组件的引入彻底改变了内容管理。这些组件允许开发人员在布局中定义占位符,然后由特定页面填充。

各部分可使用唯一名称或对象 ID 进行引用,为构建动态网页布局提供了灵活性和可重用性。

错误页面支持

.NET8.0中的Blazor Web应用程序现在拥有强大的错误页面支持,允许开发人员定义自定义错误页面,与ASP.NET Core异常处理中间件一起使用。

默认错误页面 (Components/Pages/Error.razor) 提供一致的用户体验。即使启用了交互功能,错误页面也会以静态服务器组件的形式呈现,从而确保异常情况下的稳定性。

QuickGrid 从试验到必需

高性能网格组件 QuickGrid 已从实验状态升级为 .NET 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` 为零。

这使开发人员能够创建更直观、更友好的用户界面。

电路管理和信号监控

Blazor .NET 8.0 引入了在没有剩余交互式服务器组件时关闭电路的功能。这一优化释放了服务器资源,提高了整体性能。

此外,开发人员现在可以使用 CircuitHandler 上的 CreateInboundActivityHandler 方法监控服务器端应用程序中的入站电路活动。

使用 Jiterpreter 实现更快的运行性能

Jiterpreter 是 .NET 8 中的一项新的运行时功能,它引入了部分 Just-in-Time 功能。 (JIT) 在 WebAssembly 上运行时支持编译。这将提高运行时性能,为用户与 Blazor WebAssembly 应用程序交互提供更流畅的体验。

提前 (AOT) SIMD 和异常处理

Blazor WebAssembly的AOT编译现在默认使用WebAssembly固定宽度SIMD和WebAssembly异常处理。这一战略性选择大大提高了运行时性能,提供了更高效、响应更快的用户体验。

Webcil 打包实现网络友好部署

Blazor WebAssembly现在使用Webcil,这是一种.NET程序集的网络友好包装。这确保了在阻止下载或使用.dll文件的环境中的兼容性,解决了部署难题。Blazor WebAssembly 应用程序默认启用 Webcil。

Blazor WebAssembly 调试改进

在.NET 8中,调试Blazor WebAssembly应用程序变得更加简便。调试器现在可以从 Visual Studio 偏好设置中的配置位置下载符号数据,从而增强了使用 NuGet 软件包的应用程序的调试体验。

此外,现在还支持在 Firefox 中进行调试,需要对远程调试进行配置,并通过 .NET WebAssembly 调试代理进行连接。

内容安全政策 (CSP) 兼容性

.NET8.0中的Blazor WebAssembly无需在指定内容安全策略时启用不安全评估脚本源。 (CSP).该增强功能简化了安全配置,使 Blazor WebAssembly 应用程序更容易执行稳健的 CSP。

在组件生命周期之外处理异常

ComponentBase.DispatchExceptionAsync "的引入允许开发人员处理Razor组件生命周期调用堆栈外抛出的异常。

该功能允许组件代码将异常视为生命周期方法异常,从而确保更一致、更可控的错误处理机制。

钢铁套房介绍

Iron Suite由 Iron Software 开发,包含七个有用的库,使开发人员能够构建功能强大的 Blazor 应用程序。

如果您正在寻找添加 PDF 功能、Excel 或 CSV 文件功能、图像到文本识别、条形码和 QR 码生成与读取以及压缩或提取文件的功能,请使用 Iron Software 的 Blazor 应用程序库。

Iron Suite是使用Blazor WebAssembly托管模式或任何微软技术(包括Blazor WebAssembly应用程序、Blazor服务器应用程序、ASP.NET Core MVC应用程序、ASP.NET核心WEB API或任何版本的.NET运行时构建的任何应用程序)进行网络开发的最佳选择。

钢铁套房图书馆

  1. IronPDF 用于无缝创建、操作和提取PDF文件中的数据。

IronPDF的突出功能是转换 HTML 转 PDF完整保留布局和样式。它非常适合从网页内容生成PDF,包括报告、发票和文档。您可以将HTML文件、URL或HTML字符串转换为PDF文件。

    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");
        }
    }
    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");
        }
    }
Imports IronPdf

	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim renderer = New ChromePdfRenderer()

			' 1. Convert HTML String to PDF
			Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
			Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
			pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

			' 2. Convert HTML File to PDF
			Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
			Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
			pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

			' 3. Convert URL to PDF
			Dim url = "http://ironpdf.com" ' Specify the URL
			Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
			pdfFromUrl.SaveAs("URLToPDF.pdf")
		End Sub
	End Class
VB   C#
  1. IronOCR (光学字符识别) 用于从扫描图像或 PDF 文件中提取文本,提高数据的可访问性。

  2. IronXL 用于高效读取、编写和操作 Excel 电子表格。

  3. IronBarcode 用于生成和读取各种格式的条形码,方便数据编码和检索。

  4. IronQR 利用机器学习技术创建和读取 QR 码

  5. IronWebscraper 用于从网站中提取有价值的数据,增强网络应用程序的功能。

  6. IronZIP 用于压缩和解压文件,简化数据存储和传输过程。

Blazor .NET 8(开发人员教程):图 2

钢铁套房的独特之处

1.只需支付以下费用即可使用整个套件 仅两个单品使您的投资价值最大化。

2.无论您是在 Windows、macOS 还是 Linux 上工作,Iron Suite 都能确保跨系统的兼容性。 (险些) 所有平台。

3.体验从下载到生产的快速过程,只需 5 分钟即可投入运行。

4.访问所有功能的详细文档和示例,在整个开发过程中提供清晰的指导。

5.专门的工程师团队全天候 24 小时为您解答任何疑问,确保您获得顺畅的开发体验。

6.Iron Suite 提供 30 天无条件退款政策,让您放心使用。

结论

总之,Blazor .NET 8.0 的发布标志着使用 C# 和 .NET 进行全栈 Web UI 开发的一个重要里程碑。

新的渲染模式、Blazor Web App 模板、增强的导航功能以及大量其他功能的引入,使其成为旨在创建现代交互式 Web 应用程序的开发人员的不二之选。

Blazor .NET 8.0还引入了增强的表单处理、流式渲染和注入键控服务等引人注目的功能,为开发增加了深度和灵活性。

Iron Software公司推出的Iron Suite是对Blazor功能的补充,为.NET生态系统中的文档相关任务提供了一个全面的工具包。

Blazor .NET 8.0使开发人员能够利用Iron Suite创建健壮且功能丰富的网络应用程序。

强大的功能、更高的性能和活跃的开发者社区的支持,使Blazor成为现代网络开发的理想选择。

< 前一页
C# KeyValuePair(开发人员工作原理)
下一步 >
BinaryKits.Zpl.Viewer(开发者如何使用)

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,840,061 查看许可证 >