# TinyFxCore
**Repository Path**: longjie2016/TinyFxCore
## Basic Information
- **Project Name**: TinyFxCore
- **Description**: TinyFx核心版本
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-12-18
- **Last Updated**: 2025-12-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TinyFx - 企业级 .NET 10 微服务开发框架



[](https://gitee.com/longjie2016/TinyFxCore)
**现代化、模块化、生产就绪的企业级.NET框架**
[快速开始](#-快速开始) • [核心特性](#-核心特性) • [架构设计](#-架构设计) • [扩展库](#-扩展库) • [文档](#-完整文档)
---
## 📖 框架简介
TinyFx 是一个面向 **.NET 10** 的企业级微服务开发框架,专注于提供**开箱即用**的基础设施和最佳实践,帮助开发者快速构建**高性能、可扩展、易维护**的现代化应用。
### 🎯 设计理念
- **🚀 开箱即用** - 预配置常用功能,减少重复造轮子
- **🔌 模块化设计** - 按需引入,避免臃肿
- **📊 生产就绪** - 内置监控、日志、健康检查等生产级特性
- **🎨 最佳实践** - 遵循 SOLID 原则和 .NET 设计规范
- **💡 开发友好** - 详细文档、示例代码、完整测试
---
## 🌟 核心特性
### 完整的基础设施
```
┌─────────────────────────────────────────────────────────┐
│ 🏗️ TinyFx 框架层次结构 │
├─────────────────────────────────────────────────────────┤
│ 应用层 │ Web API │ Console │ Worker Service │
├─────────────────────────────────────────────────────────┤
│ 业务层 │ 领域模型 │ 业务逻辑 │ 服务编排 │
├─────────────────────────────────────────────────────────┤
│ 扩展层 │ 消息队列 │ 缓存 │ 文件存储 │ 定时任务 │
├─────────────────────────────────────────────────────────┤
│ 数据层 │ MySQL │ SqlSugar │ Redis │ MongoDB │
├─────────────────────────────────────────────────────────┤
│ 核心层 │ TinyFx.Core │ 日志 │ 配置 │ DI │
└─────────────────────────────────────────────────────────┘
```
### 现代化技术栈
| 领域 | 技术选型 | 说明 |
|------|---------|------|
| **Web框架** | ASP.NET Core 10 | 高性能Web API |
| **数据访问** | SqlSugar | 强大的ORM,支持多数据库 |
| **缓存** | Redis / Garnet | 内存缓存+分布式缓存 |
| **消息队列** | RabbitMQ | 可靠的异步消息处理 |
| **日志** | Serilog | 结构化日志 |
| **监控** | App.Metrics | 应用性能监控 |
| **定时任务** | Sundial | Cron表达式支持 |
| **文件存储** | MinIO/OSS/Azure | 多云存储支持 |
---
## 🚀 快速开始
### 📋 前置条件
```bash
.NET 10 SDK
Visual Studio 2022 / Rider / VS Code
```
### 🎬 5分钟快速体验
```bash
# 1. 创建项目
dotnet new webapi -n MyWebApi
cd MyWebApi
# 2. 安装TinyFx
dotnet add package TinyFx
dotnet add package TinyFx.AspNet
# 3. 修改Program.cs
```
```csharp
using TinyFx;
using TinyFx.AspNet;
var builder = WebApplication.CreateBuilder(args);
// 🎯 添加TinyFx(一行搞定)
builder.AddTinyFx();
builder.Services.AddTinyFxAspNet();
var app = builder.Build();
// 🛡️ 启用中间件
app.UseTinyFxAspNet();
app.MapControllers();
app.Run();
```
```bash
# 4. 运行
dotnet run
```
**🎉 就这么简单!你已经拥有了:**
- ✅ 结构化日志
- ✅ 全局异常处理
- ✅ 健康检查 (`/health`)
- ✅ 性能监控
- ✅ API文档(Swagger)
---
## 🏗️ 架构设计
### 分层架构
```
┌──────────────────────────────────────────────┐
│ 🌐 表现层 (Presentation Layer) │
│ ├─ Controllers - API控制器 │
│ ├─ Middlewares - 中间件管道 │
│ └─ Filters - 过滤器 │
├──────────────────────────────────────────────┤
│ 💼 应用层 (Application Layer) │
│ ├─ Services - 应用服务 │
│ ├─ DTOs - 数据传输对象 │
│ └─ Validators - 业务验证 │
├──────────────────────────────────────────────┤
│ 🎯 领域层 (Domain Layer) │
│ ├─ Entities - 实体模型 │
│ ├─ ValueObjects - 值对象 │
│ └─ DomainEvents - 领域事件 │
├──────────────────────────────────────────────┤
│ 🗄️ 基础设施层 (Infrastructure Layer) │
│ ├─ Repositories - 数据仓储 │
│ ├─ Cache - 缓存服务 │
│ ├─ MessageQueue - 消息队列 │
│ └─ FileStorage - 文件存储 │
└──────────────────────────────────────────────┘
```
---
## 📦 扩展库
TinyFx采用模块化设计,所有扩展库都是独立的NuGet包,可按需引入。
| 包名 | 说明 | 文档 |
|------|------|------|
| [TinyFx.Core](src/TinyFx.Core/) | 框架核心基础库 | [README](src/TinyFx.Core/README.md) |
| [TinyFx.AspNet](src/TinyFx.AspNet/) | ASP.NET Core增强 | [README](src/TinyFx.AspNet/README.md) |
| [TinyFx.Data.SqlSugar](src/TinyFx.Data.SqlSugar/) | ORM数据访问 | [README](src/TinyFx.Data.SqlSugar/README.md) |
| [TinyFx.Extensions.FileStorageService](src/TinyFx.Extensions.FileStorageService/) | 文件存储服务 | [DI_USAGE_GUIDE](src/TinyFx.Extensions.FileStorageService/DI_USAGE_GUIDE.md) |
### 数据访问
- **TinyFx.Data.MySql** - MySQL数据访问
- **TinyFx.DbCaching** - 数据库缓存
### 缓存服务
- **TinyFx.Extensions.StackExchangeRedis** - Redis客户端
- **TinyFx.Extensions.Garnet** - Garnet高性能缓存(比Redis快2-5倍)
### 消息队列
- **TinyFx.Extensions.RabbitMQ** - RabbitMQ客户端
- **TinyFx.MessageDriven** - 消息驱动架构
### 文件存储
- **TinyFx.Extensions.FileStorageService** - 统一文件存储接口
- ✅ MinIO
- ✅ 阿里云OSS
- ✅ 七牛云
- ✅ Azure Blob
### 其他扩展
- **TinyFx.Extensions.EPPlus** - Excel导入导出
- **TinyFx.Extensions.Sundial** - 定时任务
- **TinyFx.Extensions.McpServer** - MCP协议服务器
- **TinyFx.Extensions.Aspire** - .NET Aspire集成
- **TinyFx.Extensions.AutoMapper** - 对象映射
- **TinyFx.Extensions.IDGenerator** - 分布式ID生成
**📚 [查看所有扩展库](src/README.md)**
---
## 📚 完整文档
### 📖 学习路径
**🌟 新手推荐阅读顺序:**
1. **[快速入门指南](GETTING_STARTED.md)** - 30分钟上手
- 环境准备和第一个项目
- 核心概念详解(依赖注入、配置、日志)
- 循序渐进的实例教程
2. **[扩展库使用指南](EXTENSIONS_GUIDE.md)** - 1小时精通
- 所有扩展库的详细API文档
- 完整代码示例
- 最佳实践和常见场景
3. **[专家级完整指南](FRAMEWORK_GUIDE_EXPERT.md)** - 深度学习
- 深入框架架构设计
- 生产部署和性能调优
- 故障排查和最佳实践
4. **[文档导航中心](DOCS_INDEX.md)** - 快速查找
- 所有文档的索引
- 按主题、场景分类
- 学习路径建议
### 🎯 快速查找
| 我想... | 查看文档 |
|--------|---------|
| 快速上手 | [GETTING_STARTED.md](GETTING_STARTED.md) |
| 使用数据库 | [TinyFx.Data.SqlSugar](src/TinyFx.Data.SqlSugar/README.md) |
| 使用缓存 | [EXTENSIONS_GUIDE.md#缓存服务](EXTENSIONS_GUIDE.md#2-缓存服务) |
| 文件上传 | [文件存储指南](src/TinyFx.Extensions.FileStorageService/DI_USAGE_GUIDE.md) |
| Excel导入导出 | [EXTENSIONS_GUIDE.md#Excel处理](EXTENSIONS_GUIDE.md#5-excel处理) |
| 深入学习架构 | [FRAMEWORK_GUIDE_EXPERT.md](FRAMEWORK_GUIDE_EXPERT.md) |
---
## 📂 项目结构
```
TinyFxCore/
├── src/ # 源代码
│ ├── TinyFx.Core/ # 核心库
│ ├── TinyFx.AspNet/ # Web增强
│ ├── TinyFx.Data.SqlSugar/ # ORM
│ ├── TinyFx.Extensions.*/ # 扩展库
│ └── TinyFxVSIX/ # VS插件工具
│
├── demo/ # 示例项目
│ ├── Demo.WebAPI/ # Web API示例
│ ├── Demo.ConsoleEXE/ # 控制台示例
│ ├── SqlSugarDemo/ # 数据库示例
│ ├── EPPlusDemo/ # Excel示例
│ ├── Redis/ # 缓存示例
│ └── RabbitMQ/ # 消息队列示例
│
├── Testing/ # 测试项目
│ ├── TinyFx.AspNet.Tests/ # 单元测试
│ ├── TinyFx.Extensions.*.Tests/ # 扩展库测试
│ └── McpServerDemo/ # MCP服务器示例
│
├── GETTING_STARTED.md # 快速入门
├── EXTENSIONS_GUIDE.md # 扩展库指南
├── FRAMEWORK_GUIDE_EXPERT.md # 专家指南
├── DOCS_INDEX.md # 文档导航
└── README.md # 本文件
```
---
## 📊 示例项目
### Web API
```bash
cd demo/Demo.WebAPI
dotnet run
```
访问 http://localhost:5000/swagger
### 数据库操作
```bash
cd demo/SqlSugarDemo
dotnet run
```
### Excel处理
```bash
cd demo/EPPlusDemo
dotnet run
```
### 缓存和消息队列
```bash
cd demo/Redis/RedisDemo1
dotnet run
cd demo/RabbitMQ/MQDemo1
dotnet run
```
---
## 🛠️ 开发工具
### TinyFxVSIX - Visual Studio 插件
TinyFx提供了强大的Visual Studio扩展工具,提高开发效率。
**功能特性:**
- ✅ 数据库连接管理
- ✅ 实体代码生成(SqlSugar/TinyFx双模式)
- ✅ NuGet包管理
- ✅ 项目模板
**安装:**
```bash
# 从VSIX安装
双击 TinyFxVSIX.vsix
# 或在VS中搜索
扩展 -> 管理扩展 -> 搜索 "TinyFx"
```
**[📖 工具使用指南](src/TinyFxVSIX/README.md)**
---
## 🧪 测试
### 运行所有测试
```bash
dotnet test
```
### 运行特定测试
```bash
# ASP.NET测试
cd Testing/TinyFx.AspNet.Tests
dotnet test
# 文件存储测试
cd Testing/TinyFx.Extensions.FileStorageService.Tests
dotnet test
```
### 测试覆盖率
| 项目 | 测试数量 | 覆盖率 |
|------|---------|--------|
| TinyFx.AspNet | 45+ | 85% |
| FileStorageService | 98+ | 90% |
| EPPlus | 35+ | 88% |
| Garnet | 20+ | 82% |
---
## 🐳 Docker部署
### Docker Compose
```yaml
version: '3.8'
services:
api:
image: tinyfx/webapi:latest
ports:
- "5000:80"
environment:
- ASPNETCORE_ENVIRONMENT=Production
depends_on:
- mysql
- redis
- rabbitmq
mysql:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=password
volumes:
- mysql-data:/var/lib/mysql
redis:
image: redis:7-alpine
volumes:
- redis-data:/data
rabbitmq:
image: rabbitmq:3-management
ports:
- "15672:15672"
volumes:
mysql-data:
redis-data:
```
```bash
docker-compose up -d
```
---
## 🚀 性能基准
### Web API性能
```
测试环境:
- CPU: Intel i7-12700K
- RAM: 32GB DDR5
- OS: Windows 11
- .NET: 10.0
测试结果:
┌─────────────────┬─────────┬─────────┬─────────┐
│ 并发数 │ RPS │ 平均延迟 │ P99延迟 │
├─────────────────┼─────────┼─────────┼─────────┤
│ 100 │ 25,000 │ 4ms │ 8ms │
│ 500 │ 50,000 │ 10ms │ 20ms │
│ 1000 │ 80,000 │ 12ms │ 25ms │
└─────────────────┴─────────┴─────────┴─────────┘
```
---
## 🤝 贡献指南
我们欢迎任何形式的贡献!
### 如何贡献
1. **Fork** 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 **Pull Request**
### 代码规范
- 遵循 [C# 编码约定](https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions)
- 使用有意义的变量命名
- 添加必要的注释和文档
- 编写单元测试
- 保持代码整洁
---
## 📋 Git分支管理
- **master** - 主分支,所有发布的版本(tag版本)
- **develop** - 开发分支
- **test** - 当前测试分支
- **release-*** - 发布测试分支
- **hotfix** - 线上bug修改
---
## 📜 许可证
本项目采用 **MIT License** 开源协议。
详见 [LICENSE](LICENSE) 文件。
---
## 🙏 致谢
感谢以下开源项目:
- [ASP.NET Core](https://github.com/dotnet/aspnetcore)
- [SqlSugar](https://github.com/donet5/SqlSugar)
- [Serilog](https://github.com/serilog/serilog)
- [RabbitMQ](https://www.rabbitmq.com/)
- [MinIO](https://min.io/)
- [EPPlus](https://github.com/EPPlusSoftware/EPPlus)
---
## 📞 联系我们
- **作者**: longjie
- **Gitee**: https://gitee.com/longjie2016/TinyFxCore
- **Issues**: https://gitee.com/longjie2016/TinyFxCore/issues
---
## 🌟 Star History
如果这个项目对你有帮助,请给我们一个 ⭐️ Star!
---
**🎉 TinyFx - 让.NET开发更简单!**
Made with ❤️ by [longjie](https://gitee.com/longjie2016)