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 重新编译您的应用,速度就会更快。 **如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。**

相关推荐
csdn_aspnet3 天前
在 C# .NETCore 中使用 MongoDB(第 1 部分):驱动程序基础知识和插入文档
mongodb·.netcore
csdn_aspnet3 天前
在 C# .NETCore 中使用 MongoDB(第 3 部分):跳过、排序、限制和投影
mongodb·c#·.netcore
csdn_aspnet5 天前
在 C# .NETCore 中使用 MongoDB(第 2 部分):使用过滤子句检索文档
mongodb·c#·.netcore
csdn_aspnet7 天前
.NET Core 中 RabbitMQ 和 MassTransit 的使用
rabbitmq·.netcore·masstransit
csdn_aspnet17 天前
MongoDB C# .NetCore 驱动程序 序列化忽略属性
mongodb·c#·.netcore
Tiger_shl19 天前
【.Net技术栈梳理】08-控制反转(IoC)与依赖注入(DI)
开发语言·.net·.netcore
Tiger_shl19 天前
【.Net技术栈梳理】10-.NET Core 程序的执行
开发语言·.net·.netcore
MoFe119 天前
【.net core】【watercloud】登陆后跳转至指定页面,显示在系统框架页内
.netcore
周杰伦fans19 天前
.net core webapi/mvc阿里云服务器部署 - 错误解决
阿里云·mvc·.netcore