TKWF — 领域自治框架
.NET 10 领域驱动设计框架,专为 AI 结对编程设计。
声明式标注 → 全自动生成 API / 客户端 / AOP 管线。
让 AI 写 Service,框架负责剩下的。
为什么 TKWF 适合 Agentic Coding?
经典场景快速体验
写一个带 DomainUser 的领域服务,标注 [GenerateController],框架自动生成 GraphQL Resolver 和 REST 端点,无需手写 Controller。
[GenerateController]
public class TodoService(DomainUser<AppUserInfo> user)
: DomainServiceBase<AppUserInfo>(user)
{
public async Task<Todo> CreateAsync(string title, string content)
{
var todo = new Todo { Title = title, Content = content, UserId = User.UserId };
return await Repository.InsertAsync(todo);
}
}
用 [AuthorityFilter] 标注方法, 框架自动拦截未授权调用。支持 Role-based 和自定义策略。
[AuthorityFilter(Roles = "Admin")]
public async Task<Report> GenerateReportAsync() { ... }
同一个 Service,框架自动生成三种协议的端点。 客户端可以按需选择传输方式。
// 只需配置
builder.ConfigWebAppDomain<AppUserInfo, AppDomainInitializer>()
.UseGraphQLApiService<AppUserInfo>() // GraphQL
.UseRestApiService<AppUserInfo>(); // REST
TKWF.Domain.Maui 让 MAUI 应用无缝集成 DomainUser 体系, 客户端调用远程服务如同调用本地方法。
核心特性
领域自治
DomainUser 自持实例化,不依赖 DI 容器,杜绝串号问题。每个请求绑定独立的领域上下文。
AOP 静态拦截
编译期 Source Generator 生成装饰器,零运行时反射。权限、事务、日志等横切关注点声明式处理。
代码生成
[GenerateController] 一个标注,SG 自动生成控制器、接口、Resolver、客户端代码。
多协议传输
一份 Service → GraphQL (HotChocolate 16) + REST (Minimal API) + RPC 三端自动暴露。
安全体系
AuthorityFilter + Role-based 授权 + Challenge-Response 登录,开箱即用的安全防护。
生态集成
Web / MAUI / Blazor / FreeSql 全方位集成,适配多种应用场景。
分章节阅读
入门指南
5 分钟创建第一个带 AOP 的领域服务,快速上手 TKWF。
框架概览
核心概念:DomainUser、AOP 管线、代码生成管线 SG#1~#4。
DomainUser 详解
深入理解领域自治的核心机制与最佳实践。
AOP 管线
AOP 静态拦截的工作原理、自定义 Filter、管线编排。
代码生成
Source Generator 管线详解:SG#1~#4 的职责与扩展。
认证与授权
Challenge-Response 登录、AuthorityFilter、Role-based 访问控制。
GraphQL 传输
基于 HotChocolate 16 的 GraphQL 端点配置与查询。
REST 传输
基于 Minimal API 的 REST 端点配置与使用。
RPC 远程调用
通过 ApiClient 实现远程过程调用。
Web 集成
Session 中间件、HttpContext 适配、Web 环境配置。
Blazor 集成
在 Blazor Server / WASM 中使用 TKWF 领域框架。
FreeSql ORM 适配
FreeSql 作为数据层的配置与使用。
配置参考
ConfigWebAppDomain 配置项完整说明。
最佳实践
架构设计建议、常见反模式、性能优化。
NuGet 包
| 包名 | 说明 |
|---|---|
TKWF.Domain |
领域框架核心(DomainUser、AOP、[GenerateController]) |
TKWF.Domain.Web |
Web 集成(Session 中间件、HttpContext 适配) |
TKWF.Domain.Maui |
MAUI 集成 |
TKWF.Domain.Blazor |
Blazor 集成 |
TKWF.Domain.FreeSql |
FreeSql ORM 适配 |
TKWF.Domain.ApiService.HotChocolate |
GraphQL 传输层(HotChocolate 16) |
TKWF.Domain.ApiService.MinimalApi |
REST 传输层(Minimal API) |
TKWF.Domain.ApiClient |
RPC 客户端核心 |
TKWF.Domain.ApiClient.GraphQL |
GraphQL 客户端 |
TKWF.Domain.ApiClient.Rest |
REST 客户端 |
TKWF.Cryptography |
密码学工具 |
TKWF.Core |
核心基础设施 |
TKWF.Abstractions |
共享抽象层 |
链接
- GitHub: LoongBa/TKW.Framework
- 许可证: MIT
- 构建状态: