news 2026/4/10 0:06:30

ABP Platform 10.0 RC 已发布

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ABP Platform 10.0 RC 已发布

目录

开始体验 10.0 RC

迁移指南

ABP v10.0 有哪些新内容?

升级到 .NET 10.0

升级到 Blazorise v1.8.2

新模块:Elsa 工作流

新对象映射器:Mapperly

本地化:JSON 文件中的嵌套对象支持

仓储支持 EF Core 共享实体类型

为 InboxProcessor 增加失败重试策略

迁移到基于 Esbuild 的新 Angular 构建器

Angular SSR 支持

总结


我们很高兴发布 ABP10.0 RC1。本文将介绍该版本的新特性和重要变更。

欢迎试用并反馈,帮助我们发布更稳定的 ABP v10.0 正式版!提前感谢你的支持。

开始体验 10.0 RC

你可以查看 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

ABP v10.0 有哪些新内容?

本节将介绍本次发布的一些主要特性。以下是后续小节将展开的要点列表:

  • 升级到 .NET 10.0

  • 升级到 Blazorise 1.8.2

  • 新模块:Elsa 工作流

  • 新对象映射器:Mapperly

  • 本地化:JSON 文件中的嵌套对象支持

  • 仓储支持 EF Core 共享实体类型

  • 为 InboxProcessor 增加失败重试策略

  • 迁移到基于 Esbuild 的新 Angular 构建器

  • Angular SSR 支持

升级到 .NET 10.0

我们已将 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。

升级到 Blazorise v1.8.2

我们将 Blazor UI 所使用的 Blazorise 库升级到了 v1.8.2。如果你将项目升级到 v10.0 RC,请确保你应用中所有与 Blazorise 相关的包都使用 v1.8.2,否则可能会因版本不兼容而报错。

新模块:Elsa 工作流

ABP 现已内置工作流模块,集成了 Elsa Workflows,可在你的 ABP 解决方案(单体或微服务)中构建可视化、长事务、事件驱动的工作流。它与 ABP 的身份认证/授权、分布式事件总线、持久化、后台处理无缝集成,并通过 Elsa Studio 支持混合 UI。

想要上手实践并查看跨服务的端到端订单/支付工作流示例,请参考示例:https://abp.io/docs/10.0/samples/elsa-workflows-demo

新对象映射器:Mapperly

ABP 模块现在将 Mapperly 作为默认的对象映射器。Mapperly 是一种编译期、基于源码生成的映射器,消除了运行时反射,具备更高性能与更易维护的优势。

Volo.Abp.AutoMapper包仍可用于向后兼容。你可以在你的解决方案中继续使用 AutoMapper,但若需要许可证,你需要自行获取并管理。升级指导与实践步骤请参考迁移指南:https://abp.io/docs/10.0/release-info/migration-guides/AutoMapper-To-Mapperly

本地化:JSON 文件中的嵌套对象支持

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"]; // 联系

仓储支持 EF Core 共享实体类型

ABP 仓储现在支持 EF Core 的共享类型实体(shared-type entity),可在执行操作前为仓储设置自定义实体名称。内部通过 EF Core 的DbContext.Set<T>(string name)来定位相同 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#shared-type-entity-types。

示例

// 在执行仓储操作前设置共享实体名,使其指向指定表 var repo = serviceProvider.GetRequiredService<IRepository<MyEntity, Guid>>(); repo.SetCustomEntityName("MyEntity_TenantA"); var list = await repo.GetListAsync(); // 在同一实例上切换到另一个共享实体名 repo.SetCustomEntityName("MyEntity_Archive"); await repo.InsertAsync(new MyEntity { /* ... */ });

为 InboxProcessor 增加失败重试策略

InboxProcessor现在支持针对每个事件配置失败处理策略:Retry(默认;在下一个周期中重新处理)、RetryLater(跳过当前失败事件并在稍后以指数退避重试;可配置退避因子与最大重试次数)以及Discard(丢弃失败事件)。这可避免单个失败的处理程序阻塞后续事件,提升系统弹性。

