Skip to content
bitzorcas
中EN
BitzOrcas.Modern · .NET 10 企业架构
15 个正式模板组合 · AI 原生 MCPConsumer Solution · PackageReference 交付

面向 .NET 10 产品团队的模块化架构基座,从源码、模板到智能体交付,边界清楚。

BitzOrcas.Modern 将模块边界、CQRS 垂直切片、统一授权、多租户隔离、CAP 事件、自研工作流、多 ORM 双引擎持久化与 AI-Native MCP 协议固化为可组合模板。团队通过 ProfileChoice 确定业务形态、租户模式与平台扩展闭包,结合 SqlSugar 或 EF Core 运行时适配器,由 CLI 一键生成只拥有自有源码的 Consumer Solution。

  • .NET 10 / C# 14
  • ·
  • SQL Server · Redis · RabbitMQ
  • ·
  • Model Context Protocol (MCP)
bitzorcas aspire session
$

本地拓扑由 .NET Aspire 编排并统一观测

架构模板能力快照 · 2026-09-23
  • 基础方案

    3

    最小 API、单租户业务与多租户业务,决定 Host、租户和部署基线

  • 可选扩展

    6

    Authorization、MasterData,以及 Finance、HR、Auction、Legal

  • 正式模板组合

    15

    1 个最小 API、7 个单租户业务与 7 个多租户业务组合

  • 平台源码边界

    37

    身份、授权、工作流、AI 智能体、文件、搜索、审计、法律连接器等限界上下文

技术栈

统一工程选型,也保留适配边界。

框架提供经过源码和测试验证的默认实现,也明确哪些能力依赖具体 Provider、拓扑和运维证据。替换组件需要通过相同契约与 parity 门禁。

后端架构

.NET 10

Minimal APIs、Mediator.SourceGenerator 和 C# 14 — 编译期生成,零反射开销,原生极速冷启动。

持久化 · 双引擎

SqlSugar + EF Core + Dapper

命令写路径由 SqlSugar/EF Core 适配器承载并固化租户过滤与审计;读模型直连 Dapper 副本。

编排 · 就绪

.NET Aspire

一条命令一键启动 SQL Server、Redis、RabbitMQ、OTLP Collector 与 API 拓扑。

部署 · 基线

Docker Compose & K8s

提供容器化部署基线与预置探针;生产环境严格检验 Secret、备份恢复、容量与多副本。

存储 · S3

S3 兼容对象存储

本地文件存储用于开发调试,S3 兼容适配器用于生产;统一元数据、哈希校验与预签名语义。

多租户 · 默认

多租户隔离治理

租户聚合默认物理与逻辑隔离,平台级数据显式声明;ORM、缓存、后台任务与搜索分别验证。

自研 · 核心

工作流引擎 (Workflow)

ORM 中立运行时、声明式 JSON DSL、版本控制、任务审批流、执行历史与恢复边界独立手册。

AI · 原生

Model Context Protocol

[GenerateMcpTool] 编译期生成工具描述,/mcp 端点流式暴露;严格在租户上下文与权限网关约束下运行。

开发套件 · 工具

BitzOrcas.Suite 工作台

集成实体 ER 建模、数据库 DDL 差异对比、Git 提交时间线审计与架构测试规则静态核验。

01·CLI 与解决方案模板

不是复制一套固定骨架,而是组合真正需要的解决方案。

同一个 bitzorcas-host 模板可以生成 15 个正式组合。ProfileChoice 一次确定业务形态、租户模式、平台或行业扩展和部署方式;RuntimeAdapter 只选择 SqlSugar 或 EF Core,不改变模板组合本身。

CLI · 创建多租户业务系统
$ dotnet new bitzorcas-host -n Acme.Crm \
  --ProfileChoice default-business-multi \
  --RuntimeAdapter sqlsugar

确定性生成结果

  • ProfileChoice · default-business-multi
  • RuntimeAdapter · SqlSugar
  • Hosts · Api + ServiceDefaults + AppHost
  • Business source · Modules/Business/Starter
  • Evidence · manifest + unit/architecture tests

COMPOSITION MODEL

模板组合与 ORM 分开计算

基础方案
3
可选扩展
6
正式组合
15
RuntimeAdapter
2

