agilelabs-fx-docs main real-usecases/woscm.md

woscm

woscm 是一个更大型的 AgileLabs Framework 实战案例。它覆盖多宿主、多租户、统一异常封包、后台任务与消息消费,同时也保留了“存量 EF Core + 项目级 Dapper 并存”的历史现实。

适合看什么

  • 在框架入口外再包一层项目标准宿主。
  • 项目级异常处理器与业务错误码体系。
  • 多租户 WorkContext 与后台服务嵌套 Scope。
  • 项目级 Dapper 基类、ts 并发控制和渐进式收敛路径。

关键实践

  • 各宿主的 Program.cs 都非常薄,只保留 WoScmApp.StartAppAsync<AppHostConfig>()
  • 公共注册集中在 wolabs 层,例如 InfraServiceRegisterJsonSerializeConfigureWoScmExceptionProcessor
  • 异常统一返回 ScmEnvelopMessage,并补充 TraceId。
  • JsonNetSerializerSettings.Instance 被 API、RPC Client、异步任务和测试共同复用。
  • WoScmDapperBaseRepository 基于 SqlBaseRepository 扩展 ts 并发检查。
  • 后台服务中大量使用 CreateScopeWithWorkContext() 与租户身份切换。
  • 项目把框架能力封装进自己的宿主标准层,说明大型系统往往不会直接把所有约定散落在业务宿主中。
  • 审计时间和并发版本分开设计,体现了“UTC 审计时间 + 独立版本字段”的双轨模型。
  • 历史上的 EF Core 面没有被当成继续扩展的理由,而更适合作为迁移到 Dapper 的参照对象。
  • 集成测试宿主显式对齐正式宿主的认证和序列化行为,避免测试环境与线上行为分叉。

检查时重点核对

  • 项目级宿主标准层是否仍与框架默认规则一致。
  • Dapper 主路径、审计字段和 ts 字段是否职责清晰。
  • 历史 EF Core 面是否继续被扩大。
  • 项目级异常封包是否仍能稳定映射到前端契约和追踪字段。

推荐搭配阅读

相关页面