# XiHan.Framework **Repository Path**: XiHanFun/XiHan.Framework ## Basic Information - **Project Name**: XiHan.Framework - **Description**: 快速、轻量、高效、用心的 .NET 微内核开发框架。曦寒懿(XiHanFun)开源生态的后端基座。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: https://framework.docs.xihanfun.com - **GVP Project**: No ## Statistics - **Stars**: 49 - **Forks**: 25 - **Created**: 2024-08-14 - **Last Updated**: 2026-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: xihan, Csharp, 开发框架, 微内核, Framework ## README
XiHan.Framework,快速、轻量、高效、用心的 .NET 开发框架:微内核、能力图谱、管道执行

一份操作契约,同时服务 HTTP、gRPC、MCP 与命令行

CI NuGet .NET 10 MIT License GitHub Stars Gitee Stars GitCode Stars

文档 · 快速开始 · 示例 · 包总览 · 规范 · 更新日志

English | 简体中文

XiHan.Framework 是面向长期演进系统的 .NET 应用框架,以微内核、能力图谱与管道执行为核心,同时是语言中立规范 [XiHan Spec](https://github.com/XiHanFun/framework-spec) 的参考实现。 ## 特性 | 特性 | 说明 | | --- | --- | | [操作契约](https://framework.docs.xihanfun.com/web/operations) | 一次声明,多协议暴露,共用 Schema、授权与错误码 | | [能力图谱](https://framework.docs.xihanfun.com/startup/features) | 依赖按能力 ID 声明,启动前完成求解与校验 | | [执行管道](https://framework.docs.xihanfun.com/startup/pipeline) | 十一个固定阶段承载认证、租户、授权、校验、幂等与事务 | | [可替换实现](https://framework.docs.xihanfun.com/packages/) | 默认实现零外部依赖,Provider 通过同一套一致性测试 | | [Native AOT](https://framework.docs.xihanfun.com/common/serialization) | 内核零反射,注册代码与 Schema 于编译期生成 | | [插件](https://framework.docs.xihanfun.com/plugins/overview) | 进程内、Wasm、进程外三级隔离,支持多语言,故障不影响宿主 | | [AI 集成](https://framework.docs.xihanfun.com/agents/mcp) | 操作可作为 MCP tool 与模型工具,内置离线知识库服务编码助手 | ## 快速开始 ```bash dotnet add package XiHan.Framework.Profiles.Minimal --prerelease dotnet add package XiHan.Framework.Protocols.Http --prerelease dotnet add package XiHan.Framework.Kernel.Generators --prerelease ``` ```csharp [Operation("greetings.create")] public sealed class Greet : IOperation { public ValueTask> HandleAsync(GreetRequest request, InvocationContext context) => ValueTask.FromResult(Result.Success(new GreetResponse($"Hello, {request.Name}!"))); } ``` 该操作的协议入口由契约推导,加入相应协议包后生效: | HTTP | gRPC | MCP | 命令行 | | --- | --- | --- | --- | | `POST /greetings` | `Greetings/Create` | `greetings_create` | `greetings create --name Ada` | 特性清单、序列化上下文与应用入口见[快速上手](https://framework.docs.xihanfun.com/getting-started/first-app)。 ## 架构 ```mermaid %%{init: {"flowchart": {"wrappingWidth": 560}}}%% flowchart TB subgraph protocols["协议适配器"] direction LR http["HTTP · OpenAPI"] ~~~ grpc["gRPC"] ~~~ mcp["MCP"] ~~~ cli["命令行"] ~~~ events["CloudEvents"] end pipeline["内核管道:十一个固定阶段
Ingress → Observe → Resilience → Authenticate → Tenant → Authorize
→ Validate → Idempotency → Transaction → Handle → Egress"] operation["操作契约
IOperation<TRequest, TResponse>"] subgraph capabilities["能力"] direction LR abstractions["抽象
仓储 · 缓存 · 消息 · 对象存储 …"] --> implementations["默认实现(零外部依赖)
或 Provider(EF Core、Redis、Kafka、S3 …)"] end protocols --> pipeline --> operation --> capabilities ``` 依《易》之不易、简易、变易分为三层承诺,依赖仅可指向更低的环,由架构测试强制。详见[框架总体方案](./plans/框架总体方案.md)。 | 层 | 范围 | 承诺 | | --- | --- | --- | | 不易 | `Primitives` | 永不破坏,只增不改 | | 简易 | `Kernel` | 大版本内不破坏 | | 变易 | 抽象、实现、宿主、协议、插件、组合包 | 独立演进,以一致性测试保证兼容 | ## 能力 | 能力 | 默认实现 | Provider | | --- | --- | --- | | [持久化](https://framework.docs.xihanfun.com/persistence/overview) | 内存 | EF Core、SqlSugar | | [缓存与分布式锁](https://framework.docs.xihanfun.com/caching/basics) | 内存 | Redis、两级缓存、远程插件 | | [消息](https://framework.docs.xihanfun.com/messaging/pubsub) | 内存(含发件箱) | RabbitMQ、Kafka、CloudEvents Webhook | | [多租户](https://framework.docs.xihanfun.com/multi-tenancy/resolution) | 内存 | 数据库(支持分库) | | [认证](https://framework.docs.xihanfun.com/security/authentication)与[授权](https://framework.docs.xihanfun.com/security/authorization) | 内存(API Key、RBAC) | JWT、OpenID Connect、数据库 | | [调度](https://framework.docs.xihanfun.com/scheduling/jobs) | 内存 | 数据库(集群)、Kubernetes(选主) | | [工作流](https://framework.docs.xihanfun.com/workflow/definitions) | 内存 | 数据库 | | [对象存储](https://framework.docs.xihanfun.com/object-storage/basics) | 文件系统 | S3 及兼容服务 | | [审计](https://framework.docs.xihanfun.com/common/auditing) | 内存 | 数据库 | | [国际化](https://framework.docs.xihanfun.com/common/localization) | 内存(10 种区域) | 数据库 | | [配置](https://framework.docs.xihanfun.com/configuration/options) | .NET 配置 | Nacos | | [可观测性](https://framework.docs.xihanfun.com/common/observability) | `System.Diagnostics` | OpenTelemetry | | [AI](https://framework.docs.xihanfun.com/ai/chat) | 工具桥 | OpenAI 兼容端点、VectorData | 组合包:`Profiles.Minimal`(内核与宿主)、`Profiles.Standard`(增加领域模型与五个子系统)、`Profiles.Full`(增加其余子系统与四种协议适配器)。 ## 示例 ```bash git clone --recurse-submodules --branch dev https://github.com/XiHanFun/XiHan.Framework.git cd XiHan.Framework dotnet run --project framework/samples/SimpleApp ``` | 示例 | 内容 | | --- | --- | | [SimpleApp](./framework/samples/SimpleApp) | Standard 组合:多协议订单服务,含租户、认证、权限、事务与发件箱;Native AOT 冒烟项目 | | [SimpleCli](./framework/samples/SimpleCli) | Minimal 组合:命令行与 MCP stdio | | [KubernetesApp](./framework/samples/KubernetesApp) | Full 组合:探针、优雅停机、配置热更新、领导选举 | | [插件示例](./framework/samples) | 进程内、进程外(.NET、Go)与 Wasm(Rust) | ## 适用场景 - **适用**:长期维护的中大型后端;多租户 SaaS 与企业中后台;同一业务需多协议服务;需第三方多语言插件。 - **不适用**:短期 CRUD 项目;需模板引擎、搜索、网关等内置能力的项目。 选型依据见[为什么选择曦寒](https://framework.docs.xihanfun.com/appendix/why)。 ## 质量保障 - **门禁**:警告即错误;架构测试与分析器约束依赖方向、命名、反射与第三方类型泄漏。 - **公开 API**:`PublicAPI` 基线、包验证与稳定性分级。 - **一致性**:默认实现与 Provider 共用测试套件,CI 连接 PostgreSQL、SQL Server、MySQL、Oracle、Redis、RabbitMQ 与 Qdrant 运行。 - **决策**:公开契约先入 RFC,重要决策记入 [ADR](./plans/adr/README.md)。 ## 生态 | 项目 | 说明 | | --- | --- | | [framework-spec](https://github.com/XiHanFun/framework-spec) | XiHan Spec:RFC、术语表、协议映射与一致性向量 | | [framework-sdk-go](https://github.com/XiHanFun/framework-sdk-go) | Go SDK:进程外插件与远程 Provider | | [XiHan.UI](https://github.com/XiHanFun/XiHan.UI) | 快速、轻量、高效、用心的框架无关 Headless UI 组件库 | | [XiHan.BasicApp](https://github.com/XiHanFun/XiHan.BasicApp) | 基于 XiHan.Framework 和 XiHan.UI 的超高颜值通用中后台内核,亦为框架的参考应用 | ## 文档 | 去处 | 内容 | | --- | --- | | [快速上手](https://framework.docs.xihanfun.com/getting-started/first-app) | 从安装到首个操作 | | [开发指南](https://framework.docs.xihanfun.com/startup/features) | 按能力域组织的任务式文档 | | [包总览](https://framework.docs.xihanfun.com/packages/) | 每包一页:能力、配置键、主要类型 | | [设计文档](./plans/框架总体方案.md) | 总体方案、架构说明与 ADR | | [更新日志](https://framework.docs.xihanfun.com/changelog) | 版本变更与升级须知 | 接入编码助手(亦支持 `cursor`、`vscode`、`codex`): ```bash dnx XiHan.Framework.Cli --yes -- setup --client claude ``` AI 问答:[Zread](https://zread.ai/XiHanFun/XiHan.Framework) · [DeepWiki](https://deepwiki.com/XiHanFun/XiHan.Framework) ## 参与 欢迎提交 [Issue](https://github.com/XiHanFun/XiHan.Framework/issues) 与 Pull Request,规范见[贡献指南](https://docs.xihanfun.com/cosmos/contributing)。交流:QQ 群 [462371834](https://qm.qq.com/q/qYp1Urv3z2)。支持项目:[赞助页](https://docs.xihanfun.com/cosmos/sponsor)。 ## 致谢 | 项目 | 借鉴 | | --- | --- | | [Abp](https://github.com/abpframework/abp) | 启蒙项目,部分架构与逻辑的灵感来源 | | [Linux](https://www.kernel.org) | 「不破坏用户态」与 netfilter 钩子点:原语层只增不改,管道阶段固定 | | [Go](https://go.dev) | 小接口组合与 `context.Context`:实体按接口组合,调用上下文传播取消、截止时间与追踪 | | [Rust](https://www.rust-lang.org) | `core` / `std` 分层、默认私有与 `Result`:原语层独立于宿主,失败以值表达 | | [FastAPI](https://github.com/fastapi/fastapi) | 类型即契约:由类型生成 Schema,进而产出 OpenAPI、`.proto` 与 MCP tool | | [OpenTelemetry](https://opentelemetry.io) | 规范、多语言 SDK 与一致性测试:XiHan Spec 的组织方式 | 其余借鉴见[框架总体方案](./plans/框架总体方案.md#3-借鉴矩阵)。 ## 许可证 [MIT](./LICENSE) © 2021-Present XiHanFun and contributors。XiHan.Framework 的 Logo 与名称归作者所有。