| name | abp-pro-core |
| description | 本项目的 ABP Pro 核心约定。修改 aspnet-core 后端 C#、ABP 模块、依赖注入、异常、本地化、权限、多租户或时间处理时使用。 |
ABP Pro 核心约定
项目基线
- 目标框架为
net10.0,ABP 版本为 10.6.0。
- 除非用户明确要求,后端任务不得修改
vben28/**。
- 遵循
aspnet-core/services、aspnet-core/frameworks 和 aspnet-core/modules 的现有分层结构。
- 项目使用 Mapster,不引入 AutoMapper。
- 未经明确要求,不创建、恢复或修改 EF Migrations。
ABP 约定
- 通过
AbpModule 和 [DependsOn] 管理模块依赖。
- 可复用模块在
ConfigureServices 中配置;HTTP 管道只在最终 Host 配置。
- 优先使用
ITransientDependency、IScopedDependency、ISingletonDependency 和现有模块注册方式。
- 使用
ApplicationService、DomainService、AbpController 已提供的 Clock、GuidGenerator、CurrentUser、CurrentTenant、L、AuthorizationService、DataFilter 等属性。
- 使用
Clock.Now,不要直接使用 DateTime.Now 或 DateTime.UtcNow。
- 异步调用保持到底,不使用
.Result 或 .Wait()。
异常、本地化和安全
- 业务规则失败使用带模块命名空间的
BusinessException。
- 用户可见文本和异常码翻译放在所属模块的
Domain.Shared/Localization。
- 使用 ABP 权限和
[Authorize]、CheckPolicyAsync,不要在应用服务或控制器中硬编码角色。
- 尊重
CurrentTenant 和 ABP 数据过滤器;只在有明确理由的短作用域内禁用过滤器。
映射
- 遵循附近代码已有的 Mapster 注册和映射方式。
- 映射放在实体与 DTO 的层边界,不为单个转换引入第二套映射框架。
验证
共享框架修改后先构建最小受影响项目,再构建 Host:
dotnet build aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj --no-restore