- CLAUDE.md: universal development guidelines - README.md: project description (consistent template) - CONTRIBUTING.md: contribution workflow - CHANGELOG.md: version history Co-Authored-By: Svrnty Inc. <eng@svrnty.com>
67 lines
1.6 KiB
Markdown
67 lines
1.6 KiB
Markdown
# Svrnty.CQRS
|
|
|
|
> Modern CQRS framework for .NET with gRPC source generation and HTTP Minimal API support.
|
|
|
|
## Where This Fits
|
|
|
|
**Layer**: libs
|
|
**Depends on**: Nothing (standalone .NET framework)
|
|
**Depended on by**: a-gent-app (backend services), flutter-cqrs-datasource (client)
|
|
**Git**: git.openharbor.io/svrnty/dotnet-cqrs.git
|
|
|
|
## Tech Stack
|
|
|
|
- **Language**: C# 14 / .NET 10
|
|
- **Framework**: ASP.NET Core Minimal API, gRPC
|
|
- **Key Dependencies**: FluentValidation 11.x, Grpc.AspNetCore, PoweredSoft.DynamicQuery
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build
|
|
dotnet build
|
|
|
|
# Run
|
|
dotnet run --project Svrnty.Sample
|
|
|
|
# Test
|
|
dotnet test
|
|
```
|
|
|
|
## Architecture
|
|
|
|
10 NuGet packages organized by concern:
|
|
|
|
- **Abstractions**: Core interfaces (ICommandHandler, IQueryHandler)
|
|
- **Core**: Discovery, registration, handler execution
|
|
- **MinimalApi**: HTTP endpoint mapping with RFC 7807 validation
|
|
- **Grpc**: gRPC service support with Google Rich Error Model
|
|
- **Grpc.Generators**: Source generator for .proto files and service implementations
|
|
- **DynamicQuery**: PoweredSoft integration for filtering, sorting, paging
|
|
- **FluentValidation**: Validator registration helpers
|
|
|
|
## Configuration
|
|
|
|
```csharp
|
|
// Register handlers
|
|
builder.Services.AddCommand<CreateUserCommand, int, CreateUserCommandHandler>();
|
|
builder.Services.AddQuery<GetUserQuery, User, GetUserQueryHandler>();
|
|
|
|
// Configure CQRS with gRPC + HTTP
|
|
builder.Services.AddSvrntyCqrs(cqrs =>
|
|
{
|
|
cqrs.AddGrpc(grpc => grpc.EnableReflection());
|
|
cqrs.AddMinimalApi();
|
|
});
|
|
|
|
app.UseSvrntyCqrs();
|
|
```
|
|
|
|
## Contributing
|
|
|
|
See [CLAUDE.md](./CLAUDE.md) for development guidelines.
|
|
|
|
## License
|
|
|
|
MIT OR Apache-2.0
|