ProfileChoice 决定 Host、Module、租户与部署闭包;RuntimeAdapter 只切换生产 ORM,不会形成新的模板组合。

  • MINI API

    最小单租户 API

    mini-api-single

    最小 API Host 闭包,不带 Platform 模块或行业扩展。

    • single
    • sqlsugar / efcore
  • BUSINESS

    单租户业务系统

    default-business-single

    API Host 加 Consumer 自有 Starter 业务模块,保持受控的基础闭包。

    • single
    • sqlsugar / efcore
  • PLATFORM

    多租户授权系统

    default-business-multi-authorization

    多租户 Aspire 闭包显式加入 Authorization runtime module。

    • multi
    • authorization
  • LEGAL

    多租户法律行业系统

    default-business-multi-legal

    在标准业务闭包上增加受支持的 Legal package-only 扩展。

    • multi
    • legal
02·模块化单体 + 垂直切片

模块化单体,垂直切片。

每个模块拥有自己的 Contracts、Domain、Application、Infrastructure 与 Endpoint 表面;其他模块只能依赖公开契约。用例围绕 Command/Query 组织,生成式 Endpoint、验证管道、聚合行为和测试证据保持可追踪,而不是把业务散落到 Controller、Service 与 Repository 脚本中。

模块化单体

模块化单体,统一架构

Business Modules
Platform Contracts
Identity + Tenancy
Authorization
Workflow
Events + Webhooks
Search + Reporting
Operations

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

垂直切片

一个用例,一个可追踪闭环

Platform.Catalog/ Application / Commands/ CreateCatalogItem

  • CreateCatalogItem.csCommand + Handler + 生成式 Endpoint 契约
  • CreateCatalogItemRule.cs全局与租户级 IRequestRule
  • CatalogItem.cs聚合创建与状态不变量
  • CatalogPlatformTests.cs用例行为与回归证据

Endpoint 由属性生成;授权、验证、事务与审计进入统一管道,Handler 只表达用例。

03·架构与解耦示意

看得见模块,也看得见它们为什么没有耦在一起。

Consumer Solution 与产品仓库物理分离:项目团队拥有业务模块和 Host,Framework 与 Platform 以商业包提供稳定能力。跨模块协作只走公开 Contracts、Port、Integration Event 或授权读模型,架构测试持续阻止依赖方向回退。

从访问入口到运行资源的系统总览

从访问入口到运行资源的系统总览

渠道、Host、平台模块、框架服务与外部资源分层展示;点击进入可缩放的大图。

打开交互式架构大图

PACKAGE BOUNDARY

Consumer 与平台之间的解耦契约

业务代码可以组合平台能力,但不能复制、修改或穿透其内部实现。

<!-- Consumer 依赖 Profile 包,不复制 Platform 核心源码 -->
<ItemGroup>
  <PackageReference
    Include="BitzOrcas.Profile.Default.Business" />
</ItemGroup>
  • ALLOW

    *.Contracts / Port

    同步调用只依赖公开契约;存储、策略和适配差异通过显式 seam 接入。

  • ASYNC

    Integration Event

    跨模块状态变化经 CAP Outbox 发布,消费方按至少一次投递保持幂等。

  • DENY

    Internal / Domain / Infrastructure

    其他模块不得引用内部层、直接改表或把同步 Handler 注入成跨模块捷径。

阅读模块依赖规则
04·已有实现与采用边界

通用能力已有实现,采用边界同样明确。

认证、授权、缓存、事件、任务、观测、幂等、Webhook、多 ORM 适配器与 AI 智能体协议由共享构建块提供。每项能力都有明确默认实现、扩展接口、降级行为、失败语义和生产验收边界,业务模块无需重复建设横切基础设施。

05·平台模块

平台模块,按需选用。

产品仓库包含 37 个平台源码边界,覆盖身份、授权、文件、通知、工作流、搜索、报表、运维、法律垂直连接器与支持帮助台。Consumer 模板只开放已经进入正式组合的模块和扩展;业务模块仍只能依赖公开 Contracts。

模块

Identity

统一授权,多种策略。

  • JWT bearer + 刷新令牌
  • HMAC 客户端密钥 + API Key
  • RBAC + ABAC + ReBAC 统一决策
  • 运维人员模拟登录,全程审计
