Skip to content
bitzorcas
EN
BitzOrcas.Modern · .NET 10 企业架构
v1 开发中 15 阶段路线图

团队共享的 .NET 10 企业架构基座, 开箱即用,按需组装。

BitzOrcas.Modern 是团队统一的技术基座和架构参考。15 个业务模块 — 身份认证、多租户、计费、案件管理、工作流引擎、通知、文件、报表、搜索、工单、即时通讯、Webhook 等 — 通过 CQRS垂直切片架构组织。统一授权(RBAC + ABAC + ReBAC)、自研工作流引擎、Lucene 全文检索、CAP + RabbitMQ 事件驱动,统一标准。一套架构,多个产品复用。

  • v1
  • ·
  • ·
  • .NET 10 / C# 14
  • ·
  • SQL Server · Redis · RabbitMQ
bitzorcas aspire session
$

实时预览 · 6 个服务Aspire 编排

项目规模
  • 业务模块

    15

    Identity · Tenancy · Billing · Workflow · +10 个

  • 开发阶段

    15

    架构基线 → 黄金切片 → SaaS 平台

  • 15

    8 /

    阶段已完成 — CQRS · Auth · Pipeline · API · Infra

  • 共享构建块

    12

    认证 · 缓存 · 事件 · 任务 · 可观测 · 幂等 · +6 个

技术栈

团队统一的生产级技术栈, 开箱即用。

每个产品都需要的通用基础设施 — 已经选型,已经接通。合理、生产级的默认配置,任何组件都可以按需替换。

后端

.NET 10

Minimal APIs、Mediator.SourceGenerator 和 SqlSugar — C# 14,源码生成,高性能。

数据库 · 默认

SQL Server

SqlSugar 默认适配器,内置租户过滤、软删除、审计和乐观并发。EF Core 适配器可选。

编排 · 就绪

.NET Aspire

一条命令启动 SQL Server、Redis、RabbitMQ 和 API。

部署

Docker Compose

内置生产级 Compose 文件 — 部署到任何地方。

存储 · S3

S3 兼容

开发环境使用本地磁盘;生产环境支持任意 S3 供应商(或 MinIO)。

多租户 · 内置

多租户

基于 SqlSugar QueryFilter 的租户隔离贯穿每个模块 — 支持 SingleTenant 和 MultiTenant 模式。

01·模块化单体 + 垂直切片

模块化单体, 垂直切片。

每个模块是独立的限界上下文,仅通过契约与其他模块通信 — 绝不触碰对方内部实现。模块内部,每个功能是一个垂直切片:端点、处理器、验证器和测试,全部在一个文件夹里。

模块化单体

十个模块,一个进程

Identity
Multitenancy
Auditing
Catalog
Files
Chat
Billing
Webhooks
Notifications
Tickets

跨模块调用仅通过 *.Contracts 进行 — 由架构测试强制约束。

垂直切片

一个功能,一个文件夹

Modules.Billing / Features / v1 / Invoices / CreateInvoice

  • CreateInvoiceEndpoint.cs Minimal API 端点
  • CreateInvoiceCommandHandler.cs Mediator 命令处理器
  • CreateInvoiceCommandValidator.cs FluentValidation 规则
  • CreateInvoiceTests.cs 单元 + 集成测试

不用在五个项目间跳来跳去添加一个按钮 — 一个文件夹,一个 PR,一次合并。

02·生产级 .NET 10 API 需要的一切

基础设施已经就绪, 直接写业务。

认证、授权、CQRS、缓存、事件驱动、后台任务、结构化日志、分布式追踪、幂等性、Webhook。这些通用能力已经封装为共享构建块,统一标准,统一实现。新项目引入后直接使用,不用重新搭建。

03·十个生产模块随 v10 发布

三大架构支柱, 七大扩展模块。

身份认证、多租户和审计是架构支柱 — 每个 B2B 产品都需要的基础能力。另外七个扩展模块随同发布,新项目可以直接基于现有模块开发产品特有功能

模块

Identity

认证不碍事。

  • JWT bearer + 刷新令牌
  • ASP.NET Identity 角色与权限
  • 运维人员模拟登录,全程审计
  • 登录、注册和密码重置限流
探索 Identity
模块

Multitenancy

默认隔离。按需跨租户。

  • Finbuckle.MultiTenant 10(claim、header、query)
  • SqlSugar 全局查询过滤器实现租户范围
  • IGlobalEntity 可选退出系统级行
  • 租户感知的缓存 + 任务 + 发件箱
探索 Multitenancy
模块

Auditing

每一次变更的取证记录。

  • SqlSugar 拦截器捕获所有写入
  • 逐实体变更前/后快照
  • 用户、租户、关联 ID、请求路径
  • 可通过 /audits 查询,支持过滤和脱敏
探索 Auditing
更多扩展模块
  • Files

    租户隔离的对象存储(MinIO / S3)

  • Chat

    实时频道、私聊、@提及、消息串

  • Notifications

    用户收件箱 + SignalR 实时推送

  • Webhooks

    租户订阅,HMAC 签名载荷

  • Billing

    订阅计划与用量计量

  • Catalog

    产品、分类、图片

  • Tickets

    支持工单与对话

04·技术栈详情

统一选型, 业界主流。

没有自研框架。没有 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 · 架构测试

05·生产级测试标准

不是演示 — 是经过验证的基础。

