RJCore 2.0.0

dotnet new install RJCore::2.0.0
This package contains a .NET Template Package you can call from the shell/command line.

分层模板说明

参照 DDD 经典四层分层 + 结合 cwoodruff的分层进行整合

|--Api //api服务,对应Interface层
|    |--DI //依赖注册
|--WorkerService //windows service 服务, 对应Interface层
|--Application //应用层,进行逻辑算法处理
|    |--Model //用户入参、出参
|    |--Services //针对领域定义的Service接口的实现
|    |--Supervisor //对数据层的加层调用接口的实现,即服务不直接调用数据层
|--Domain //领域层(一个代码仓库聚合一个领域)
|    |--Repositories //数据层处理定义
|    |--Services //服务定义
|    |--Entities //实体定义
|    |--Enums //枚举定义
|    |--Connection //数据库连接定义(工厂模式+dapper时可以使用;freesql则忽略)【注:本模板使用freesql作为数据层处理组件】
|    |--Supervisor //对数据层的加层调用接口的定义,即服务不直接调用数据层
|--Infrastructure //基础设施,包括工具、数据层(持久层)、外部服务调用等
|    |--Common //工具、通用服务等
|    |--Persistence //数据层
|    |--RemoteServices//第三方服务
|--Tests //单元测试

分层说明

表现层(Api or windowsService) 引用 Application、Domain、Infrastructure
应用层(Application) 引用 Domain、Infrastructure
领域层(domain) 领域定义,不处理逻辑运算,供其他层引用
基础设施层(Infrastructure) 引用 Domain Tests 单元测试

接口调用凭证

依赖包:Infrastructure.AccessToken.Authorization

<PackageReference Include="Infrastructure.AccessToken.Authorization" Version="1.0.0" />

使用说明详见: Infrastructure.AccessToken.Authorization

多个数据库连接

//freesql的多实例注入
builder.Services.ConfigureFreeSqls(Configuration);

public static IServiceCollection ConfigureFreeSqls(this IServiceCollection services, IConfiguration configuration)
{
    var fsql = new CustomFreeSqlCloud();    

    fsql.Register(Databases.Default, () => new FreeSqlBuilder()
        .UseConnectionString(DataType.SqlServer, configuration["ConnectionStrings:DefaultContext"].ToString())
        .Build());

    fsql.Register(Databases.HR, () => new FreeSqlBuilder()
        .UseConnectionString(DataType.SqlServer, configuration["ConnectionStrings:ContextHR"].ToString())
        .Build());

    fsql.Register(Databases.Public, () => new FreeSqlBuilder()
        .UseConnectionString(DataType.SqlServer, configuration["ConnectionStrings:ContextPublicDb"].ToString())
        .Build());
        
    services.AddSingleton<IFreeSql>(fsql);
    services.AddSingleton(fsql); 

    return services;
}
/*end 数据库连接*/

校验失败统一输出

builder.Services.AddControllers(options => {
    //使用统一结构响应输出参数验证不通过的情况
    options.Filters.Add<ValidationOutputAttribute>();
}).AddNewtonsoftJson(); //.AddNewtonsoftJson(); 对JsonIgnore等生效
// 禁用默认校验
builder.Services.Configure<ApiBehaviorOptions>(options =>
{
    options.SuppressModelStateInvalidFilter = true;
});

Tests层

进行必要的单元测试、方法测试验证等。

参考

cwoodruff/
DDD-经典四层架构应用

  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 649 3/1/2024
1.2.1 212 7/4/2023
1.2.0 186 7/3/2023
1.1.0 390 11/10/2022
1.0.0 444 3/20/2022