探索 Identity
模块

Multitenancy

默认隔离。按需跨租户。

  • 8 级租户解析链(claim、header、query)
  • 全局查询过滤器实现租户物理与逻辑范围
  • IGlobalEntity 可选退出系统级行
  • 租户感知的缓存 + 任务 + 事件
探索 Multitenancy
模块

Auditing

每一次变更的取证记录。

  • 受支持写入路径进入统一审计管道
  • 逐实体变更前/后快照
  • 用户、租户、关联 ID、请求路径
  • 7 类审计分片,Quartz 定时清理
探索 Auditing
更多能力
  • 对象存储 (S3)

    租户隔离的对象存储适配器(MinIO / S3 / 本地),元数据与预签名语义一致。

  • 异步导出中心

    大表异步分页查询、进度追踪、文件落盘与多渠道完成通知回调。

  • 全文检索

    基于 Elastic / OpenSearch 的跨模块统一索引构建与数据权限隔离过滤。

  • 流水号规则

    高并发单据编码引擎,支持按年/月/日租户分段,业务规则与计数器物理分离。

  • Webhook 平台

    HMAC 签名、指数退避重试、投递流水日志与死信告警闭环。

  • 消息通知中枢

    统一用户收件箱,支持站内信、邮件、短信与企业微信渠道流水线路由。

  • 动态表单元数据

    基于 JSON Schema 的动态表单配置驱动引擎与运行时字段级级联校验。

  • 业务标签体系

    租户级通用实体标签打标、继承、倒排索引与标签多维统计。

  • 司法精算引擎

    诉讼案件受理费、保全费分段递减计算,支持法定借贷利息与违约金复利精确核算。

  • 专业工时计量

    律师与顾问计费工单打点、阶段计费规则、工时审核流与费率矩阵。

  • 动态文档生成

    基于模板的 Word / PDF 法律文书、合同与报表自动化批量渲染排版。

  • GDPR 隐私合规

    PII 敏感个人信息审计、自动脱敏、导出归档与被遗忘权受控数据擦除闭环。

06·技术栈详情

统一选型,业界主流。

基于 .NET 10、SqlSugar、EF Core、CAP、MCP 与成熟 OSS 组件,并用自研工作流、编译期 Source Generator 和架构测试固化团队约束。每个边界都有明确代码与验证入口。

  • .NET 10

    C# 14 · net10.0 LTS 统一基准

  • Aspire

    latest · 本地拓扑一键编排

  • SqlSugar

    Core · 命令写路径高吞吐引擎

  • EF Core

    optional · 合规与审计拦截第二适配器

  • Dapper

    replica read · 报表与高频读模型只读直连

  • CAP

    latest · 事务发件箱与幂等消息消费

  • Mediator

    sourcegen · 编译期生成 CQRS 分发管线

  • SourceGen Mapper

    zero alloc · 零反射编译期 DTO 映射器

  • FusionCache

    L1/L2 · 租户感知 L1 内存 + L2 Redis 缓存

  • Quartz

    clustered · 持久化分布式定时调度集群

  • OpenTelemetry

    OTLP · 追踪、指标与日志统一 OTLP 导出

  • Scalar

    OpenAPI 3.1 · 交互式 OpenAPI 3.1 契约浏览器

  • ArchUnitNET

    187 tests · 187 项架构测试固化依赖边界

  • MCP Server

    Agent tools · Model Context Protocol 智能体工具流

  • BitzOrcas.Suite

    Workbench · 桌面可视化 ER、DDL 差异与审查工作台

  • Workflow DSL

    JSON schema · 声明式 JSON 状态机与租户审批流

07·架构质量门禁

架构约束不是口头约定,而是可以阻断合并与发布的客观门禁。

