XiHan.Framework 框架概述
XiHan.Framework 是一个基于 .NET 的现代化后端开发框架,设计理念是为开发者提供一个高效、灵活且易于使用的开发平台。框架采用模块化设计,每个模块都专注于解决特定的问题,同时保持高度的可扩展性和可定制性。
设计理念
- 简约而不简单:提供简洁的 API 设计,降低学习成本,但不失功能的完整性
- 约定优于配置:遵循"约定优于配置"的原则,减少冗余的配置代码
- 模块化设计:各个功能模块可独立使用,也可无缝集成
- 高性能:底层架构经过优化,保证在高并发场景下的稳定性能
- 可扩展性:提供丰富的扩展点,方便开发者根据需求进行定制
- 领域驱动:原生支持领域驱动设计(DDD),便于构建复杂业务系统
- 开发体验:注重开发者体验,提供丰富的工具和调试支持
核心模块
核心基础 (Core)
提供框架的基础设施,包括依赖注入、配置管理、日志记录、事件总线等基础服务,是其他模块的基础。集成了最佳实践的异常处理和结果封装机制。
数据访问 (Data)
提供统一的数据访问层,支持 Entity Framework Core 和 SqlSugar,同时提供仓储模式、工作单元、软删除、多租户等企业级功能。支持领域模型映射和高效的查询优化。
Web API
基于 ASP.NET Core 的 Web API 开发框架,提供统一的 API 路由、请求处理、响应格式化、版本控制等功能。集成 Swagger 文档生成和 API 限流、监控等高级特性。
身份认证 (Identity)
提供完善的身份认证和授权机制,支持 JWT、OAuth、OpenID Connect 等多种认证方式,以及基于角色和策略的授权功能。支持社交媒体登录和双因素认证。
缓存 (Cache)
提供统一的缓存接口,支持内存缓存、分布式缓存、Redis 等多种缓存实现。支持多级缓存策略和自动缓存失效,提高应用性能。
后台任务 (BackgroundJobs)
提供后台任务调度和执行框架,支持定时任务、队列任务、延迟任务等多种任务类型。支持任务重试、持久化和监控。
消息队列 (MessageQueue)
提供消息队列集成,支持 RabbitMQ、Kafka 等主流消息队列,实现系统间的解耦和异步处理。支持消息的序列化、重试和死信处理。
文件存储 (BlobStoring)
提供统一的文件存储抽象,支持本地文件系统、分布式文件系统、云存储等多种存储方式。支持文件上传、下载、管理等功能。
AI 集成 (AI)
提供人工智能服务集成,支持主流的 AI 模型和服务,如 OpenAI、Azure AI 等。支持文本生成、图像处理、自然语言理解等功能。
技术栈
- .NET 10:利用最新的 .NET 平台特性,提供高性能和跨平台支持
- Entity Framework Core:强大的 ORM 框架,简化数据访问层的开发
- SqlSugar:高性能、轻量级的 ORM 框架,提供更灵活的数据操作
- ASP.NET Core:高性能的 Web 框架,提供 Web API 开发支持
- Serilog:灵活的结构化日志记录框架,支持多种日志输出目标
- Mapster:高性能的对象映射工具,简化 DTO 和实体类之间的转换
- FluentValidation:流畅的验证库,提供请求数据的验证功能
- MediatR:轻量级中介者模式实现,支持请求/响应、发布/订阅模式
- Swagger/OpenAPI:API 文档生成工具,方便 API 的测试和集成
- Redis:高性能的分布式缓存解决方案
- JWT:基于 JSON Web Token 的认证方案
- Quartz.NET:强大的任务调度库,支持复杂的定时任务需求
架构图
+------------------------+ +------------------------+
| 表示层 | | 外部服务/资源 |
| (Web API, gRPC, 前端) |<------>| (第三方API, 存储, AI) |
+------------------------+ +------------------------+
|
+------------------------+
| 应用服务层 |
| (Application Services) |
+------------------------+
|
+------------------------+ +------------------------+
| 领域层 | | 基础设施层 |
| (Domain Model, 业务规则)|<------>| (Repository, 外部集成) |
+------------------------+ +------------------------+
|
+------------------------+
| 持久化层 |
| (Database, Cache, 文件)|
+------------------------+
版本和兼容性
XiHan.Framework 版本 | .NET 版本 | 支持状态 |
---|---|---|
1.0.x | .NET 10 | 正式发布 |
0.9.x | .NET 8/9 | 长期支持 |
0.8.x | .NET 7/8 | 维护支持 |