Ledon Framework
.NET 10 模块化 Web 开发框架。解耦优先,靠自动发现和自动注入,把心智负担降到几行接入代码;能力拆成独立包,用哪个引哪个。
30 秒上手
var builder = WebApplication.CreateBuilder(args);
builder.AddLedonWeb(o => o.UseOpenApi = true); // 模块 + 端点/控制器 + OpenAPI
builder.Services.AddLedonData(); // 数据访问(按需)
var app = builder.Build();
app.UseLedonWeb();
app.Run();
没有 AddModule、没有 AddControllers、没有 MapGet——模块、服务、事件处理器、端点全部按约定自动接线。
文档导航
| 主题 | 内容 |
|---|---|
| 快速开始 | 安装、第一个应用、运行示例 |
| 模块系统 | IModule、依赖排序、生命周期、事件 |
| 自动发现 | 允许列表规则、约定注册、逃生门 |
| Web 开发 | 端点、控制器、API 规范化、CORS |
| 数据与发件箱 | EF Core、Outbox 至少一次投递 |
| 统一事务入口 | IUnitOfWork + Saga:本地/分布式同一种写法 |
| 工作流引擎 | 多步骤编排、重试、Saga 补偿、重启恢复 |
| 平台服务 | 分布式锁/功能开关/文件存储/通知/多语言/操作审计/CQRS 管线/运维端点 |
| 飞书/Socket/SIP | 飞书通知与事件回调、TCP/UDP 与帧/包编解码、SIP 解析 |
| 流媒体 | 独立媒体面:RTMP 推拉流 + HTTP-FLV/HLS、令牌鉴权、在线状态、事件与踢人 |
| 扩展能力包 | Webhook、通知渠道、ID、播种、设置、搜索、外部登录、租户管理、列加密、Testcontainers、配额、账号/TOTP、出站客户端、Vault、CSV/Excel、图像、搜索同步、迁移、幂等、RBAC、API 版本化 |
| 可靠投递 | 发件箱清理/死信、收件箱去重 |
| gRPC | 服务间通信:自动发现与约定映射 |
| Kafka | 发件箱 ↔ Kafka 跨服务投递 |
| 缓存 | 内存 single-flight / 分布式 Redis |
| 后台队列 | Channel 队列 + 发件箱投递 |
| 定时任务 | cron 驱动(5/6 段)、失败隔离 |
| 认证授权 | JWT + API Key + 权限策略 |
| 可观测性 | OTel 链路/指标、框架 span、健康检查 |
| 弹性策略 | 重试/超时/熔断,接管全部 HttpClient |
| 强类型配置 | 绑定 + 启动校验 |
| 多租户 | 租户解析 + 后台穿透 |
| 测试基建 | TestServer 宿主 + 生命周期断言 |
能力包
模块系统(Ledon.Module)、Web(Ledon.Web)、数据(Ledon.Data)、缓存(Ledon.Caching)、队列与发件箱(Ledon.Queues)、RabbitMQ 传输(Ledon.Queues.RabbitMQ)、Kafka 传输(Ledon.Queues.Kafka)、定时任务(Ledon.Scheduling)、认证授权(Ledon.Security)、OIDC 服务器(Ledon.OpenIddict)、可观测性(Ledon.Observability)、结构化日志(Ledon.Serilog)、弹性策略(Ledon.Resilience)、配置(Ledon.Configuration)、Nacos/Apollo 配置中心(Ledon.Configuration.Nacos/Ledon.Configuration.Apollo)、多租户(Ledon.MultiTenancy)、测试基建(Ledon.Testing)、云原生默认值(Ledon.Aspire)、实时推送(Ledon.SignalR)、gRPC(Ledon.Grpc)。
详见 README 的能力矩阵。