ABP搬砖指南
前言
之前读完了《架构整洁之道》,对其中提出的整洁架构深以为然。很早之前就了解到AspNet Boilerplate,但也一直没有实际上手过。倒是看了很久的中文文档,由ABPFrameWorkGroup/AbpDocument2Chinese带来的翻译文档abp20170501_A4.pdf,感谢无私奉献的前辈们。
随后,也了解到他们的下一代作品ABP vNext,也就是ABP Framework,尽管我没用过SSM
(毕竟我不写JAVA
),但我觉得ABP
按照这个趋势发展下去,携手.NET 5
,可与SSM
一战。
应用程序启动模板
开发顺序
- **
Domain.Shared
**:定义本地化文档(Localization
)、实体接口(Interface
)、枚举(Enum
)、错误码(ErrorCodes
)等; - **
Domain
**:定义实体(Entity
)或聚合根(AggregateRoot
)、领域服务、值类型、仓储接口(IRepository
),实现IDataSeedContributor
用于添加种子数据; - **
EntityFrameworkCore
**:定义DbContext
,DbContextModelCreatingExtensions
里配置实体,实现仓储接口(EfCoreRepository
),EntityFrameworkCoreModule
里添加仓储实现; - **
EntityFrameworkCore.DbMigrations
**:使用Add-Migration
添加迁移; - **
DbMigrator
**:运行,生成数据库并添加种子数据; - **
Application.Contracts
**:定义数据传输对象(DTO)与应用服务接口(IAppService
),定义权限(Permissions
); - **
Application
**:实现应用服务接口,添加自动映射配置(AutoMapperProfile
); HttpApi
可选:添加控制器,动态 API 控制器会自动根据Application
构建控制器;HttpApi.Client
可选:动态 C# API 客户端;- **
Web
**:定义界面、菜单,根据DDD的理论,只使用应用服务接口(IAppService
)或仓储接口(IRepository
),通过数据传输对象(DTO)封装数据; - **
Test
**:添加测试代码,运行测试。
后记
再次感谢乐于奉献的开源贡献者们!