# XiHan.Framework **Repository Path**: oc-fork/XiHan.Framework ## Basic Information - **Project Name**: XiHan.Framework - **Description**: 曦寒框架存储库。 快速、轻量、高效、用心的开发框架,基于 DotNet 构建。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: https://docs.xihanfun.com - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 21 - **Created**: 2026-01-10 - **Last Updated**: 2026-08-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
XiHan.Framework

XiHan.Framework

快速、轻量、高效、用心的 .NET 现代模块化开发框架

基于 .NET 10 构建 · 66 个模块化组件 · [DependsOn] 依赖声明 · 拓扑排序加载

English | 简体中文

GitHub Stars Gitee Stars GitCode Stars

.NET C# Modules NuGet Downloads

License Last Commit Commit Activity Issues Contributors Repo Size

Ask DeepWiki Docs QQ Group

XiHanFun%2FXiHan.Framework | Trendshift

## 概述 XiHan.Framework 是面向企业级应用的模块化后端框架,专为前后端分离的 ASP.NET Core 应用设计。框架优先使用 .NET 原生功能,减少第三方依赖,强调模块清晰、依赖可控、扩展可维护。通过 `[DependsOn]` 属性声明模块依赖,自动拓扑排序加载,以应用服务与动态 API 约定统一接口暴露方式。 ## 文档 | 去处 | 内容 | | --- | --- | | [文档站](https://framework.docs.xihanfun.com) | 完整指南与 66 个包的逐包 API 文档 | | [框架工程说明](./framework/README_cn.md) | 分层架构、模块清单、目录结构、依赖关系 | | [更新日志](https://framework.docs.xihanfun.com/changelog) | 各版本变更与升级须知 | | [贡献指南](./CONTRIBUTING.md) | 分支约定、提交规范、本地构建与测试 | ## 设计原则 - **分层架构** - 遵循清晰的分层原则,避免循环依赖 - **依赖倒置** - 高层模块不依赖低层模块,都依赖抽象接口 - **单一职责** - 每个包只负责一个特定的功能领域 - **开闭原则** - 对扩展开放,对修改关闭,通过接口和抽象类支持自定义 - **优先 .NET 10** - 使用内置功能(DI、日志、序列化),仅在必要时引入第三方库 - **性能优化** - 利用 .NET 10 高性能特性;AOT 不在支持范围(核心依赖 SqlSugar / Castle DynamicProxy / Newtonsoft.Json 暂不兼容裁剪) ## 技术栈 | 类别 | 技术 | | --- | --- | | 运行时 | .NET | | 语言 | C# | | ORM | SqlSugarCore | | 日志 | Serilog.AspNetCore | | 缓存 | Microsoft.Extensions.Caching.Hybrid + StackExchangeRedis | | AOP | Castle.Core (DynamicProxy) | | 加密 | BouncyCastle.Cryptography | | 序列化 | System.Text.Json(内置)+ Newtonsoft.Json | | 模板引擎 | Scriban | | AI | Microsoft.Extensions.AI + Microsoft.Agents.AI + MCP | | HTTP 韧性 | Microsoft.Extensions.Http.Polly | | gRPC | Grpc.AspNetCore | | 实时通信 | ASP.NET Core SignalR | | API 文档 | Scalar.AspNetCore + Swashbuckle.AspNetCore | | IP 定位 | IP2Region.Net | | 消息通知 | MailKit + Telegram.Bot | | 搜索 | Elastic.Clients.Elasticsearch | | 测试 | xunit.v3 + Microsoft.Testing.Platform(含 CodeCoverage 扩展) | 各依赖的具体版本以 `framework/src` 下各工程的 `PackageReference` 为准。 ## 快速开始 ### 安装 通过 NuGet 安装所需模块: ```bash # 安装核心模块 dotnet add package XiHan.Framework.Core # 安装 Web API 模块(包含完整中间件管道) dotnet add package XiHan.Framework.Web.Api # 安装 API 文档模块 dotnet add package XiHan.Framework.Web.Docs # 安装数据访问模块 dotnet add package XiHan.Framework.Data ``` ### 定义模块 每个模块继承 `XiHanModule`,通过 `[DependsOn]` 声明依赖: ```csharp using XiHan.Framework.Core.Modularity; using XiHan.Framework.Web.Api; using XiHan.Framework.Data; [DependsOn( typeof(XiHanWebApiModule), typeof(XiHanDataModule) )] public class MyAppModule : XiHanModule { public override Task ConfigureServicesAsync(ServiceConfigurationContext context) { // 注册服务 return Task.CompletedTask; } public override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) { // 应用初始化 return Task.CompletedTask; } } ``` ### 启动应用 ```csharp using XiHan.Framework.Core.Extensions.DependencyInjection; using XiHan.Framework.Web.Core.Extensions.DependencyInjection; var builder = WebApplication.CreateBuilder(args); await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); await app.RunAsync(); ``` ### 模块生命周期 每个模块提供 7 个生命周期钩子,按拓扑排序顺序执行: ```text 服务注册阶段 应用初始化阶段 ┌──────────────────────┐ ┌────────────────────────────────┐ │ PreConfigureServices │ │ OnPreApplicationInitialization │ │ ConfigureServices │ → │ OnApplicationInitialization │ │ PostConfigureServices│ │ OnPostApplicationInitialization│ └──────────────────────┘ └────────────────────────────────┘ ↓ ┌────────────────────────────────┐ │ OnApplicationShutdown │ └────────────────────────────────┘ ``` ## NuGet 包 所有模块均发布至 [NuGet.org](https://www.nuget.org/packages?q=XiHan.Framework),包名与项目名一致: ```bash # 搜索所有 XiHan.Framework 包 dotnet package search XiHan.Framework ``` | 常用包 | 用途 | | --- | --- | | `XiHan.Framework.Core` | 模块化核心(必装) | | `XiHan.Framework.Web.Api` | Web API 全套中间件 | | `XiHan.Framework.Web.Docs` | Scalar + Swagger 文档 | | `XiHan.Framework.Data` | SqlSugar 数据访问 | | `XiHan.Framework.Caching` | HybridCache + Redis | | `XiHan.Framework.Authentication` | JWT / OAuth2 认证 | | `XiHan.Framework.Authorization` | RBAC 授权 | | `XiHan.Framework.EventBus` | 事件总线 + Outbox | | `XiHan.Framework.AI` | Microsoft.Extensions.AI + MCP | 完整模块清单见[框架工程说明](./framework/README_cn.md#模块清单)。 ## 环境要求 | 依赖 | 版本 | | --- | --- | | .NET SDK | 10.0+ | | C# | Latest | | 支持平台 | Windows / Linux / macOS | ## 项目生态 - [XiHan.Framework](https://github.com/XiHanFun/XiHan.Framework) - 快速、轻量、高效、用心的 .NET 现代模块化开发框架 - [XiHan.UI](https://github.com/XiHanFun/XiHan.UI) - 快速、轻量、高效、用心的框架无关 Headless UI 组件库 - [XiHan.BasicApp](https://github.com/XiHanFun/XiHan.BasicApp) - 基于 .Net(XiHan.Framework) + TS(XiHan.UI) 的超高颜值企业通用中后台内核 ## 贡献 欢迎提交 Issue 和 Pull Request,详见[贡献指南](./CONTRIBUTING.md)。 ## 诚挚致谢 排名不分先后。 | 项目 | 致谢 | | ------------------------------------------ | -------------------------------------- | | [Abp](https://github.com/abpframework/abp) | 作为部分架构和逻辑灵感来源(启蒙项目) | | 其他第三方依赖 | 作为项目功能丰富与拓展的基石 | ## 支持&赞助 如果此项目对你的开发有助益,也欢迎请作者一杯咖啡。 官方赞助页 https://docs.xihanfun.com/cosmos/sponsor ## 版权&授权 Copyright (c) 2021-Present XiHanFun and contributors. 本项目采用 MIT 授权,详见 [License](./LICENSE) XiHan.Framework Logo、XiHan.Framework名称归作者所有,第三方依赖和第三方服务分别遵循其各自授权与服务条款。 项目仅供学习参考,作者不承担任何软件的使用风险。