Skip to content
bitzorcas
中EN

Concept

解决方案模板与 Profile 选型

解释 bitzorcas-host 的 15 个 coupled Profile、两种 ORM、三类基础拓扑、可选平台模块与行业扩展。

Last updated

bitzorcas-host 是一个原生 dotnet new Solution 模板。调用者选择一个完整 ProfileChoice 和一个 RuntimeAdapter,模板直接复制对应的已验证资产树,并按 Profile 条件保留平台模块或行业扩展。客户项目中没有第二阶段组合器。

[!NOTE] 从零建新工程优先考虑 bitz 脚手架:场景预设向导与正交维度(含 Website/RiskControl 平台能力与 ReactAdmin 等前端选项)比模板矩阵的 15 组合覆盖面更宽。本页的 Profile 矩阵面向需要精确验证单一组合的团队与存量模板消费者。两通道以同一已验证消费者工程为契约基线,模板矩阵的退役条件登记在 0004-template-upgrade-map.json。

先分清四组数字

数字含义为什么不同
15公开 ProfileChoice每个值都是可直接生成的完整方案
2RuntimeAdaptersqlsugar、efcore
30物理生成路径15 Profile × 2 ORM
3 / 6基础拓扑 / 原生资产树三类拓扑分别维护两个 ORM 版本

“15 个正式组合”指公开 Profile,不是 30;ORM 选择不会新增业务 Profile,但会改变实际包引用、Provider 注册和 Schema 接线。

Help 文本就是这份选择面的权威呈现。下面终端窗取自 dotnet new bitzorcas-host --help 与三档典型选型的真实运行输出(窄终端折行按逻辑行收敛,通用 dotnet new 选项略去):

