ABP搬砖指南

前言

之前读完了《架构整洁之道》,对其中提出的整洁架构深以为然。很早之前就了解到AspNet Boilerplate,但也一直没有实际上手过。倒是看了很久的中文文档,由ABPFrameWorkGroup/AbpDocument2Chinese带来的翻译文档abp20170501_A4.pdf,感谢无私奉献的前辈们。

随后,也了解到他们的下一代作品ABP vNext,也就是ABP Framework,尽管我没用过SSM(毕竟我不写JAVA),但我觉得ABP按照这个趋势发展下去,携手.NET 5,可与SSM一战。

领域驱动设计(DDD)


应用程序启动模板


开发顺序

  1. **Domain.Shared**:定义本地化文档(Localization)、实体接口(Interface)、枚举(Enum)、错误码(ErrorCodes)等;
  2. **Domain**:定义实体(Entity)或聚合根(AggregateRoot)领域服务值类型仓储接口(IRepository),实现IDataSeedContributor用于添加种子数据
  3. **EntityFrameworkCore**:定义DbContextDbContextModelCreatingExtensions里配置实体,实现仓储接口(EfCoreRepository),EntityFrameworkCoreModule里添加仓储实现;
  4. **EntityFrameworkCore.DbMigrations**:使用Add-Migration添加迁移;
  5. **DbMigrator**:运行,生成数据库并添加种子数据
  6. **Application.Contracts**:定义数据传输对象(DTO)应用服务接口(IAppService),定义权限(Permissions);
  7. **Application**:实现应用服务接口,添加自动映射配置(AutoMapperProfile);
  8. HttpApi 可选:添加控制器,动态 API 控制器会自动根据Application构建控制器;
  9. HttpApi.Client 可选动态 C# API 客户端
  10. **Web**:定义界面、菜单,根据DDD的理论,只使用应用服务接口(IAppService)或仓储接口(IRepository),通过数据传输对象(DTO)封装数据;
  11. **Test**:添加测试代码,运行测试。

后记

再次感谢乐于奉献的开源贡献者们!