ASP.NET Core 9 预览版 5:静态 Web 优化、Blazor 新增功能、新项目模板等

.NET 9 Preview 5 发布:ASP.NET Core 的显著增强

微软最近发布了 .NET 9 Preview 5,主要针对 ASP.NET Core 进行了多项优化和改进。此次更新重点优化了静态 Web 资源的交付、提升了 Blazor Server 的重连体验,并引入了运行时检测组件渲染模式的新功能,以及其他简化开发和提升用户体验的改进。

优化静态 Web 资源交付

此次发布的一个重要改进是优化了静态 Web 资源交付。新的 MapStaticAssets API 旨在替代大多数场景下的 UseStaticFilesMapStaticAssets 针对构建和发布时已知的资源进行了优化,使用 gzipbrotli 进行压缩,减少资源大小并提高用户加载速度。

该 API 还设置了基于内容的 ETags,确保浏览器仅在文件内容发生变化时才会下载。这一改进简化了开发者的工作流程,新的库或 JS/CSS 资源会自动优化并更快地提供服务,特别有助于带宽有限的移动用户。

即使使用服务器端压缩的应用程序也能从 MapStaticAssets 中受益。由于该 API 在构建过程中花费更多时间,因此可以实现更高的压缩率。例如,使用 brotli 压缩可以将 MudBlazor CSS 包的大小从 90KB 减少到 37KB

改进 Blazor Server 重连体验

此次发布还改进了 Blazor Server 重连体验。Blazor Server 应用需要实时连接才能正常工作。新版本引入了指数退避策略进行重连尝试,初始快速重连并逐渐引入延迟。

如果用户返回一个已断开连接的应用程序,应用程序会立即尝试重新连接。如果服务器已释放该连接,则会自动触发刷新,无需手动干预。此外,重连用户界面也进行了更新,使其更加用户友好。

运行时检测组件渲染模式

另一个新功能是运行时检测组件渲染模式。ComponentBase 类现在包含一个 Platform 属性(即将更名为 RendererInfo),具有 Name 和 IsInteractive 属性。这些属性帮助开发者了解组件运行的位置以及是否具有交互性。新的 AssignedRenderMode 属性还提供了组件在预渲染后如何渲染的信息。

简化 Blazor Web 应用的身份验证状态序列化

此次发布还简化了 Blazor Web 应用的身份验证状态序列化。新的 API 使向现有项目添加身份验证变得更加容易。开发团队表示:

如果从 Blazor Web 应用项目模板开始并选择了 Individual Accounts 选项,这非常有效,但如果你试图向现有项目添加身份验证,则需要实现或复制大量代码。

新的 API AddAuthenticationStateSerializationAddAuthenticationStateDeserialization 简化了这一过程,通过添加必要的服务来序列化和反序列化身份验证状态,增强了应用在预渲染期间访问身份验证状态的能力。

新的 .NET MAUI Blazor Hybrid 和 Web 解决方案模板

此外,还引入了新的 .NET MAUI Blazor Hybrid 和 Web 解决方案模板。该模板简化了针对 Android、iOS、Mac、Windows 和 Web 的应用程序创建,同时最大化代码复用,并自动为 Blazor Web 应用和 .NET MAUI Blazor Hybrid 应用设置项目,使用共享的 Razor Class Library 来管理 UI 组件。

官方文档与未来展望

读者可以参考官方文档了解最新更新的详细报告。还可以查看重大变更路线图,以了解未来的发展方向,并在 GitHub 上的详细发布说明中进行更广泛的讨论。

阅读 1 (UV 1)
0 条评论