我们很高兴发布 ABP 10.0 RC 1。本文将介绍该版本的新特性和重要变更。
欢迎试用并反馈,帮助我们发布更稳定的 ABP v10.0 正式版!提前感谢你的支持。
你可以查看
https://abp.io/get-started 页面 了解如何开始使用 ABP。你可以下载 ABP Studio(如果你偏好更友好的桌面 GUI 应用,推荐)或使用 ABP CLI。
默认情况下,ABP Studio 使用稳定版来创建解决方案。因此,如果你想使用预览版创建解决方案,需要先创建一个解决方案,然后在 ABP Studio 的 UI 中将解决方案切换到预览版本:
本版本包含一些可能影响你应用的破坏性变更。如果你从 v9.3 或更早版本升级,请务必仔细阅读迁移指南:ABP Version 10.0 Migration Guide。
https://abp.io/docs/10.0/release-info/migration-guides/abp-10-0
本节将介绍本次发布的一些主要特性。以下是后续小节将展开的要点列表:
升级到 .NET 10.0
升级到 Blazorise 1.8.2
本地化:JSON 文件中的嵌套对象支持
仓储支持 EF Core 共享实体类型
为 InboxProcessor 增加失败重试策略
迁移到基于 Esbuild 的新 Angular 构建器
Angular SSR 支持
我们已将 ABP 升级到 .NET 10.0,如果你想使用 ABP 10.0,需要将你的解决方案迁移到 .NET 10.0。
由于 .NET 10 的稳定版尚未发布,我们将 ABP 升级到 .NET v10.0-rc.1。稳定版 .NET 10 计划作为 长期支持(LTS)版本在 2025 年 11 月 11-13 日举行的 .NET Conf 2025 上发布。一旦官方 .NET 10 正式发布,我们会尽快更新 ABP Platform 到 .NET 10。
我们将 Blazor UI 所使用的 Blazorise 库升级到了 v1.8.2。如果你将项目升级到 v10.0 RC,请确保你应用中所有与 Blazorise 相关的包都使用 v1.8.2,否则可能会因版本不兼容而报错。
ABP 现已内置工作流模块,集成了 Elsa Workflows,可在你的 ABP 解决方案(单体或微服务)中构建可视化、长事务、事件驱动的工作流。它与 ABP 的身份认证/授权、分布式事件总线、持久化、后台处理无缝集成,并通过 Elsa Studio 支持混合 UI。
想要上手实践并查看跨服务的端到端订单/支付工作流示例,请参考示例:
https://abp.io/docs/10.0/samples/elsa-workflows-demo
ABP 模块现在将 Mapperly 作为默认的对象映射器。Mapperly 是一种编译期、基于源码生成的映射器,消除了运行时反射,具备更高性能与更易维护的优势。
Volo.Abp.AutoMapper
包仍可用于向后兼容。你可以在你的解决方案中继续使用 AutoMapper,但若需要许可证,你需要自行获取并管理。升级指导与实践步骤请参考迁移指南:
https://abp.io/docs/10.0/release-info/migration-guides/AutoMapper-To-Mapperly
ABP 现在支持在 JSON 本地化文件中使用嵌套对象(以及数组),允许你以层次结构组织翻译内容,并通过双下划线(__
)分隔符来访问。这有助于在大型资源文件中提升可维护性,并使查找方式与熟悉的键路径保持一致。
声明(嵌套对象):
{
"culture": "en",
"texts": {
"MyNestedTranslation": {
"SomeKey": "Some nested value",
"SomeOtherKey": "Some other nested value"
}
}
}
使用:
L["MyNestedTranslation__SomeKey"];
L["MyNestedTranslation__SomeOtherKey"];
声明(数组):
{
"culture": "en",
"texts": {
"Menu": {
"Items": ["Home", "About", "Contact"]
}
}
}
使用:
L["Menu__Items__0"]; // 主页
L["Menu__Items__2"]; // 联系
ABP 仓储现在支持 EF Core 的共享类型实体(shared-type entity),可在执行操作前为仓储设置自定义实体名称。内部通过 EF Core 的DbContext.Set
来定位相同 CLR 类型对应的正确DbSet
/表,从而实现诸如按租户分表、归档表或分区等场景,并且可以在运行时切换目标。参见 PR:
https://github.com/abpframework/abp/pull/23588 以及 EF Core 文档:
https://learn.microsoft.com/en-us/ef/core/modeling/entity-types?tabs=
data-annotations-type-entity-types。
示例:
// 在执行仓储操作前设置共享实体名,使其指向指定表
var repo = serviceProvider.GetRequiredService
repo.SetCustomEntityName("MyEntity_TenantA");
var list = await repo.GetListAsync;
// 在同一实例上切换到另一个共享实体名
repo.SetCustomEntityName("MyEntity_Archive");
await repo.InsertAsync(new MyEntity { /* ... */ });
InboxProcessor
现在支持针对每个事件配置失败处理策略:Retry(默认;在下一个周期中重新处理)、RetryLater(跳过当前失败事件并在稍后以指数退避重试;可配置退避因子与最大重试次数)以及Discard(丢弃失败事件)。这可避免单个失败的处理程序阻塞后续事件,提升系统弹性。
我们已将 ABP Angular 模板与包迁移至 Angular 新的 esbuild 构建系统(在 Angular 17+ 引入,并在 Angular 20 中得到完整支持),以带来更快的构建速度、现代 ESM 支持、内置 SSR/预渲染能力以及更好的开发体验。此变更对现有应用是非破坏性的。参见跟踪 issue 与 PR:Angular - Migrate to New Esbuild-based Angular Builder、feat: Update Angular templates to Angular 20 new build system。
模板/配置关键更新:
@angular-devkit/build-angular:browser
切换为@angular-devkit/build-angular:application
。main
选项被browser
取代;polyfills
改为数组形式。es2020
,并启用esModuleInterop: true
;module 目标为esnext
。更多 Angular 更新:
警示:
inject
函数。如果你扩展了某个类并曾在super(...)
中传入注入参数,请移除这些参数。参见:Angular inject migration。provideLogo
与withEnvironmentOptions
已从 LeptonX 包迁移至@abp/ng.theme-shared
。tsconfig.json
中设置了指向node_modules
的 path 映射,请删除这些映射并优先使用符号链接。参考符号链接文档:Creating symbolic links。ABP Angular 模板现已通过 Angular Application Builder 支持服务端渲染(SSR),实现混合渲染(SSR + CSR),以提升首屏渲染、SEO 与感知性能。内容包括 SSR 安全的平台检查(避免直接使用 window
/location
/localStorage
)、通过基于 Cookie 的存储实现 OIDC 认证兼容、以及使用TransferState
避免水合期间重复的 HTTP GET 请求。实现要点与用法(包括如何运行 SSR 开发服务器以及transferStateInterceptor
)请参见 issue 与 PR:Angular SSR、Hybrid Rendering & Application Builder。
有关混合渲染(预渲染 + SSR + CSR)的更多细节,请参见 Angular 官方指南:Angular SSR,以及构建器迁移指南:Angular build system migration。
该版本带来了若干新特性,并对现有功能进行了大量增强。你可以查看路线图文档,了解后续版本的发布计划和计划中的特性。欢迎试用 ABP v10.0 RC,并反馈问题与建议,帮助我们发布更稳定的版本。
感谢你一直以来对社区的支持!
更新时间:2025-10-07
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-=date("Y",time());?> All Rights Reserved. Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号