bitzorcas-host session
$ 
BitzOrcas.Modern Solution Template (C#)
作者: BitzOrcas.Modern
描述: 按 15 个合法 coupled preset 生成可运行 Consumer Solution,显式选择 SqlSugar/EF Core;公开支持 Platform none、Authorization 或 MasterData 单选闭包。
用法:
dotnet new bitzorcas-host [options] [模板选项]
模板选项:
-P, --ProfileChoice <选项> 一次选择业务类型、租户模式、部署方式与行业扩展;所有可选值都是可直接采用的合法组合。
类型: choice
mini-api-single 最小 API、单租户、独立部署、无行业扩展。
default-business-single Business Starter、单租户、独立部署;不附加行业扩展。
default-business-single-authorization Business Starter、单租户、Authorization runtime module。
default-business-single-masterdata Business Starter、单租户、MasterData runtime module。
default-business-single-finance Business Starter、单租户、Finance 扩展。
default-business-single-hr Business Starter、单租户、HR 扩展。
default-business-single-auction Business Starter、单租户、Auction 扩展。
default-business-single-legal Business Starter、单租户、Legal 扩展。
default-business-multi Business Starter、多租户、Aspire 编排;不附加行业扩展。
default-business-multi-authorization Business Starter、多租户、Aspire 编排、Authorization runtime module。
default-business-multi-masterdata Business Starter、多租户、Aspire 编排、MasterData runtime module。
default-business-multi-finance Business Starter、多租户、Aspire 编排、Finance 扩展。
default-business-multi-hr Business Starter、多租户、Aspire 编排、HR 扩展。
default-business-multi-auction Business Starter、多租户、Aspire 编排、Auction 扩展。
default-business-multi-legal Business Starter、多租户、Aspire 编排、Legal 扩展。
默认: default-business-single
-R, --RuntimeAdapter <选项> 物理注册并由生成后行为测试验证的数据库 provider。
类型: choice
sqlsugar 注册生产 SqlSugar adapter。
efcore 注册生产 EF Core adapter。
默认: sqlsugar

若本机 Help 与上面面板不一致(多出旧拆分式选择器或内部推导参数),先按故障排查核对安装版本与包通道,不要继续按旧命令生成。

解析模型

ProfileChoice
15 个完整选项

推导基础拓扑、租户、部署

推导 PlatformModule
none / authorization / masterdata

推导 IndustryExtension
none / finance / hr / auction / legal

RuntimeAdapter
sqlsugar / efcore

选择原生资产树

条件裁剪与文本替换

Consumer Solution
manifest + plan + source + tests

BaseProfileChoice、PlatformModule 与 IndustryExtension 是模板内部推导值,不是公开命令参数。Help 暴露它们应视为模板合同回归。

三类基础拓扑

基础 ProfileWorkloadTenancyDeployment项目形态
mini-api-singleAPIsinglenoneAPI、ServiceDefaults、Unit Tests、Architecture Tests
default-business-singlebusinesssinglenoneMini Host 基础 + Business Starter Contracts/Application
default-business-multibusinessmultiaspireSingle Business 基础 + AppHost

当前公开模板不生成 JobHost、Website、MiniApp、Integration Worker、Container 或 Kubernetes 资产。这些能力属于后续独立采用或部署流水线,不能通过猜测参数启用。

15 个公开 Profile

ProfileChoice租户 / 部署可选闭包
mini-api-singlesingle / none无 Business Starter、平台模块或行业扩展
default-business-singlesingle / noneBusiness Starter
default-business-single-authorizationsingle / noneAuthorization 运行时模块
default-business-single-masterdatasingle / noneMasterData 运行时模块
default-business-single-financesingle / noneFinance 扩展
default-business-single-hrsingle / noneHR 扩展
default-business-single-auctionsingle / noneAuction 扩展
default-business-single-legalsingle / noneLegal 扩展
default-business-multimulti / aspireBusiness Starter
default-business-multi-authorizationmulti / aspireAuthorization 运行时模块
default-business-multi-masterdatamulti / aspireMasterData 运行时模块
default-business-multi-financemulti / aspireFinance 扩展
default-business-multi-hrmulti / aspireHR 扩展
default-business-multi-auctionmulti / aspireAuction 扩展
default-business-multi-legalmulti / aspireLegal 扩展

平台模块和行业扩展不是同一种接线:

  • authorization、masterdata 会把对应 Platform 运行时包、配置和采用测试放入闭包;
  • finance、hr、auction、legal 以行业扩展包进入 Business Starter Application;
  • auction 和 legal 的依赖闭包可能包含 Finance 包,但 Profile 的 industryExtension 仍分别是 auction、legal;
  • 一个 Profile 只选择一个公开后缀;需要跨扩展组合时,由客户项目在生成后按各模块采用合同完成,不修改生成 manifest 伪造支持。

ORM 是物理选择

RuntimeAdapter 不是注释字段。SqlSugar 输出调用 SqlSugar 注册与 Schema 路径,EF Core 输出调用 EF Core 注册并包含 EF Migration contribution。模板验证会检查选中 Provider 存在、另一 Provider 不在依赖闭包。

Terminal window
# 基线:生成 SqlSugar 物理接线。
dotnet new bitzorcas-host -n Acme.Sql \
--ProfileChoice default-business-single \
--RuntimeAdapter sqlsugar
# 对照:相同 Profile 只替换为 EF Core。
dotnet new bitzorcas-host -n Acme.Ef \
--ProfileChoice default-business-single \
--RuntimeAdapter efcore

团队应在项目建立时确定 ORM。模板不是运行时双 Provider 切换器;后续切换属于持久化迁移,需要重新评估模型、Schema、事务和回归测试。

选择顺序

按下面四个问题选型:

  1. 只验证框架 Shell,还是立即建立业务模块?前者选 Mini,后者选 Business。
  2. 请求是否必须从已验证 JWT 的 tenant_id 解析多个租户?是则选 Multi。
  3. 首批业务是否必须采用 Authorization、MasterData 或一个行业扩展?选择对应后缀。
  4. 团队生产基线使用 SqlSugar 还是 EF Core?选择唯一 RuntimeAdapter。

如果答案仍不确定,先用 mini-api-single 做 Feed、License、OpenAPI 和部署探针,不要把它当成生产业务 Profile。Mini 不生成 Business Starter,也不提供多租户或 Aspire 拓扑。

典型选择

最小 API 验证

Terminal window
dotnet new bitzorcas-host -n Acme.Probe \
--ProfileChoice mini-api-single \
--RuntimeAdapter sqlsugar

Development 可直接运行 API,不依赖 SQL Server 或 RabbitMQ,适合验证首次成功路径。

单租户法律业务

Terminal window
dotnet new bitzorcas-host -n Acme.Cases \
--ProfileChoice default-business-single-legal \
--RuntimeAdapter efcore

输出包含 Business Starter 与 Legal 扩展包,但业务规则、权限目录、数据迁移和生产认证仍由客户团队实现。

多租户授权平台

Terminal window
dotnet new bitzorcas-host -n Acme.Platform \
--ProfileChoice default-business-multi-authorization \
--RuntimeAdapter sqlsugar

AppHost 编排 SQL Server、Schema Migrator 和 API;Authorization 变体还增加 RabbitMQ、授权 bootstrap 与独立持久化身份参数。

生成边界

模板会生成:

  • Consumer 拥有的 Host、Starter Module 和测试源码;
  • Directory.Packages.props、NuGet.Config 与商业包引用;
  • ORM、租户、OpenAPI、License、Health 和 Schema 的 Host 接线;
  • composition-manifest.json、Schema 与 composition-plan.json;
  • 对 Platform/Industry 采用结果的行为测试。

模板不会生成完成的业务系统,也不会复制 src/Framework/** 或 src/Platform/**。前端、生产 Secret、正式 License、数据库数据迁移、容器编排资产和业务验收均在模板范围之外。

验证强度

底座模板门禁先真实生成全部 30 条物理路径,再对 22 条分层组合执行商业包 Restore、Build、Test、Publish,对其中 10 条执行裁剪发布。该模板门禁是独立发布证据,不等同于主仓库日常合并门禁。

Consumer 团队仍应针对自己的精确 Profile 执行:

Terminal window
# 按 Restore → Build → Test → API Publish 保留可重复的验证证据。
dotnet restore <Solution>.slnx
dotnet build <Solution>.slnx --configuration Release --no-restore
dotnet test <Solution>.slnx --configuration Release --no-build --no-restore
dotnet publish src/Hosts/<Name>.Api/<Name>.Api.csproj \
--configuration Release --no-build --no-restore

另见

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%