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**:添加测试代码,运行测试。 
后记
再次感谢乐于奉献的开源贡献者们!