# TinyFx-Template **Repository Path**: longjie2016/tiny-fx-template ## Basic Information - **Project Name**: TinyFx-Template - **Description**: TinyFx-Template项目代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-11 - **Last Updated**: 2026-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TinyFx Web API 项目模板 这是一个可直接打开、构建和运行的 TinyFx Web API 基础项目,也可以安装为 `dotnet new` 模板。它包含 WebApi、Service、Models、DAL、Common 和 Tests 六个基础项目,并预留 `Trd.Sdk` 解决方案目录用于归类第三方 SDK 项目;模板不包含具体业务、真实账号或密钥。 ## 目录与类库说明 | 目录或项目 | 类型 | 职责 | |---|---|---| | `src/TinyFx.Template.WebApi` | Web 宿主 | Controller、启动配置、中间件、Swagger 和 HTTP 接口入口 | | `src/TinyFx.Template.Service` | 业务类库 | 业务规则、流程编排以及 DAL、具体第三方 SDK 的调用 | | `src/TinyFx.Template.Models` | 模型类库 | 接口输入输出模型和跨层传递模型,不放数据访问实现 | | `src/TinyFx.Template.DAL` | 数据类库 | TinyFx EO/MO、数据库访问和事务相关实现 | | `src/TinyFx.Template.Common` | 公共类库 | 稳定的常量、通用类型和跨项目基础能力 | | `tests/TinyFx.Template.Tests` | 测试项目 | 业务、接口和基础集成验证 | | `Trd.Sdk` | 解决方案目录 | 按厂商或能力归类独立的第三方 SDK 类库 | 推荐依赖方向为 `WebApi → Service → DAL/Models/Common/具体 SDK`。具体 SDK 项目不引用 WebApi,不承载业务编排;只有实际使用某项第三方能力时才创建项目和添加包引用。 ## 环境约定 所有环境名和配置文件均使用小写: - `development` → `appsettings.development.json` - `uat` → `appsettings.uat.json` - `prod` → `appsettings.prod.json` 运行前通过 `ASPNETCORE_ENVIRONMENT` 指定环境。数据库密码等秘密通过环境变量覆盖,例如: ```powershell $env:ASPNETCORE_ENVIRONMENT = 'uat' $env:Data__ConnectionStrings__0__ConnectionString = 'server=...;database=...;uid=...;password=...;charset=utf8mb4;' dotnet run --project .\src\TinyFx.Template.WebApi ``` 请勿把真实连接字符串、JWT 密钥、Redis 密码或第三方平台密钥提交到仓库。 ## 直接使用 ```powershell dotnet restore .\TinyFx.Template.sln dotnet build .\TinyFx.Template.sln dotnet test .\TinyFx.Template.sln dotnet run --project .\src\TinyFx.Template.WebApi ``` 启动后访问 `http://localhost:5080/swagger` 或 `http://localhost:5080/api/health`。 ## 生成新项目 安装一次模板: ```powershell dotnet new install D:\TinyFx-Template ``` 以后按项目名创建: ```powershell dotnet new tinyfx-webapi -n Company.Product -o D:\src\Company.Product ``` `TinyFx.Template` 会在目录名、项目名、解决方案、命名空间和配置中统一替换为新名称。 新项目创建后初始化 Git,并使用小写环境分支名: ```powershell git init -b development ``` ## ORM 生成 DAL 项目显式声明了 `RootNamespace`,新项目无需先创建 `tinyfx.vsix.json`。在 `development`、`uat` 或 `prod` 分支运行 TinyFx skills 的 ORM 生成工具时,它会匹配同名的小写 `appsettings.{分支}.json`,先显示目标分支、配置文件和数据库,再生成 EO/MO。 ## 扩展模块 在 `Trd.Sdk` 解决方案目录下按厂商或能力创建独立项目,例如 `Aliyun.Facebody.Sdk`、`Wechat.Sdk`;Service 按需引用具体 SDK 项目并负责业务编排。Redis、RabbitMQ、Quartz、CAP 和 Console 按业务需要添加。添加前先检查 TinyFx 已有能力和项目当前解析到的 NuGet 版本,避免重复封装。 ## 当前兼容基线 模板与现有业务项目保持一致,使用 `.NET 6`、`TinyFx 4.0.52`、`TinyFx.AspNetCore 3.3.10` 和 `TinyFx.Data.MySql 3.3.0`。当前 TinyFx.AspNetCore 的传递依赖会产生 EasyNetQ 与 RabbitMQ.Client 版本约束警告;该问题应随 TinyFx 框架和 NuGet 包统一升级处理,不能在单个业务项目里随意覆盖版本。