迁移到基于 Esbuild 的新 Angular 构建器

我们已将 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改为数组形式。

  • TypeScript 更新为es2020,并启用esModuleInterop: true;module 目标为esnext

更多 Angular 更新

  • 单元测试已针对新构建器与配置进行更新:#23460。

警示

  • 构造函数注入已迁移到 Angular 的inject()函数。如果你扩展了某个类并曾在super(...)中传入注入参数,请移除这些参数。参见:Angular inject() migration。

  • provideLogowithEnvironmentOptions已从 LeptonX 包迁移至@abp/ng.theme-shared

  • 如果你使用新的 application builder,且在tsconfig.json中设置了指向node_modules的 path 映射,请删除这些映射并优先使用符号链接。参考符号链接文档:Creating symbolic links。

Angular SSR 支持

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,并反馈问题与建议,帮助我们发布更稳定的版本。

感谢你一直以来对社区的支持!

引入地址

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/4 1:00:58

YOLOE统一架构优势:检测分割一气呵成

YOLOE统一架构优势&#xff1a;检测分割一气呵成 在计算机视觉领域&#xff0c;目标检测与实例分割长期被视为两个独立任务&#xff0c;分别依赖不同的模型架构和训练流程。这种割裂不仅增加了系统复杂性&#xff0c;也限制了实时场景下的部署效率。而随着 YOLOE&#xff08;Y…

作者头像 李华
网站建设 2026/3/30 18:40:00

消费电子选购指南:USB 3.0 3.1 3.2接口选择核心要点

别再被“USB 3.0”忽悠了&#xff01;一文看懂USB 3.0/3.1/3.2真实区别与选购避坑指南你有没有过这样的经历&#xff1f;花高价买了个号称“高速传输”的移动硬盘&#xff0c;结果拷贝一部4K电影用了十几分钟&#xff1b;或者新买的Type-C线连显示器总是闪屏&#xff0c;最后发…

作者头像 李华
网站建设 2026/3/26 17:46:54

效果惊艳!AutoGen Studio打造的AI代理团队案例展示

效果惊艳&#xff01;AutoGen Studio打造的AI代理团队案例展示 1. 背景与技术选型 随着大模型应用从单体智能向协同智能演进&#xff0c;多代理&#xff08;Multi-Agent&#xff09;系统成为实现复杂任务自动化的关键路径。传统AI助手往往依赖单一模型完成所有推理&#xff0…

作者头像 李华
网站建设 2026/4/8 13:08:58

通义千问3-4B-Instruct-2507智能搜索:企业内搜系统搭建

通义千问3-4B-Instruct-2507智能搜索&#xff1a;企业内搜系统搭建 1. 引言&#xff1a;企业级智能搜索的演进与挑战 随着企业数据规模的持续增长&#xff0c;传统关键词匹配式搜索引擎在理解用户意图、处理自然语言查询和跨文档语义检索方面逐渐显现出局限性。尤其在知识密集…

作者头像 李华
网站建设 2026/4/3 4:03:46

破局重构——以第一性原理穿透问题的复杂性迷雾

引言&#xff1a;从诊断到颠覆性治疗 在扮演“诊断医师”的角色中&#xff0c;我们从混乱的症状中&#xff0c;通过严谨的逻辑与工具&#xff0c;得到了一个清晰、可量化、且瓶颈明确的“诊断报告”。然而&#xff0c;一份精准的诊断报告本身并不能治愈疾病。传统的治疗方案&a…

作者头像 李华
网站建设 2026/3/27 3:59:33

如何高效做指令化语音合成?试试Voice Sculptor大模型镜像,开箱即用

如何高效做指令化语音合成&#xff1f;试试Voice Sculptor大模型镜像&#xff0c;开箱即用 1. 背景与核心价值 在当前AIGC快速发展的背景下&#xff0c;语音合成技术正从“能说”向“说得好、有风格、可定制”演进。传统的TTS系统往往需要专业录音、复杂调参或固定音色库&…

作者头像 李华