合并门禁覆盖代码格式、Release 编译、领域行为与集成测试、模块依赖隔离、Consumer PackageReference 闭环、trim 裁剪发布、Roslyn 语义反射扫描、No T-SQL 方言规则、生产部署资产与 OpenAPI/SDK 客户端漂移。模板变更另跑 15 个正式组合在两种 ORM 下的生成矩阵;外部商业 GA 独立验证可信签名、SBOM、供应链合规与生产 Consumer。

  • 26

    测试项目

    26 个解决方案测试项目覆盖领域规则、Result/Error 契约、管道拦截以及真实 SQL Server、RabbitMQ 物理链路。

  • 187

    架构测试文件

    187 个架构测试文件固化分层依赖方向、模块治理边界、Host 纯度、AOT 裁剪、反射合规与持久化规则。

  • 15

    正式模板组合

    15 个模板组合分别在 SqlSugar 与 EF Core 下执行生成、编译与闭包校验;严格子集执行私有 Feed 构建发布。

  • GA

    外部商业 GA

    经认证私有 Feed、可信代码签名、SBOM 清单、高危漏洞与许可证合规策略独立阻断交付。

BitzOrcas.Modern — quality gatesCI 17 步合并门禁
$ scripts/build/verify-all.sh
  01—04  secret · restore · format · Release build
  05—08  unit/non-Docker · Consumer Contract · XML
  09—10  architecture · integration (non-Docker)
  11—13  trim publish · reflection zero · No T-SQL
  14     production deployment and portability assets
  15     OpenAPI artifact · platform-sdk drift
  MERGE GATE  ·  15 required steps

$ scripts/build/verify-template.sh
  15 combinations × 2 ORMs — SqlSugar / EF Core
  TEMPLATE GATE  ·  run when templates or releases change

$ scripts/build/verify-commercial-ga.sh
  authenticated feed · trusted signatures · SBOM
  vulnerability/license policy · provenance · external consumer
  RELEASE GATE  ·  immutable artifacts only
08·BitzOrcas 适合谁

一个模板体系,覆盖不同规模的 .NET 产品。

BitzOrcas.Modern 适合需要长期演进、模块治理和统一交付证据的 .NET 后端系统。当前公开模板从最小单租户 API 扩展到带受支持平台或行业扩展的单/多租户业务系统。

适合采用

这些产品形态可以直接从模板起步

  • 最小 API 与集成壳

    mini-api-single 提供单租户最小 API 闭包,适合在稳定 Framework 契约上增加 Consumer 自有业务表面。

  • 单租户内部与业务系统

    default-business-single 生成 API 与 Consumer 自有 Starter 模块,可通过耦合 ProfileChoice 增加 Authorization、MasterData 或行业扩展。

  • 多租户 SaaS 业务系统

    default-business-multi 使用认证租户 claim 与 Aspire 部署闭包,Consumer 团队仍拥有业务模块源码。

  • 需要受控平台或行业扩展的产品

    Authorization、MasterData、Finance、HR、Auction 与 Legal 使用显式 coupled preset,不把未验证的自由组合带入客户仓库。

不适合

以下情况需注意…

  • 只需要前端交互的项目

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

  • 必须任意组合且不接受约束的团队

    正式模板采用 fail-closed 组合矩阵;公开入口只允许已登记的 ProfileChoice 与 RuntimeAdapter,不会为了“先生成再说”而放行任意闭包。

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

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

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

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

09·团队 FAQ

模板采用前,团队需要先统一这些决策。

