| name | abp-pro-layered |
| description | 本项目的分层 DDD 开发规则。新增或修改实体、领域服务、DTO、应用服务、控制器、权限或业务模块时使用。 |
ABP Pro 分层开发
代码归属
*.Domain.Shared:常量、枚举、本地化、权限和共享契约。
*.Domain:聚合、值对象、领域服务、仓储接口和领域规则。
*.Application.Contracts:DTO 和应用服务接口。
*.Application:用例编排、授权和 Mapster 映射。
*.EntityFrameworkCore 或 *.FreeSqlRepository:持久化实现。
*.HttpApi:控制器和 HTTP 层代码。
模块代码放在所属模块中,不要把模块业务规则放入主服务。
新功能流程
- 在聚合或领域服务中定义业务不变量和状态变更。
- 在
Domain.Shared 中添加常量、枚举、本地化和权限名称。
- 只有通用仓储无法清晰表达查询时,才增加自定义仓储方法。
- 在
Application.Contracts 定义输入、输出 DTO 和服务契约。
- 在
Application 实现用例、授权和 Mapster 映射。
- 只有需要明确 HTTP 接口时才增加控制器。
- 增加针对领域规则或应用用例的测试。
禁止事项
- 不在控制器或仓储中编写业务规则。
- 不直接把实体作为 API DTO 暴露。
- 不绕过聚合方法直接修改聚合内部状态。
- 不在领域层或应用层依赖具体数据库实现。
模板
可复用模块以 templates/pro-module 为准;标准服务模板以 templates/pro-nuget/service 为准。修改模板时必须同步现有项目的分层和包版本约定。