BuildingBlocks
src/BuildingBlocks/ 包含所有模块共享的基础设施构建块。
项目列表
| 项目 | 说明 | 文档 |
|---|---|---|
| IGeekFan.FreeKit.Infrastructure | Controller 基类、DDD 约定、认证授权、缓存、异常通知 | 详情 |
| IGeekFan.FreeKit.Web | 一站式启动配置、Swagger、认证、模块注册 | 详情 |
| IGeekFan.FreeKit.Auth.Client | OAuth2 SSO 客户端,对接 OpenIddict | 详情 |
| IGeekFan.FreeKit.CLI | 代码脚手架工具,基于 Scriban 模板 | 详情 |
依赖关系
核心能力
Infrastructure 提供
| 能力 | 说明 |
|---|---|
| Controller 基类 | FreeKitController、KitApiControllerBase |
| 应用服务 | ApplicationService、CrudAppService |
| 领域服务 | DomainService、IDomainEventDispatcher |
| 认证授权 | CookieJwtBearerHandler、BasicAuthentication、Permission 系统 |
| 缓存 | CacheService、AopCacheable、Redis/Memory 缓存 |
| 异常体系 | BusinessException、EntityNotFoundException、Guard |
| 加密工具 | AES、DES、SM4、MD5、Base64 |
| 中间件 | EncryptionMiddleware、BasicAuth |
| 过滤器 | 异常通知、数据脱敏、reCAPTCHA |
| DTO | ApiResponse、PageQuery、EnumDto |
Web 提供
| 能力 | 说明 |
|---|---|
| 一站式启动 | UseFreeKit() 自动配置所有服务 |
| 认证配置 | JWT + OpenIddict 双模式,7 个 OAuth 提供商 |
| Swagger | 6 个文档、JWT Bearer、枚举过滤器、RapiDoc UI |
| 缓存系统 | Redis + Memory 双策略,AOP 缓存 |
| 模块注册 | IModuleStartup 自动扫描 |
| 分布式事件 | CAP + MediatR |
| IP 地理定位 | IP2Region |
| FreeSql | 全局过滤器、AOP 审计 |
Auth.Client 提供
| 能力 | 说明 |
|---|---|
| Token 验证 | OpenIddict Token 验证 |
| SSO 对接 | 多应用单点登录 |
| Scope 控制 | 基于 Scope 的权限控制 |
CLI 提供
| 能力 | 说明 |
|---|---|
| 代码脚手架 | 基于实体生成全套代码 |
| Scriban 模板 | 可自定义模板 |
| 多 Profile | CmsKit、Platform 两种风格 |
使用方式
各业务模块通过项目引用使用这些构建块:
<ProjectReference Include="..\..\BuildingBlocks\IGeekFan.FreeKit.Infrastructure\IGeekFan.FreeKit.Infrastructure.csproj" />
<ProjectReference Include="..\..\BuildingBlocks\IGeekFan.FreeKit.Web\IGeekFan.FreeKit.Web.csproj" />