在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
随着 .NET 8.0 的发布,全栈 Web UI 框架 Blazor 有了显著的发展。这次更新带来了各种功能和增强功能,使开发人员能够使用 C# 和 .NET 构建交互式的现代网络应用程序。
在本文中,我们将深入探讨Blazor .NET 8.0的关键方面,探索新的渲染模式、项目模板、工具改进等。
Blazor在.NET 8.0中引入了三种渲染模式:
静态服务器渲染: 生成静态HTML以获得最佳性能。
交互式服务器渲染: 利用服务器端 ASP.NET Core 运行时进行初始渲染和交互。
其中一个亮点是交互式自动渲染模式,它结合了基于服务器端的内容渲染以及使用 .NET WebAssembly 运行时在客户端进行的后续渲染和交互。这使得应用程序启动体验更快,对开发人员来说是一个有吸引力的选择。
.NET 8.0 引入了 Blazor Web App 模板,这是一个结合了 Blazor Server 和 Blazor WebAssembly 托管模型优势的统一起点。
此模板包含了新的功能,如静态服务器渲染、流式渲染、增强的导航和表单处理。 项目模板的整合简化了开发过程。
传统的JS初始化程序已被替换为新的Blazor Web应用程序集,提供了更好的控制权,例如自定义加载过程、日志记录级别和其他选项。 这一变化提升了开发体验,并与.NET 8.0中统一托管模型的目标保持一致。
为了提供更具针对性的覆盖,关于预渲染和集成的指南已被拆分成单独的文章。 此更改旨在简化理解和实施,使开发人员更易于遵循最佳实践。
Blazor Web 应用现在会自动保留在预渲染期间创建的任何已注册的应用级状态。 这消除了对持久组件状态标记助手的需求,简化持久化和读取组件状态的过程。
.NET 8.0 为 Blazor 组件带来了改进的表单处理功能,包括模型绑定和数据验证。 该框架尊重数据契约属性,为开发者提供更多控制,以便将表单数据绑定到模型。 防伪支持的引入为表单提交增加了额外的安全层。
Static server rendering in 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上下文相关的标头或其他属性。
Blazor .NET 8.0 开启了在 HTTP 请求上下文之外渲染 Razor 组件的可能性。这种灵活性允许开发人员在独立于 ASP.NET Core 托管环境的情况下,将 Razor 组件直接渲染为字符串或流。
此功能在需要生成HTML片段(例如电子邮件或静态网站内容)的场景中尤其方便。
在Blazor .NET 8.0中,引入了SectionOutlet
和SectionContent
组件,彻底改变了内容管理。 这些组件允许开发者在布局中定义占位符,之后由特定页面填充。
可以使用唯一的名称或对象ID来引用部分,从而在构造动态网页布局时提供灵活性和可重用性。
Blazor Web 应用程序在 .NET 8.0 中现在拥有强大的错误页面支持,允许开发人员为使用 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 通过引入根级级联值来增强级联值,这些值可以为整个组件层次结构注册。 现在支持命名级联值和更新通知的订阅,从而提供了更大的灵活性和控制力。
虚拟化组件上的新 EmptyContent
参数使开发人员能够在组件加载且项为空或 ItemsProviderResult
为空时提供内容。TotalItemCount
为零。
这使开发人员能够创建更直观和用户友好的界面。
Blazor .NET 8.0 引入了在没有剩余的交互式服务器组件时关闭电路的功能。 此优化释放了服务器资源并提高了整体性能。
此外,开发者现在可以在服务器端应用程序中使用CircuitHandler
上的CreateInboundActivityHandler
方法来监控入站电路活动。
Jiterpreter 是 .NET 8 中的一个新运行时特性,引入了部分即时编译(JIT)在WebAssembly上运行时的编译支持。 这将改善运行时性能,为与Blazor WebAssembly应用程序交互的用户提供更流畅的体验。
Blazor WebAssembly 的 AOT 编译现在默认使用 WebAssembly 定宽 SIMD 和 WebAssembly 异常处理。 这种战略选择显著提升了运行时性能,提供了更高效、更灵敏的用户体验。
Blazor WebAssembly现在使用Webcil,这是一种适合网络的.NET程序集封装方式。 这确保在屏蔽下载或使用 .dll 文件的环境中保持兼容性,从而解决部署难题。 Webcil在默认情况下启用用于Blazor WebAssembly应用程序。
在 .NET 8 中,调试 Blazor WebAssembly 应用变得更加简化。调试器现在从 Visual Studio 首选项中配置的位置下载符号数据,从而增强了使用 NuGet 包的应用的调试体验。
此外,现在支持在 Firefox 中进行调试,需配置远程调试并通过 .NET WebAssembly 调试代理进行连接。
在 .NET 8.0 中,Blazor WebAssembly 消除了在指定内容安全策略时启用 unsafe-eval 脚本源的需求。(CSP). 此增强功能简化了安全配置,使得在Blazor WebAssembly应用程序中更容易执行强大的CSP(Content Security Policy,内容安全策略)。
引入 ComponentBase.DispatchExceptionAsync
允许开发人员处理在 Razor 组件生命周期调用栈之外抛出的异常。
此功能允许组件代码将异常视为生命周期方法异常,从而确保更一致和受控的错误处理机制。
Iron Suite 作者:Iron Software由 Iron Software 开发的 Blazor 应用程序由几个有用的库组成,使开发人员能够构建功能强大的 Blazor 应用程序。它为添加 PDF 功能、Excel 或 CSV 文件功能、图像到文本识别、条形码和 QR 码生成和读取以及压缩或提取文件的能力提供了解决方案。
Iron Suite 是使用 Blazor WebAssembly 托管模式或任何微软技术(包括 Blazor WebAssembly 应用程序、Blazor 服务器应用程序、ASP.NET Core MVC APP、ASP.NET core WEB API 或任何版本的.NET 运行时构建的任何应用程序)进行网络开发时可以考虑的最佳选择。
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
IronOCR (光学字符识别)从扫描图像或PDF中提取文本,增强数据可访问性。
3.IronXL用于高效读取、写入和操作Excel电子表格。
4.IronBarcode用于生成和读取各种格式的条形码,便于数据编码和检索。
5.IronQR使用机器学习创建和读取 QR 码
6.IronWebScraper用于从网站提取有价值的数据,增强基于网络的应用程序的功能。
7.IronZIP用于压缩和解压文件,简化数据存储和传输过程。
以……的价格访问整个套件仅两个单品最大化您的投资价值。
无论您是在Windows、macOS还是Linux上工作,Iron Suite都能确保兼容性。(险些)所有平台。
体验从下载到生产的快速旅程,只需短短5分钟即可启动运行。
查阅所有功能的详细文档和示例,为整个开发过程提供清晰的指导。
有一支专门的工程师团队在每周五天24小时内随时为您解答任何疑问,确保开发体验顺畅。
总之,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 赋予开发者创建强大且功能丰富的 Web 应用程序的能力。
强大的功能、改进的性能以及充满活力的开发者社区的支持,使Blazor成为现代网页开发的一个引人注目的选择。