woscm
woscm 是一个更大型的 AgileLabs Framework 实战案例。它覆盖多宿主、多租户、统一异常封包、后台任务与消息消费,同时也保留了“存量 EF Core + 项目级 Dapper 并存”的历史现实。
适合看什么
- 在框架入口外再包一层项目标准宿主。
- 项目级异常处理器与业务错误码体系。
- 多租户 WorkContext 与后台服务嵌套 Scope。
- 项目级 Dapper 基类、
ts并发控制和渐进式收敛路径。
关键实践
- 各宿主的
Program.cs都非常薄,只保留WoScmApp.StartAppAsync<AppHostConfig>()。 - 公共注册集中在
wolabs层,例如InfraServiceRegister、JsonSerializeConfigure、WoScmExceptionProcessor。 - 异常统一返回
ScmEnvelopMessage,并补充 TraceId。 JsonNetSerializerSettings.Instance被 API、RPC Client、异步任务和测试共同复用。WoScmDapperBaseRepository基于SqlBaseRepository扩展ts并发检查。- 后台服务中大量使用
CreateScopeWithWorkContext()与租户身份切换。 - 项目把框架能力封装进自己的宿主标准层,说明大型系统往往不会直接把所有约定散落在业务宿主中。
- 审计时间和并发版本分开设计,体现了“UTC 审计时间 + 独立版本字段”的双轨模型。
- 历史上的 EF Core 面没有被当成继续扩展的理由,而更适合作为迁移到 Dapper 的参照对象。
- 集成测试宿主显式对齐正式宿主的认证和序列化行为,避免测试环境与线上行为分叉。
检查时重点核对
- 项目级宿主标准层是否仍与框架默认规则一致。
- Dapper 主路径、审计字段和
ts字段是否职责清晰。 - 历史 EF Core 面是否继续被扩大。
- 项目级异常封包是否仍能稳定映射到前端契约和追踪字段。