.NET 10
Minimal APIs、Mediator.SourceGenerator 和 SqlSugar — C# 14,源码生成,高性能。
BitzOrcas.Modern 是团队统一的技术基座和架构参考。15 个业务模块 — 身份认证、多租户、计费、案件管理、工作流引擎、通知、文件、报表、搜索、工单、即时通讯、Webhook 等 — 通过 CQRS 和垂直切片架构组织。统一授权(RBAC + ABAC + ReBAC)、自研工作流引擎、Lucene 全文检索、CAP + RabbitMQ 事件驱动,统一标准。一套架构,多个产品复用。
实时预览 · 6 个服务由 Aspire 编排
15
Identity · Tenancy · Billing · Workflow · +10 个
15
架构基线 → 黄金切片 → SaaS 平台
8 /
阶段已完成 — CQRS · Auth · Pipeline · API · Infra
12
认证 · 缓存 · 事件 · 任务 · 可观测 · 幂等 · +6 个
每个产品都需要的通用基础设施 — 已经选型,已经接通。合理、生产级的默认配置,任何组件都可以按需替换。
Minimal APIs、Mediator.SourceGenerator 和 SqlSugar — C# 14,源码生成,高性能。
SqlSugar 默认适配器,内置租户过滤、软删除、审计和乐观并发。EF Core 适配器可选。
一条命令启动 SQL Server、Redis、RabbitMQ 和 API。
内置生产级 Compose 文件 — 部署到任何地方。
开发环境使用本地磁盘;生产环境支持任意 S3 供应商(或 MinIO)。
基于 SqlSugar QueryFilter 的租户隔离贯穿每个模块 — 支持 SingleTenant 和 MultiTenant 模式。
每个模块是独立的限界上下文,仅通过契约与其他模块通信 — 绝不触碰对方内部实现。模块内部,每个功能是一个垂直切片:端点、处理器、验证器和测试,全部在一个文件夹里。
模块化单体
跨模块调用仅通过 *.Contracts 进行 — 由架构测试强制约束。
垂直切片
Modules.Billing / Features / v1 / Invoices / CreateInvoice
不用在五个项目间跳来跳去添加一个按钮 — 一个文件夹,一个 PR,一次合并。
认证、授权、CQRS、缓存、事件驱动、后台任务、结构化日志、分布式追踪、幂等性、Webhook。这些通用能力已经封装为共享构建块,统一标准,统一实现。新项目引入后直接使用,不用重新搭建。
JWT bearer + HMAC 客户端密钥,统一授权决策服务(RBAC + ABAC + ReBAC)。
查看文档通过 SqlSugar QueryFilter 强制租户隔离;支持 SingleTenant 和 MultiTenant 模式。
查看文档默认 SqlSugar 适配器,内置租户过滤、软删除、审计、并发控制。EF Core 适配器可选。
查看文档分布式 L1/L2 缓存,写入时按租户范围清除缓存。
查看文档Outbox 模式与 SqlSugar 事务集成 — 事件与业务写入原子一致。
查看文档通过 OTLP 输出追踪、指标和日志到任意后端 — 厂商中立,随时可换。
查看文档版本化 Minimal APIs,OpenAPI 3.1 文档,交互式 Scalar UI。
查看文档幂等性管道,HMAC 签名 Webhook,支持重试、投递日志和死信队列。
查看文档本地编排 API + SQL Server + Redis + RabbitMQ + OpenTelemetry Collector。
查看文档持久化定时任务和 CAP 消息消费者,保留租户上下文。
查看文档探针端点、固定/滑动窗口限流器、服务端推送事件(SSE)。
查看文档Microsoft.FeatureManagement,支持租户级覆盖。
查看文档身份认证、多租户和审计是架构支柱 — 每个 B2B 产品都需要的基础能力。另外七个扩展模块随同发布,新项目可以直接基于现有模块开发产品特有功能。
认证不碍事。
默认隔离。按需跨租户。
每一次变更的取证记录。
Files
租户隔离的对象存储(MinIO / S3)
Chat
实时频道、私聊、@提及、消息串
Notifications
用户收件箱 + SignalR 实时推送
Webhooks
租户订阅,HMAC 签名载荷
Billing
订阅计划与用量计量
Catalog
产品、分类、图片
Tickets
支持工单与对话
没有自研框架。没有 DSL。没有魔法。就是.NET 10、SqlSugar、CAP和团队已经熟悉的 OSS 库 — 精心选型,有机组合,降低学习成本。
.NET 10
C# latest · net10.0 LTS
Aspire
latest · 编排
SqlSugar
Core · SQL Server 默认
EF Core
optional · 可选第二适配器
CAP
latest · RabbitMQ Outbox
Mediator
latest · 源码生成器
Mapster
latest · 对象映射
FusionCache
latest · Redis L2
Quartz
latest · 定时任务
OpenTelemetry
latest · OTLP 导出器
Scalar
latest · OpenAPI 3.1 浏览器
ArchUnitNET
latest · 架构测试
每个阶段都附带四个级别的自动化测试。领域不变量的单元测试、通过 Testcontainers 在 Docker 中运行真实 SQL Server 的集成测试 — 不用 Mock,不用内存数据库 — 守护模块边界的架构测试,以及关键流程的 E2E 覆盖。
—
单元测试
领域规则、Result/Error 契约、值对象和管道行为 — 纯粹、隔离、毫秒级。
—
集成测试
完整 HTTP 栈对抗 Docker 中的真实 SQL Server + Redis + RabbitMQ,通过 Testcontainers。不用 Mock,不用伪造。
—
架构测试
模块边界、依赖方向和契约纯度由 ArchUnitNET 强制约束 — 不会悄悄退化。
—
端到端测试
通过 Playwright 覆盖平台上关键用户路径的完整浏览器流程。
$ dotnet test
⟳ Testcontainers — sqlserver · redis · rabbitmq ready
✓ unit ........................ passed
✓ integration (real SQL Server) . passed
✓ architecture (ArchUnitNET) . passed
Passed! all green · 0 failed
$ npx playwright test
✓ e2e — critical flows ......... passed
all green ✓ BitzOrcas.Modern 有明确的技术主张和架构约束。了解它的适用场景和不适用场景,有助于你快速判断在当前项目中应该参考哪些部分。
适合参考
需要了解架构的新成员
通过文档站快速了解整体架构、模块划分、技术选型和编码规范,加速上手。
基于 .NET 10 启动新项目的团队
复用已验证的架构模式和构建块,不用从头搭建基础设施,直接进入业务开发。
需要了解多租户实现方案的团队
参考 SqlSugar QueryFilter 租户隔离、Finbuckle 多租户解析链和租户感知的缓存/任务/审计方案。
需要 CQRS / 垂直切片架构参考的开发者
参考 Mediator 管道、垂直切片文件结构和领域事件实现,了解具体的架构实践方式。
不适合
只需要前端交互的项目
BitzOrcas.Modern 是后端架构基座,不包含前端框架和 UI 组件。前端部分需要配合其他技术方案。
偏好经典 Clean Architecture 分层组织的团队
BitzOrcas 模块内按特性垂直切片组织代码(端点、处理器、验证、测试同放一个文件夹),而非按技术关注点横向分层。如果你的团队习惯 DomainServicesRepositories 式的经典分层,需要适应按业务特性切分的组织方式。
第一天就需要微服务拆分的场景
BitzOrcas 是模块化单体 — 模块后续可以提取为服务,但默认是一个进程。如果第一天就需要独立部署的微服务,需要额外规划。
不使用 .NET 技术栈的团队
架构模式和技术选型都是基于 .NET 10 生态。非 .NET 团队可以参考架构思想,但无法直接复用代码和构建块。
对常见问题的集中解答。如果没有找到你的问题, 在仓库提交 Issue
BitzOrcas.Modern 是团队统一的企业架构基座和内部文档中心。它为所有基于 .NET 10 的产品提供一致的架构模式、技术选型和编码规范,降低团队间的沟通成本,避免每个项目重复造轮子。
可以。架构按 15 阶段路线图持续开发,阶段 0–8 已完成:架构基线、领域基础设施、CQRS 管道、统一授权、横切关注点、基础设施集成和黄金切片。每个阶段都附带四级自动化测试,可以直接作为新项目的起点。
不需要。每个模块是独立项目,通过 IAppModule 契约自行注册。每个构建块也可以独立引入或移除。新项目可以根据实际需求选择需要的部分,其余模块从注册表删除即可,不影响其他模块。
多租户是默认行为。每个实体通过 SqlSugar 查询过滤器强制执行租户隔离。缓存、后台任务、审计、搜索全部支持租户感知。同时支持 SingleTenant 和 MultiTenant 模式,可按项目需求切换。
两条路径。开发时,.NET Aspire 通过 `dotnet run --project BitzOrcas.AppHost` 编排所有服务。生产环境,Docker Compose 提供完整栈(SQL Server、Redis、RabbitMQ),可部署到单台主机或 Kubernetes。
架构相关问题先查阅本文档站的架构决策记录(ADR)。具体模块的使用问题可在团队内部沟通渠道提问。如果发现架构层面的改进点,欢迎在仓库提交 Issue 或 PR。
参考文档站的模块开发指南和适配器开发指南。新模块需要遵循 IAppModule 契约、垂直切片结构和模块边界约束。提交前确保通过架构测试和契约测试。
可以。架构设计为可替换的适配器模式。例如 SqlSugar 可以切换为 EF Core,Redis 缓存可以切换为其他实现。每个关键组件都有明确的接口契约,替换不会影响业务代码。