跳到主要内容

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.FreeSql、OpenIddict.FreeSql
本地化数据库驱动的本地化资源Localization.FreeSql
通信与实时邮件发送、SignalR Redis 背板Email、SignalR.FreeRedis
缓存 / 健康 / 防护DataProtection Key 存储、分布式输出缓存、数据库健康检查DataProtection.FreeRedis、DataProtection.FreeSql、OutputCaching.FreeRedis、HealthChecks.FreeSql
对象存储Cloudflare R2 客户端R2.NET

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

数据访问与领域核心​

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

模块化与分层​

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

身份认证与授权​

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

本地化​

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

通信与实时​

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

缓存 / 健康 / 防护​

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

对象存储​

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

按场景找包​

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

包依赖关系​

相关文档​