Luck.Framework 是一组可组合的 .NET 类库,覆盖模块化启动、依赖注入、数据访问、缓存、事件总线、日志与测试基础设施。运行时类库仅支持 net10.0;源生成器仍面向 netstandard2.0,以兼容 Roslyn analyzer 加载约定。
典型 Web 应用从模块系统和自动依赖注入开始:
dotnet add package Luck.AppModule
dotnet add package Luck.AutoDependencyInjectionusing Luck.AppModule;
using Luck.AutoDependencyInjection;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplication<AppModule>();
var app = builder.Build();
app.InitializeApplication();
app.Run();
public sealed class AppModule : LuckAppModule
{
}按需要继续安装数据访问、消息、缓存或日志类库。每个模块的 README 都包含包安装命令、实际公开 API、配置示例和依赖关系。
| 类库 | 用途 |
|---|---|
| Luck.Framework | 领域模型、模块契约、事件总线抽象、扩展方法和通用基础设施。 |
| Luck.AppModule | 扫描模块、解析依赖并执行服务配置与应用初始化生命周期。 |
| Luck.AutoDependencyInjection | 基于标记接口或特性的自动服务注册,以及应用初始化扩展。 |
| Luck.AspNetCore | ASP.NET Core 请求取消令牌与 JSON 转换辅助类型。 |
| Luck.DDD.Domain | 实体、聚合根及 SQL 仓储抽象。 |
| Luck.Pipeline | 可中断的上下文处理管道与委托管道构建器。 |
| 类库 | 用途 |
|---|---|
| Luck.EntityFrameworkCore | EF Core DbContext 基类、驱动提供程序抽象、JSON 转换和连接拦截器。 |
| Luck.EntityFrameworkCore.MySQL | 通过与目标框架匹配的 Pomelo 或 Oracle provider 注册 MySQL 驱动。 |
| Luck.EntityFrameworkCore.PostgreSQL | 通过 Npgsql 注册 PostgreSQL EF Core 驱动。 |
| Luck.EntityFrameworkCore.MemoryDataBase | 注册 EF Core InMemory 驱动,适合测试场景。 |
| Luck.Dapper | Dapper 驱动抽象及实体、聚合根 SQL 仓储实现。 |
| Luck.Dapper.ClickHouse | ClickHouse 连接配置、模块和 Dapper 驱动。 |
| Luck.MongoDB | MongoDB 上下文选项与 ObjectId 约定支持。 |
| 类库 | 用途 |
|---|---|
| Luck.EventBus.RabbitMQ | RabbitMQ 集成事件发布、订阅与后台消费服务。 |
| Luck.EventBus.OpenTelemetry | 将 Luck 事件总线诊断事件转换为 OpenTelemetry Activity。 |
| Luck.EventBus.Kafka | Kafka 连接配置模型;当前不包含生产者或消费者实现。 |
| Luck.Redis.StackExchange | StackExchange.Redis 连接及 Redis Hash/List 服务注册。 |
| Luck.Logging.Serilog | Serilog 主机日志、滚动文件输出和结构化日志字段。 |
| 类库 | 用途 |
|---|---|
| Luck.SourceGenerator | 用于服务注册的 Roslyn 增量源生成器。 |
| Luck.TestBase | 以 Luck 模块和依赖注入容器为基础的集成测试基类。 |
| 场景 | 建议组合 |
|---|---|
| ASP.NET Core 应用 | Luck.AppModule、Luck.AutoDependencyInjection、Luck.AspNetCore、Luck.Logging.Serilog |
| EF Core 应用 | Luck.EntityFrameworkCore 加一个数据库驱动类库 |
| RabbitMQ 消息处理 | Luck.EventBus.RabbitMQ,需要链路追踪时再加 Luck.EventBus.OpenTelemetry |
| Dapper + ClickHouse | Luck.Dapper、Luck.Dapper.ClickHouse |
| 集成测试 | Luck.TestBase,按被测模块追加其运行时依赖 |
dotnet restore Luck.sln
dotnet build Luck.sln --no-restore
dotnet test test/Luck.UnitTest/Luck.UnitTest.csproj最新变更见 2.0.15 更新记录,历史记录位于 change 目录。许可证见 LICENSE。