XiHan Framework 处于预览阶段

查看获取方式
跳转到内容

包总览 ​

XiHan Framework 由一组可以独立引用的 NuGet 包组成,按环层组织。本册是参考手册,每个包一页,列出它提供的能力、配置节、主要类型、限制与错误码;要完成某件事时先读开发指南。

先看指南还是先看这里

问题去处
要做某件事:装配特性、写操作、接数据库、做授权、发消息开发指南
某个包有什么:能力 ID、配置键、主要类型、AOT 与限制本册

当前是预览版,全部包共享一条版本线,取得方式见快速上手。

命名规则 ​

包 ID 由术语表与文法推出:XiHan.Framework.<领域>[.<角色>]。

后缀角色示例
.Abstractions抽象包:接口、契约、阶段中间件,零第三方依赖Caching.Abstractions
机制名默认实现:零外部设施、容量有界,清单角色为 defaultCaching.InMemory、ObjectStorage.FileSystem
.Database经持久化子系统的仓储读写的 Provider,数据库由应用选中的持久化 Provider 决定Security.Database
技术名接外部设施的 ProviderCaching.Redis、Persistence.EntityFrameworkCore
.Conformance一致性套件:实现必须通过的 xUnit 测试Caching.Conformance
.Generators / .Analyzers源生成器与分析器,开发期依赖Kernel.Generators

默认是清单里的 role,不是包名:没有显式 Provider 时默认实现被选中,加入 Provider 后自动让位。

怎样选包 ​

  1. 先选组合包:Profiles.Minimal(内核、ASP.NET Core 宿主、内存本地化)、Profiles.Standard(再加持久化、缓存、多租户、安全、消息的内存默认实现)、Profiles.Full(再加对象存储、调度、审计、工作流、AI 工具目录、OpenTelemetry、运行信息与四种协议适配器)。
  2. 按对外暴露的方式加协议适配器:Protocols.Http、Protocols.Grpc、Protocols.Mcp、Protocols.CloudEvents,或换成命令行宿主 Hosting.CommandLine。
  3. 按生产环境的外部设施加 Provider:Persistence.EntityFrameworkCore / Persistence.SqlSugar、Caching.Redis、Messaging.RabbitMQ / Messaging.Kafka、Security.Jwt / Security.OpenIdConnect、ObjectStorage.S3 等,每个都要 UseFeature 加入。
  4. 开发期依赖:Kernel.Generators(操作契约)与 Persistence.Generators(仓储登记)。

Ring 0–1 原语与内核 ​

包说明
Primitives原语与契约:Result、Error、Maybe、InvocationContext、清单模型、管道阶段、生命周期状态、消息键;只增不改
Kernel微内核:应用构建、能力图谱、管道与内置中间件、操作契约与调用器、安全原语、健康、插件抽象

Ring 2 领域与抽象 ​

包说明
Domain实体协议接口、值对象、领域事件缓冲、规约;纯契约
Persistence.Abstractions仓储、查询、工作单元与 Transaction 阶段、标识生成、领域事件派发
Caching.Abstractions字节存储、类型化缓存、序列化器、分布式锁、Idempotency 阶段、IDistributedCache 适配、键管理
MultiTenancy.Abstractions租户信息与存储、租户解析器与 Tenant 阶段、租户分片
Security.Abstractions凭据与认证处理器、权限与策略、RBAC 授予、Authenticate / Authorize 阶段、条件引擎、IP 归属地契约
Messaging.AbstractionsCloudEvents 信封、发布与订阅、经管道的派发、发件箱、领域事件映射
Localization.Abstractions区域、消息目录、显式区域的本地化接口
ObjectStorage.Abstractions对象存储契约:批量写入与删除、按前缀列举、范围读取、分片上传、预签名
Scheduling.Abstractions作业、触发器、计划、调度引擎与作业存储契约、领导选举
Configuration.Abstractions远程配置与密钥契约、接入 IConfigurationBuilder 的配置源
Auditing.AbstractionsObserve 阶段审计中间件、审计扩展与查询契约
Observability.Abstractions进程与主机运行信息的契约
Workflow.Abstractions工作流定义模型、目录、引擎、内置活动、用户任务、存储契约
AI.Abstractions基于 Microsoft.Extensions.AI 的 Provider 目录、IAIChat、护栏、工具目录、知识库

Ring 3 默认实现与 Provider ​

领域默认实现Provider
持久化Persistence.InMemoryEntityFrameworkCore、SqlSugar
缓存Caching.InMemoryRedis、Hybrid、Remote(Experimental)
多租户MultiTenancy.InMemoryDatabase
安全Security.InMemoryDatabase、Jwt、OpenIdConnect、Ip2Region
消息Messaging.InMemoryRabbitMQ、Kafka
本地化Localization.InMemoryDatabase
对象存储ObjectStorage.FileSystemS3
调度Scheduling.InMemoryDatabase、Kubernetes
配置.NET 原生的文件与环境变量,无包Nacos
审计Auditing.InMemoryDatabase
可观测性Observability.Host(运行信息)OpenTelemetry(导出)
工作流Workflow.InMemoryDatabase
AI工具目录由 AI.Abstractions 的 AIToolsFeature 提供OpenAI、VectorData

插件协议的 .NET 类型 Plugins.Protocol 也在 Ring 3,由各隔离级别的插件宿主共用。

Ring 4 宿主 ​

包说明
Hosting.AspNetCoreHTTP 请求桥接进管道、Accept-Language 协商、探针端点、本地化的 Problem Details、XiHan 认证方案
Hosting.CommandLine命令行宿主:help / graph / pipeline / operations / invoke,按错误 KIND 的退出码

Ring 5 协议与插件 ​

包说明
Protocols.Http操作 ID 推导路由、载荷绑定、OpenAPI 3.1
Protocols.Grpc操作成为一元方法,protobuf 由 JSON Schema 推出,发布 /operations.proto
Protocols.Mcp操作成为 MCP tool,Streamable HTTP 与 stdio 传输
Protocols.CloudEventsCloudEvents 1.0 HTTP 绑定:入站 /events 与出站 Webhook
Plugins.InProcess可收集 AssemblyLoadContext 的进程内插件宿主
Plugins.OutOfProcess按 xihan.plugin.v1 启动与监视子进程的插件宿主,插件可用任意语言编写
Plugins.Wasmwasmtime 沙箱里的 Wasm 插件宿主(Experimental)

Ring 6 组合包 ​

包内容
Profiles.MinimalPrimitives + Kernel + Hosting.AspNetCore + Localization.InMemory,UseMinimalProfile()
Profiles.StandardMinimal + Domain + 五个子系统的抽象与内存默认实现,UseStandardProfile()
Profiles.FullStandard + 对象存储、调度、审计、工作流、AI 工具、OpenTelemetry、运行信息与四种协议适配器,UseFullProfile()

工具链 ​

包说明
Kernel.Generators源生成器:[Operation] → 登记代码与请求 / 响应 JSON Schema(XHG001–XHG006)
Kernel.AnalyzersRoslyn 分析器:ApiLevel、命名、Internal 引用、零反射
Persistence.Generators源生成器:实体 → 仓储登记、EF Core 实体登记、软删除与租户过滤规约
Cli命令行工具 xihan:pack 生成部署产物,转发 graph / pipeline / operations / invoke
Testing测试宿主、特性桩、清单与上下文构造
Conformance各领域的一致性套件与插件协议黑盒套件

工具链包可以引用任何环;源生成器与分析器只在编译期运行,不进入应用的运行时依赖。

Released under The MIT License