Demo | ||
PoweredSoft.CQRS | ||
PoweredSoft.CQRS.Abstractions | ||
PoweredSoft.CQRS.AspNetCore | ||
PoweredSoft.CQRS.AspNetCore.Abstractions | ||
PoweredSoft.CQRS.DynamicQuery | ||
PoweredSoft.CQRS.DynamicQuery.Abstractions | ||
PoweredSoft.CQRS.DynamicQuery.AspNetCore | ||
PoweredSoft.CQRS.GraphQL.Abstractions | ||
PoweredSoft.CQRS.GraphQL.FluentValidation | ||
PoweredSoft.CQRS.GraphQL.HotChocolate | ||
.gitattributes | ||
.gitignore | ||
azure-pipeline.yaml | ||
LICENSE | ||
PoweredSoft.CQRS.sln | ||
README.md |
CQRS
Our implementation of query and command responsability segregation (CQRS).
Getting Started
Install nuget package to your awesome project.
Sample of startup code for aspnetcore MVC
public void ConfigureServices(IServiceCollection services)
{
// make sure to add your queries and commands before the .AddPoweredSoftQueries and .AddPoweredSoftCommands
AddQueries(services);
AddCommands(services);
// adds the non related to aspnet core features.
services.AddPoweredSoftCQRS();
services
.AddControllers()
.AddPoweredSoftQueries() // adds queries to aspnetcore mvc.(you can make it configurable to load balance only commands on a instance)
.AddPoweredSoftCommands() // adds commands to aspnetcore mvc. (you can make it configurable to load balance only commands on a instance)
.AddFluentValidation();
services.AddSwaggerGen();
}
Example how to add your queries and commands.
private void AddCommands(IServiceCollection services)
{
services.AddCommand<CreatePersonCommand, CreatePersonCommandHandler>();
services.AddTransient<IValidator<CreatePersonCommand>, CreatePersonCommandValidator>();
services.AddCommand<EchoCommand, string, EchoCommandHandler>();
services.AddTransient<IValidator<EchoCommand>, EchoCommandValidator>();
}
private void AddQueries(IServiceCollection services)
{
services.AddQuery<PersonQuery, IQueryable<Person>, PersonQueryHandler>();
}