每个阶段都附带四个级别的自动化测试。领域不变量的单元测试、通过 Testcontainers 在 Docker 中运行真实 SQL Server 的集成测试 — 不用 Mock,不用内存数据库 — 守护模块边界的架构测试,以及关键流程的 E2E 覆盖。

  • 单元测试

    领域规则、Result/Error 契约、值对象和管道行为 — 纯粹、隔离、毫秒级。

  • 集成测试

    完整 HTTP 栈对抗 Docker 中的真实 SQL Server + Redis + RabbitMQ,通过 Testcontainers。不用 Mock,不用伪造。

  • 架构测试

    模块边界、依赖方向和契约纯度由 ArchUnitNET 强制约束 — 不会悄悄退化。

  • 端到端测试

    通过 Playwright 覆盖平台上关键用户路径的完整浏览器流程。

BitzOrcas.Modern — tests CI 四级测试
$ 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 ✓
06·BitzOrcas 适合谁

了解架构适用范围, 快速找到你需要的内容。

BitzOrcas.Modern 有明确的技术主张和架构约束。了解它的适用场景和不适用场景,有助于你快速判断在当前项目中应该参考哪些部分。

适合参考

以下场景可以参考…

  • 需要了解架构的新成员

    通过文档站快速了解整体架构、模块划分、技术选型和编码规范,加速上手。

  • 基于 .NET 10 启动新项目的团队

    复用已验证的架构模式和构建块,不用从头搭建基础设施,直接进入业务开发。

  • 需要了解多租户实现方案的团队

    参考 SqlSugar QueryFilter 租户隔离、Finbuckle 多租户解析链和租户感知的缓存/任务/审计方案。

  • 需要 CQRS / 垂直切片架构参考的开发者

    参考 Mediator 管道、垂直切片文件结构和领域事件实现,了解具体的架构实践方式。

不适合

以下情况需注意…

  • 只需要前端交互的项目

    BitzOrcas.Modern 是后端架构基座,不包含前端框架和 UI 组件。前端部分需要配合其他技术方案。

  • 偏好经典 Clean Architecture 分层组织的团队

    BitzOrcas 模块内按特性垂直切片组织代码(端点、处理器、验证、测试同放一个文件夹),而非按技术关注点横向分层。如果你的团队习惯 DomainServicesRepositories 式的经典分层,需要适应按业务特性切分的组织方式。

  • 第一天就需要微服务拆分的场景

    BitzOrcas 是模块化单体 — 模块后续可以提取为服务,但默认是一个进程。如果第一天就需要独立部署的微服务,需要额外规划。

  • 不使用 .NET 技术栈的团队

    架构模式和技术选型都是基于 .NET 10 生态。非 .NET 团队可以参考架构思想,但无法直接复用代码和构建块。

07·常见问题

这些是团队成员 最常问的问题。

对常见问题的集中解答。如果没有找到你的问题, 在仓库提交 Issue

  • Q.01

    BitzOrcas.Modern 的定位是什么?

    BitzOrcas.Modern 是团队统一的企业架构基座和内部文档中心。它为所有基于 .NET 10 的产品提供一致的架构模式、技术选型和编码规范,降低团队间的沟通成本,避免每个项目重复造轮子。

  • Q.02

    我可以基于这个架构启动新项目吗?

    可以。架构按 15 阶段路线图持续开发,阶段 0–8 已完成:架构基线、领域基础设施、CQRS 管道、统一授权、横切关注点、基础设施集成和黄金切片。每个阶段都附带四级自动化测试,可以直接作为新项目的起点。

  • Q.03

    必须引入全部构建块和模块吗?

    不需要。每个模块是独立项目,通过 IAppModule 契约自行注册。每个构建块也可以独立引入或移除。新项目可以根据实际需求选择需要的部分,其余模块从注册表删除即可,不影响其他模块。

  • Q.04

    多租户支持如何?

    多租户是默认行为。每个实体通过 SqlSugar 查询过滤器强制执行租户隔离。缓存、后台任务、审计、搜索全部支持租户感知。同时支持 SingleTenant 和 MultiTenant 模式,可按项目需求切换。

  • Q.05

    新项目怎么部署?

    两条路径。开发时,.NET Aspire 通过 `dotnet run --project BitzOrcas.AppHost` 编排所有服务。生产环境,Docker Compose 提供完整栈(SQL Server、Redis、RabbitMQ),可部署到单台主机或 Kubernetes。

  • Q.06

    遇到问题该找谁?

    架构相关问题先查阅本文档站的架构决策记录(ADR)。具体模块的使用问题可在团队内部沟通渠道提问。如果发现架构层面的改进点,欢迎在仓库提交 Issue 或 PR。

  • Q.07

    如何贡献新模块或构建块?

    参考文档站的模块开发指南和适配器开发指南。新模块需要遵循 IAppModule 契约、垂直切片结构和模块边界约束。提交前确保通过架构测试和契约测试。

  • Q.08

    技术栈选型是否可以替换?

    可以。架构设计为可替换的适配器模式。例如 SqlSugar 可以切换为 EF Core,Redis 缓存可以切换为其他实现。每个关键组件都有明确的接口契约,替换不会影响业务代码。

08·准备开始

从文档开始, 快速上手。

完整的架构参考、模块说明、构建块文档和开发指南。从快速开始到深入理解,一文一档。

  • v1
  • ·
  • 内部项目
  • ·
  • .NET 10 / C# 14
  • ·
  • 统一架构