Conqueror.CQS
0.1.0-beta.20
See the version list below for details.
dotnet add package Conqueror.CQS --version 0.1.0-beta.20
NuGet\Install-Package Conqueror.CQS -Version 0.1.0-beta.20
<PackageReference Include="Conqueror.CQS" Version="0.1.0-beta.20" />
paket add Conqueror.CQS --version 0.1.0-beta.20
#r "nuget: Conqueror.CQS, 0.1.0-beta.20"
// Install Conqueror.CQS as a Cake Addin #addin nuget:?package=Conqueror.CQS&version=0.1.0-beta.20&prerelease // Install Conqueror.CQS as a Cake Tool #tool nuget:?package=Conqueror.CQS&version=0.1.0-beta.20&prerelease
Conqueror
A set of libraries to powercharge your .NET development.
Open points
- for some features provide code snippets in documentation instead of library (e.g. common middlewares etc.)
- use
.ConfigureAwait(false)
everywhere - add null checks to public API methods to support users that do not use nullable reference types
CQS
- for .NET 6 add analyzer that ensures the
ConfigurePipeline
method is present on all handlers with pipeline configuration interface (including code fix) - rename
CommandHandlerMetadata
toCommandHandlerRegistration
and make it public in the abstractions to allow external libraries to use it for server transports- same for queries
- add tests for handlers that throw exceptions to assert contexts are properly cleared
- expose command/query and conqueror context objects directly on middleware contexts
- allow registering all custom interfaces in assembly as clients with
AddConquerorCommandClientsFromAssembly(Assembly assembly, Action<ICommandPipelineBuilder> configurePipeline)
CQS middleware
- create projects for common middlewares, e.g.
Conqueror.CQS.Middleware.Timeout
Conqueror.CQS.Middleware.Retry
CQS ASP Core
rename libraries to
Conqueror.CQS.Transport.Http.Client
andConqueror.CQS.Transport.Http.Server.AspNetCore
delegate route path creation to service
- in config for client middleware allow setting path convention
- instruct users to place their route convention into their contracts module to allow both server and client to use the same convention
- allow path to be set for http commands and queries via attribute
- allow version to be set for http commands and queries via attribute
- in config for client middleware allow setting path convention
allow complex objects in GET queries by JSON-serializing them
allow registering commands and queries via DI extension instead of attribute
add missing tests
- complex query objects for GET
- custom serializer settings for read/write
- null properties
- null GET parameters
- throw error on double http service registration
http server edge cases
- throw error when duplicate command name is found
Eventing
- make event publisher middleware pipeline configurable
- make event publishing strategy customizable
- ship two strategies out of the box (parallel and sequential)
- make them available as service collection extension methods
- sequential strategy as default
- handle cancellation in strategy
- ship two strategies out of the box (parallel and sequential)
- add tests for service collection configuration
- for .NET 6 add analyzer that ensures the
ConfigurePipeline
method is present on all handlers with pipeline configuration interface (including code fix)
Interactive streaming
- implement middleware support
- implement clients and transport infrastructure
- for .NET 6 add analyzer that ensures the
ConfigurePipeline
method is present on all handlers with pipeline configuration interface (including code fix)
Interactive streaming ASP Core
- refactor implementation to use transport client
- ensure api description works
- add tests for behavior when websocket connection is interrupted (i.e. disconnect without proper close handshake)
- consider adding explicit message for signaling the end of the stream
- propagate conqueror context
- delegate route path creation to service
- allow setting prefetch options (e.g. buffer size, prefetch batch size)
Reactive streaming
- implement basic version
- implement middleware support
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Conqueror.Common (>= 0.1.0-beta.20)
- Conqueror.Common.Abstractions (>= 0.1.0-beta.20)
- Conqueror.CQS.Abstractions (>= 0.1.0-beta.20)
- Conqueror.CQS.Common (>= 0.1.0-beta.20)
-
net7.0
- Conqueror.Common (>= 0.1.0-beta.20)
- Conqueror.Common.Abstractions (>= 0.1.0-beta.20)
- Conqueror.CQS.Abstractions (>= 0.1.0-beta.20)
- Conqueror.CQS.Common (>= 0.1.0-beta.20)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on Conqueror.CQS:
Package | Downloads |
---|---|
Conqueror
Collection package that provides a simple entry point to all basic Conqueror packages. Please note that this package does not contain any analyzer or transport packages. Those packages must be explicitly added. |
|
Conqueror.CQS.Transport.Http.Server.AspNetCore
Part of the Conqueror library set. Automatically generate HTTP endpoints for apps using ASP Core and the Conqueror command-query-separation (CQS) package. |
|
Conqueror.CQS.Transport.Http.Client
Part of the Conqueror library set. Create HTTP clients for servers using the Conqueror command-query-separation (CQS) package. |
|
Conqueror.CQS.Middleware.Logging
Part of the Conqueror library set. Logging middlewares for command-query-separation (CQS). |
|
Conqueror.CQS.Middleware.DataAnnotationValidation
Part of the Conqueror library set. Data annotation validation middlewares for command-query-separation (CQS). |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.6.0-beta.2 | 75 | 8/25/2024 |
0.6.0-beta.1 | 69 | 8/13/2024 |
0.5.0-beta.4 | 184 | 11/19/2023 |
0.5.0-beta.3 | 113 | 7/18/2023 |
0.5.0-beta.2 | 97 | 7/15/2023 |
0.5.0-beta.1 | 84 | 4/22/2023 |
0.4.0-beta.2 | 98 | 2/26/2023 |
0.4.0-beta.1 | 95 | 2/25/2023 |
0.3.0-beta.3 | 96 | 2/12/2023 |
0.3.0-beta.2 | 130 | 1/9/2023 |
0.3.0-beta.1 | 116 | 1/7/2023 |
0.2.0-beta.3 | 115 | 1/1/2023 |
0.2.0-beta.2 | 170 | 11/9/2022 |
0.2.0-beta.1 | 120 | 11/6/2022 |
0.1.0-beta.21 | 106 | 10/29/2022 |
0.1.0-beta.20 | 105 | 10/28/2022 |
0.1.0-beta.19 | 137 | 10/20/2022 |
0.1.0-beta.18 | 100 | 10/16/2022 |
0.1.0-beta.17 | 100 | 10/16/2022 |
0.1.0-beta.16 | 101 | 10/16/2022 |
0.1.0-beta.15 | 100 | 10/15/2022 |
0.1.0-beta.14 | 135 | 7/31/2022 |
0.1.0-beta.13 | 132 | 7/31/2022 |
0.1.0-beta.12 | 119 | 7/30/2022 |
0.1.0-beta.11 | 117 | 7/30/2022 |
0.1.0-beta.10 | 111 | 7/30/2022 |
0.1.0-beta.9 | 118 | 7/30/2022 |
0.1.0-beta.8 | 123 | 7/16/2022 |
0.1.0-beta.7 | 137 | 7/3/2022 |
0.1.0-beta.6 | 135 | 4/19/2022 |
0.1.0-beta.5 | 131 | 4/17/2022 |
0.1.0-beta.4 | 129 | 4/17/2022 |
0.1.0-beta.3 | 130 | 4/17/2022 |
0.1.0-beta.2 | 130 | 4/17/2022 |
0.1.0-beta.1 | 140 | 4/17/2022 |