ASP.NET Core 10.0 的主要变化

ASP.NET Core 10.0 是 .NET 10 版本的一部分,引入了多项新功能和增强功能。重点关注的领域包括 Blazor、OpenAPI 支持和 Minimal API 的改进,以及安全性和性能的增强。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

1. Blazor 增强功能

Blazor WebAssembly 性能:ASP.NET Core 10.0 包含针对 Blazor WebAssembly 的重大性能优化,例如预加载静态资产以改善启动时间以及增强性能分析的诊断。

表单验证:新版本提供了改进的表单验证,包括全对象图验证,从而允许更复杂和更强大的验证逻辑。

状态持久性:Blazor Server 现在包含持久组件状态的功能,从而提高了弹性和可扩展性。

QuickGrid:QuickGrid 组件已更新,具有RowClass条件样式和改进的导航等新功能,可防止在同一页面更新时出现不必要的页面滚动。

BlazorQuickGrid RowClass

RowClassBlazor 组件上的新参数QuickGrid允许轻松地对行进行条件样式设置。这简化了 UI 逻辑,将其从 CSS 选择器移至 C# 代码。

HTML

<QuickGrid Items="items" RowClass="GetRowCssClass">

<PropertyColumn Property="@(p => p.Name)" Title="Name" />

<PropertyColumn Property="@(p => p.IsArchived)" Title="Archived" />

</QuickGrid>

@code {

private string GetRowCssClass(MyGridItem item)

{

return item.IsArchived ? "archived-row" : null;

}

}

2. OpenAPI 和最小 API

OpenAPI 3.1 支持:ASP.NET Core 10.0 全面支持OpenAPI 3.1,从而提供更全面的 API 文档。这包括符合 JSON Schema 草案 2020-12 的要求,并能够以 YAML 格式提供 OpenAPI 文档。

最小 API 验证:最小 API 现已内置验证支持。您可以使用DataAnnotations参数和模型的属性定义验证规则,并在验证失败时自动返回 400 Bad Request 响应。

简化的 API 开发:极简 API 得到了进一步增强,使构建轻量级 Web 服务更加轻松。新功能允许您将服务注入极简 API,而无需使用[FromServices]属性。

app.MapPost("/person", ([Validate] Person person) =>

{

// The framework handles validation. This code only runs if the person object is valid.

return Results.Created($"/person/{person.Id}", person);

});

public record Person(

Required\] int Id, \[StringLength(50)\] string Name, \[EmailAddress\] string Email ); // Old way (pre-10.0) app.MapGet("/users", (\[FromServices\] IUserService userService) =\> { return userService.GetAllUsers(); }); // New way (10.0) app.MapGet("/users", (IUserService userService) =\> { return userService.GetAllUsers(); }); ### 3. 身份验证和安全 添加了新功能和 API,使应用程序更安全、更易于管理。 无密码身份验证:增强了对密码(WebAuthn + FIDO2)的支持,允许使用生物识别或硬件安全密钥进行安全的无密码登录。 内置指标:新的内置指标提供了一种监控关键身份验证和授权事件的方法,例如登录、注销和授权失败,这对于现代可观察性至关重要。 API 身份验证行为: API 端点现在默认返回未经身份验证的请求的401状态403代码,符合常见的 API 最佳实践并防止意外重定向到登录页面。 开放重定向保护:一种新的RedirectHttpResult.IsLocalUrl辅助方法可帮助开发人员在重定向到 URL 之前验证 URL,从而有效防止开放重定向攻击。 安全性始终是 .NET 新版本的重中之重,.NET 10 也不负众望。其中一项突出的功能是对密钥的增强支持。在密码始终存在安全风险的时代,密钥通过 WebAuthn 和 FIDO2 标准提供了一种更安全、更能抵御网络钓鱼的替代方案。借助全新简化的 API 和更新的模板,实现无密码身份验证现在比以往任何时候都更加轻松。这是迈向更安全网络的关键一步,对开发者和用户来说都是双赢的。 ### 4. 开发人员的生产力和绩效 .NET 10 运行时和 ASP.NET Core 框架的一般改进旨在提高开发人员的工作效率和应用程序性能。 路由语法突出显示: Blazor 中的属性\[Route\]现在包括语法突出显示,以帮助开发人员可视化和理解路由模板的结构。 增强诊断:诊断工具已得到改进,新选项允许开发人员抑制某些异常处理程序诊断,以实现更清晰的日志记录。 服务器发送事件 (SSE):添加了对服务器发送事件 (SSE) 的支持,提供了一种实现实时数据流的简单方法,而无需 WebSockets 的复杂性。 .localhost 域名支持:内置的 Kestrel Web 服务器现在将.localhost顶级域名识别为安全环回地址,从而通过清晰的域名分离简化本地开发。 在性能方面,我们从未停止改进。内置 Web 服务器 Kestrel 已在底层进行了更多优化。虽然您可能无法在代码中直接看到这些改进,但它们正在默默地提升您的应用程序速度和内存利用效率。这种"免费性能"是 .NET 平台的一大特色------您只需使用新的 SDK 重新编译您的应用,速度就会更快。 **如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。**

相关推荐
切糕师学AI1 天前
.NET Core Web + Vue 项目集成消息推送工具SignalR
vue.js·.netcore·signalr
万19992 天前
asp.net core webapi------3.AutoMapper的使用
c#·.netcore
dephixf4 天前
工业级部署指南:在西门子IOT2050(Debian 12)上搭建.NET 9.0环境与应用部署
物联网·.netcore·智能制造·边缘网关·西门子·iot 2050
睡前要喝豆奶粉4 天前
在.NET Core Web Api中使用JWT并配置UserContext获取用户信息
前端·.netcore
睡前要喝豆奶粉4 天前
在.NET Core Web Api中使用阿里云OSS
阿里云·c#·.netcore
周杰伦fans4 天前
.NET Core WebAPI 中 HTTP 请求方法详解:从新手到精通
网络协议·http·.netcore
睡前要喝豆奶粉6 天前
.NET Core Web API开发需引入的三个基本依赖配置说明
oracle·c#·.netcore
睡前要喝豆奶粉6 天前
.NET Core Web API中数据库相关配置
数据库·c#·.netcore
Archy_Wang_16 天前
Hangfire 入门与实战:在 .NET Core 中实现可靠后台任务处理
c#·.netcore
睡前要喝豆奶粉7 天前
在.NET Core Web Api中使用redis
redis·c#·.netcore