# 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 微服务开发框架
![.NET Version](https://img.shields.io/badge/.NET-10.0-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Build](https://img.shields.io/badge/build-passing-brightgreen) [![Gitee](https://img.shields.io/badge/Gitee-TinyFxCore-red)](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)