news 2026/9/3 8:03:19

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/9/3 5:36:18

ModbusRTU报文调试技巧:常见异常响应代码快速理解

ModbusRTU报文调试实战&#xff1a;从异常响应码看穿通信问题本质在工业现场&#xff0c;你是否遇到过这样的场景&#xff1f;主站轮询电表&#xff0c;迟迟收不到数据&#xff1b;PLC读取传感器值时频繁超时&#xff1b;HMI界面上某个设备突然“失联”…… 一通抓包后&#xf…

作者头像 李华
网站建设 2026/8/24 4:55:25

亲测Whisper语音识别镜像:99种语言转录效果超预期

亲测Whisper语音识别镜像&#xff1a;99种语言转录效果超预期 1. 引言 在多语言内容爆发式增长的今天&#xff0c;高效、准确的语音识别系统已成为跨语言沟通、会议记录、教育辅助和媒体字幕生成等场景的核心基础设施。OpenAI 发布的 Whisper 系列模型凭借其强大的多语言支持…

作者头像 李华
网站建设 2026/9/3 1:27:57

DeepSeek-OCR本地部署实战|基于vLLM与CUDA 12.9的高性能推理方案

DeepSeek-OCR本地部署实战&#xff5c;基于vLLM与CUDA 12.9的高性能推理方案 1. 背景与挑战&#xff1a;从传统OCR到大模型驱动的文档理解 在人工智能加速渗透企业流程的今天&#xff0c;光学字符识别&#xff08;OCR&#xff09;已不再局限于“图像转文字”的基础功能。以De…

作者头像 李华
网站建设 2026/9/3 11:38:07

MinerU-1.2B教程:复杂版式文档解析技巧

MinerU-1.2B教程&#xff1a;复杂版式文档解析技巧 1. 引言 1.1 业务场景描述 在现代企业与科研环境中&#xff0c;大量关键信息以非结构化文档形式存在——如PDF扫描件、学术论文截图、财务报表图像和PPT幻灯片。这些文档通常包含复杂的排版结构&#xff0c;包括多栏文本、…

作者头像 李华
网站建设 2026/8/24 8:26:23

ViT模型比较实验:如何用预置镜像快速测试多个变体

ViT模型比较实验&#xff1a;如何用预置镜像快速测试多个变体 你是不是也遇到过这样的情况&#xff1f;作为研究生&#xff0c;手头有好几个Vision Transformer&#xff08;ViT&#xff09;的变体想在同一个图像分类任务上做对比实验——比如ViT-Base、ViT-Large&#xff0c;甚…

作者头像 李华
网站建设 2026/9/3 2:20:06

看完就想试!DeepSeek-R1-Distill-Qwen-1.5B打造的智能对话效果展示

看完就想试&#xff01;DeepSeek-R1-Distill-Qwen-1.5B打造的智能对话效果展示 1. 引言 在大模型快速演进的今天&#xff0c;如何将高性能语言模型部署到资源受限的边缘设备上&#xff0c;已成为AI落地的关键挑战。DeepSeek-R1-Distill-Qwen-1.5B 的出现&#xff0c;为这一难…

作者头像 李华