跳到主要内容

仓库与解决方案地图

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.slnxFreeKit 子模块中的包和测试修改框架/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 部署 → 可观测性。

相关文档