RJCore 2.0.0
dotnet new install RJCore::2.0.0
分层模板说明
参照 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层
进行必要的单元测试、方法测试验证等。
参考
-
.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.