跳到主要内容

FreeKit 功能总览

FreeKit 是一套基于 FreeSql + Autofac 的模块化单体(modular monolith)框架。它把企业应用常见的基础设施能力拆成一组可单独引用的 NuGet 包,再用统一的模块启动协议(IModuleStartup)拼装成单体应用。

这一页是框架能力的「首页」:先按 能力域 看清 FreeKit 提供什么,再用 按场景找包 决策助手定位你要的那一个,最后用依赖关系图理解包之间的来龙去脉。

能力域一览

FreeKit 的全部能力可以归到 7 个域:

能力域解决什么问题包含包
数据访问与领域核心审计实体、领域事件、FreeSql 仓储/事务、当前用户、Autofac 注册IGeekFan.FreeKit(Core)、IGeekFan.FreeKit.Extras
模块化与分层ASP.NET Core 模块启动协议、[module] 路由约定IGeekFan.FreeKit.Modularity
身份认证与授权ASP.NET Core Identity 的 FreeSql Store、OpenIddict 授权服务Identity.FreeSqlOpenIddict.FreeSql
本地化数据库驱动的本地化资源Localization.FreeSql
通信与实时邮件发送、SignalR Redis 背板EmailSignalR.FreeRedis
缓存 / 健康 / 防护DataProtection Key 存储、分布式输出缓存、数据库健康检查DataProtection.FreeRedisDataProtection.FreeSqlOutputCaching.FreeRedisHealthChecks.FreeSql
对象存储Cloudflare R2 客户端R2.NET

下面按域展开,每个包给出一句话定位与文档入口。

数据访问与领域核心

  • CoreIGeekFan.FreeKit):审计实体基类、领域事件、IDomainEvent 标记,以及依赖注入约定。绝大多数包都复用它的审计与事件抽象。 → Core
  • ExtrasIGeekFan.FreeKit.Extras):FreeSql 仓储、工作单元/事务([Transactional])、当前用户(CurrentUser)、Autofac 模块注册。是业务模块落地的基座。 → Extras

模块化与分层

  • ModularityIGeekFan.FreeKit.Modularity):IModuleStartup 启动协议与 api/[module]/[controller] 路由约定,让多个业务模块共享一个宿主而不互相耦合。 → Modularity

身份认证与授权

  • Identity.FreeSqlIGeekFan.AspNetCore.Identity.FreeSql):把 ASP.NET Core Identity 的 User/Role Store 接到 FreeSql,开箱支持用户、角色、声明。 → Identity.FreeSql
  • OpenIddict.FreeSqlIGeekFan.OpenIddict.FreeSql):OpenIddict 授权服务器的 FreeSql Store 实现,支持 OAuth2 / OIDC 授权码、客户端凭据等流程。 → OpenIddict.FreeSql

本地化

  • Localization.FreeSqlIGeekFan.Localization.FreeSql):基于数据库资源的本地化,配合 _localizer["Key"] 按请求语言返回文案。 → Localization.FreeSql

通信与实时

  • EmailIGeekFan.FreeKit.Email):基于 MailKit 的邮件发送抽象,验证码、通知邮件一行调用。 → Email
  • SignalR.FreeRedisIGeekFan.AspNetCore.SignalR.FreeRedis):SignalR 的 FreeRedis 背板,多实例下消息广播互通。 → SignalR.FreeRedis

缓存 / 健康 / 防护

  • DataProtection.FreeRedis / DataProtection.FreeSql:把 ASP.NET Core DataProtection 的 Key 存到 Redis 或数据库,多实例共享密钥。 → DataProtection.FreeRedis · DataProtection.FreeSql
  • OutputCaching.FreeRedisIGeekFan.AspNetCore.OutputCaching.FreeRedis):输出缓存的 FreeRedis 分布式存储,多实例命中一致。 → OutputCaching.FreeRedis
  • HealthChecks.FreeSqlIGeekFan.Extensions.Diagnostics.HealthChecks.FreeSql):FreeSql 连接健康检查,接入 /health。 → HealthChecks.FreeSql

对象存储

  • R2.NETIGeekFan.R2.NET):Cloudflare R2 对象存储客户端,上传/下载/签名 URL。 → R2.NET

按场景找包

不确定用哪个包?从你的问题出发:

包依赖关系

相关文档