仓库与解决方案地图
FreeKitModules 不是只有一个 Web 项目。主仓库同时包含框架子模块、共享构建块、业务模块、多个宿主和三个可独立运行的配套项目。先确认自己要改的是哪一层,可以避免把 HTTP、领域逻辑或基础设施代码放错位置。
顶层目录
FreeKitModules/
├── src/
│ ├── FreeKit/ # Git submodule:FreeKit 框架与 NuGet 包
│ ├── BuildingBlocks/ # 本仓库共享构建块,不是业务模块
│ ├── Services/ # CmsKit、Identity、Member、Platform 与宿主
│ └── Test/ # 主业务模块测试
├── auth/ # 独立 OpenIddict 授权服务
├── basic/ # 独立 BasicIdentity 示例/轻量宿主
├── cg/ # CodeGen 后端、宿主与 Tauri UI
├── build/ # Compose、镜像、发布与可观测性配置
└── docs-site/ # 唯一项目文档站
前端不在本仓库内,工作区中的位置是 ../kit-pro-frontend。修改前后端契约时,应同时检查对应前端调用。
解决方案入口
| 入口 | 覆盖范围 | 典型用途 |
|---|---|---|
FreeKitModules.slnx | 主框架包、构建块、Services 与 FreeKit.Tests | 日常完整构建和测试 |
src/Services/Modules.slnx | 业务模块、宿主与测试 | 聚焦模块化单体服务 |
src/FreeKit/FreeKit.slnx | FreeKit 子模块中的包和测试 | 修改框架/NuGet 包 |
auth/FreeKit.Auth.slnx | 独立授权服务 | 调试 OAuth2/OIDC 授权中心 |
basic/FreeKit.BasicIdentity.slnx | 轻量 Identity | 调试独立基础认证方案 |
cg/FreeKit.CodeGen.slnx | 代码生成器 | 调试 CodeGen 与桌面 UI |
主线验证命令:
dotnet restore FreeKitModules.slnx
dotnet build FreeKitModules.slnx -c Release
dotnet test FreeKitModules.slnx
主业务模块
src/Services/
├── CmsKit/
│ ├── FreeKit.CmsKit/ # Domain / Application / Contracts / Runtime
│ └── FreeKit.CmsKit.HttpApi/ # Controllers / Hubs / HTTP 注册
├── Identity/
│ ├── FreeKit.Identity/ # 账户、角色、权限、组织与安全能力
│ ├── FreeKit.Identity.HttpApi/ # Identity HTTP 接入层
│ ├── FreeKit.Identity.Infrastructure/ # 文件、设置、通用附件等共享基础设施
│ ├── FreeKit.Member/ # 会员等级、积分、标签、地址
│ └── FreeKit.Member.HttpApi/ # Member HTTP 接入层
├── Platform/
│ ├── FreeKit.Platform/ # 平台工具子域
│ └── FreeKit.Platform.HttpApi/ # Platform HTTP 接入层
└── Host/
├── FreeKit.DI/ # 后台宿主使用的模块映射与组合扩展
├── FreeKit.Host/ # 聚合 API 宿主
├── FreeKit.Job.Host/ # 调度宿主
├── FreeKit.MessageHandler.Host/# 消息处理宿主
└── FreeKit.HealthChecks/ # 独立健康检查 UI
核心项目和 *.HttpApi 项目刻意分离:后台宿主只引用核心程序集,不需要加载 Controller 或 SignalR Hub;主 API 宿主同时组合两者。具体注册流程见系统架构总览和宿主总览。
从哪里开始读代码
| 目标 | 首先阅读 |
|---|---|
| 理解主 API 如何启动 | src/Services/Host/FreeKit.Host/Program.cs |
| 理解后台宿主加载哪些模块 | src/Services/Host/FreeKit.DI/E.cs |
| 理解模块启动协议 | src/FreeKit/src/IGeekFan.FreeKit.Modularity/IModuleStartup.cs |
| 理解自动注册与 Autofac 组合 | src/BuildingBlocks/IGeekFan.FreeKit.Web/DI/WebApplicationBuilderExtensions.cs |
| 理解应用服务基类和权限辅助方法 | src/BuildingBlocks/IGeekFan.FreeKit.Infrastructure/Application/AppliactionService.cs |
| 理解控制器默认认证 | src/BuildingBlocks/IGeekFan.FreeKit.Infrastructure/Application/FreeKitController.cs |
| 查看项目级架构约束 | .github/guidelines/architecture.md 与 .github/guidelines/conventions.md |
按角色阅读
- 首次参与开发:快速开始 → 仓库地图 → 系统架构 → 创建业务模块。
- 业务模块开发者:对应模块总览 → 分层与数据访问 → API 接入与权限。
- 框架维护者:FreeKit 功能总览 → 构建块 → 扩展包。
- 运维人员:宿主总览 → FreeKit 部署 → 可观测性。