围绕组合、扩展、隔离、持久化和交付门禁给出明确答案。如果仍有未决架构问题,在仓库提交 Issue

  • Q.01

    新项目应该选择哪个 ProfileChoice?

    最小 API 使用 mini-api-single;常规业务系统按租户模式选择 default-business-single 或 default-business-multi。需要 Authorization、MasterData、Finance、HR、Auction 或 Legal 扩展时,选择对应的耦合后缀;RuntimeAdapter 另行选择 sqlsugar 或 efcore。公开 CLI 不接受未进入矩阵的自由组合。

  • Q.02

    业务项目能直接修改 Framework 或 Platform 源码吗?

    不能。Consumer Solution 只拥有 Host、组合 Manifest、配置、测试与业务模块源码;Framework 和默认 Platform 通过商业 PackageReference 交付。项目差异必须通过 Contracts、Store Adapter、Policy、Strategy、Options、Integration Event 或 Pipeline Hook 实现。

  • Q.03

    可以单独删减 Host、Module、Deployment 或更换 ORM 吗?

    公开模板参数只有 ProfileChoice 与 RuntimeAdapter。Host、Module、租户和部署闭包由 ProfileChoice 耦合决定,不提供自由删减;ORM 可在 sqlsugar 与 efcore 之间选择。新闭包必须先进入唯一组合目录和模板矩阵,再通过隔离 Feed 与 Consumer Contract 门禁。

  • Q.04

    单租户和多租户应该怎么选?

    单租户仍使用统一租户契约,但上下文固定;多租户会加入解析链、生命周期、DataScope、租户级缓存、限流、审计和运维能力。只要数据将由多个客户共享,就应从 multi 开始,并对 ORM、缓存、任务、搜索和管理入口分别做隔离测试。

  • Q.05

    模块之间如何协作而不形成强耦合?

    同步能力只引用目标模块的 *.Contracts 或明确 Port;状态变化通过 CAP Outbox 发布 Integration Event;查询通过授权后的 Query Contract、读模型或 Reporting Mart。禁止引用其他模块的 Domain、Application、Infrastructure 或内部表。

  • Q.06

    SqlSugar 与 EF Core 的边界是什么?

    模板有 15 个正式组合,每个组合都在 SqlSugar 和 EF Core 下验证,因此物理矩阵共有 30 条生成路径。ORM 不会增加模板组合数。适配器仍需满足 Store 契约、Result/Error 语义、租户隔离、事务和 Provider parity;Dapper 负责只读副本的高性能查询投影,不是当前 Consumer 模板的独立 RuntimeAdapter 生成参数。

  • Q.07

    合并前必须跑哪些架构门禁?

    权威入口是 scripts/build/verify-all.sh。当前串联 17 步严格门禁:secret 明文扫描、restore、代码格式化与无用 using 检查、Release build、单元与行为测试、本地 PackageReference Consumer 合同测试、XML 文档与注释、架构测试套件、非 Docker 集成测试、限流与防伪造压力测试、CLI 黄金通道验证、trim 裁剪发布、Roslyn 语义反射扫描(ADR 0102/0103)、No T-SQL 方言门禁(ADR 0033)、生产部署资产验证以及 OpenAPI 规范与 Platform SDK 客户端漂移检查。

  • Q.08

    通过仓库门禁就等于可以商业 GA 吗?

    不等于。Commercial GA 是独立外部门禁,针对不可变发布产物验证认证私有 Feed、可信签名、SBOM、漏洞阈值、第三方许可证策略、provenance 和外部 Consumer Solution;客户拓扑还需补齐容量、安全、恢复和多副本演练。

  • Q.09

    AI 原生能力与 MCP 智能体协议的集成与安全边界是什么?

    BitzOrcas 原生支持 Anthropic Model Context Protocol (MCP)。通过在用例或服务标注 [GenerateMcpTool],编译期源码生成器自动提取输入输出的 JSON Schema,并在 /mcp 端点流式暴露。智能体在调用工具时,必须经由 API 网关的统一认证管道注入当前用户的 TenantContext 与 SecurityPrincipal,受到严格的数据范围(DataScope)与多租户全局过滤器约束。智能体严禁直接执行原生 SQL 或穿透模块内部聚合,所有变更必须进入 CQRS 校验与审计管道。

  • Q.10

    多 ORM 双引擎体系(SqlSugar + EF Core + Dapper)在工程中如何协同?

    业务模块的领域层与契约层保持 100% ORM 中立,仅依赖 ICommandRepository 写入端口与 I*ReadStore 读取端口。命令写路径由选定的 RuntimeAdapter(SqlSugar 或 EF Core)接管,负责实体聚合生命周期、乐观并发、租户隔离与审计拦截;复杂报表与高频读模型则通过 IDapperConnectionFactory 直连只读副本执行高性能查询,兼顾业务领域的整洁架构与数据密集型场景的极限吞吐。

10·开始采用架构模板

选择业务形态,生成受约束的 Consumer Solution。

选择受支持的 ProfileChoice 与 RuntimeAdapter,由 CLI 生成 Consumer Solution;业务源码归项目团队所有,Framework 与 Platform 通过稳定契约和商业包持续演进。

  • .NET 10 / C# 14
  • ·
  • 统一架构