Cqrs 2.4.1619.839

A lightweight enterprise framework to write CQRS, event-sourced and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.

There is a newer version of this package available.
See the version list below for details.
Install-Package Cqrs -Version 2.4.1619.839
dotnet add package Cqrs --version 2.4.1619.839
<PackageReference Include="Cqrs" Version="2.4.1619.839" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Cqrs --version 2.4.1619.839
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

A lightweight enterprise Function as a service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments, offering modern patterns such as CQRS and event-sourcing. Offering a superior combination of serverless, micro-service and traditional deployments both in the cloud and on-premise to suit any business. Deployments can be inter-conntected with each other sharing data and resourcing or independant and issolated while providing a consistent framework and guideline for both development, deployment, DevOps and administration.

CQRS.NET has been designed with modularity in mind... see the number of technology packages below you can chose from. Modularity applies to both development concerns like storage as well as operational modularity such as serverless or micro-service deployment, PaaS, VMs or container packaging. Every package and design choice made should be interchangeable with custom code if needed.

CQRS.NET

Tutorials and getting started

For those new to CQRS.NET, we strongly suggest you have a look at our basic Hello World Tutorial that covers the basics of sending messages between a website and a function via commands and events, including pushing real-time messages back to the browser without refreshing your screen in a very simplcity micro-service kinda of way.

Or you can have a look at our basic Northwind Tutorial which takes you through converting an existing legacy website covering some queries, views, read stores and read models, then getting into actioning function with commands, events aggregates and event handlers (the function itself). This takes you on the micro-service path as well while keeping it very simple and running all the services in one website to keep the tutorial simple. At any stage you can start to break up the well structured code into separate API endpoints.

And for those looking for a more thorough tutorial including a deep, deep dive into best practises we suggest you start with the A Beginner's Guide section in the wiki. This covers much, much more than just functions, but modern coding practises that really do work in the cloud.

Documentation

CQRS.NET API reference documentation is available to browse. We are adding more and more documentation as we edit each file. By version 3.0 we aim to have all public methods and classes documented.
User documentation is starting off for now in the wiki section of this project. We strongly invite people to post questions and issues which we'll answer and work on.

A lightweight enterprise Function as a service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments, offering modern patterns such as CQRS and event-sourcing. Offering a superior combination of serverless, micro-service and traditional deployments both in the cloud and on-premise to suit any business. Deployments can be inter-conntected with each other sharing data and resourcing or independant and issolated while providing a consistent framework and guideline for both development, deployment, DevOps and administration.

CQRS.NET has been designed with modularity in mind... see the number of technology packages below you can chose from. Modularity applies to both development concerns like storage as well as operational modularity such as serverless or micro-service deployment, PaaS, VMs or container packaging. Every package and design choice made should be interchangeable with custom code if needed.

CQRS.NET

Tutorials and getting started

For those new to CQRS.NET, we strongly suggest you have a look at our basic Hello World Tutorial that covers the basics of sending messages between a website and a function via commands and events, including pushing real-time messages back to the browser without refreshing your screen in a very simplcity micro-service kinda of way.

Or you can have a look at our basic Northwind Tutorial which takes you through converting an existing legacy website covering some queries, views, read stores and read models, then getting into actioning function with commands, events aggregates and event handlers (the function itself). This takes you on the micro-service path as well while keeping it very simple and running all the services in one website to keep the tutorial simple. At any stage you can start to break up the well structured code into separate API endpoints.

And for those looking for a more thorough tutorial including a deep, deep dive into best practises we suggest you start with the A Beginner's Guide section in the wiki. This covers much, much more than just functions, but modern coding practises that really do work in the cloud.

Documentation

CQRS.NET API reference documentation is available to browse. We are adding more and more documentation as we edit each file. By version 3.0 we aim to have all public methods and classes documented.
User documentation is starting off for now in the wiki section of this project. We strongly invite people to post questions and issues which we'll answer and work on.

Release Notes

Version 2.3

* Added ApplyChanges to AggregateRoot and Saga for more optimal handling of multiple events.
* Added IEventWithIdentity and ICommandWithIdentity to provide better event and command traceability versus aggregate and saga identification.
* Added better command sending abilities into Sagas.
* Added the ability to specify (via configuration) separate table for the EventStore when using SQL.
* Added configurable support for using the private bus.
* Added a SampleRuntime class. This is a sample runtime to use in proof of concept projects to get something running very quickly. Doesn't save anything. All data is lost when recycled and may cause terrible memory usage.
* Added GetToVersion To the EventStore so you can get events up to a set version
* Added GetToDate To the EventStore so you can get events up to a specific date
* Added GetBetweenDates To the EventStore so you can get events between specific dates
* Opened up the BusRegistar to allow manual registration of handlers
* Added support for the SQL EventStore to support snapshots.

Version 2.2

* Added configuration transformations to required app.config and web.config settings are more obvious and set by default.
* Refactored CqrsHttpApplication from the Cqrs.WebApi package here without a requirement on SignalR.
* Added several base level Hosts for WebAPI, WCF WebJobs and console to base themselves off.
* Relocated InProcessEventStore here.
* Added new Exceptions.
* ReplicatedSqlEventStore was relocated from the Cqrs.Sql package into this package.
* Moved MultipleCommandHandlersRegisteredException to Cqrs.Exceptions
* Moved MultipleHandlersRegisteredException to Cqrs.Exceptions
* Moved NoCommandHandlerRegisteredException to Cqrs.Exceptions
* Moved NoEventHandlerRegisteredException to Cqrs.Exceptions
* Moved NoHandlerRegisteredException to Cqrs.Exceptions
* Moved NoHandlersRegisteredException to Cqrs.Exceptions

Version 2.1

* Renamed and deprecated Cqrs.Domain.IRepository to Cqrs.Domain.IAggregateRepository.
* Renamed and deprecated Cqrs.Domain.Repository to Cqrs.Domain.AggregateRepository.
* #11. Added Saga/Process Manager via a new Cqrs.Domain.Saga class. This is an event handler with access to the Command Bus for sending command and uses an EventStore for state management.
* #17. Added an authentication helper based on integers and Guids, see DefaultAuthenticationTokenHelper.
* #18. Added IPublishAndWaitCommandPublisher to replace the deprecated ISendAndWaitCommandSender.
* #18. Added IPublishAndWaitCommandPublisher to InProcessBus.
* #19. Added support for multiple write and read connection strings for simplified SQL data store.

Version 2.0

* Added built-in Linq To SQL data store and event store modules to speed up time to market. This enables the use of just the one CQRS package to get to market. This adds a new configuration property "SqlDataStoreDbFileOrServerOrConnection" to the appSettings.
* Added Sql script for creating an event store table on SqlServer. Look in the Tool folder of the nuget package folder.
* An example for using the new Sql modules for data persistence and event sourcing can be found at our GitHub repository. Look for the 'Samples\CqrsWeb' Project.
* Added a repository builder and data-store builder to entities in UML.
* Added code generation for the base Host class.
* Added an event store service class so event can be queried by CorrelationId for external services that don't have access to the bus network.
* Added new stereo type on relationships to visually model aggregate to event EventHandlers.
* Added new stereo type on relationships to visually model event to command converter EventHandlers.
* Added new stereo type on relationships to visually model command to aggregate CommandHandlers.
* Added a new companion package Cqrs.WebApi that provides the base for ASP.NET Web API usage with CQRS.NET.
* Added configurable setting to enable certain events and commands to not be required to be handled by the service bus (useful when you want an instance of the system to just run a subset of all possible events that might be received by a poorly configured bus). Currently only AzureService bus support this.
* Added configurable setting to change the default behaviour of the "certain events and commands are required or not" settings into a white-list or black-list.
* Added a tokens "TokenWithUserRsn", "TokenWithCompanyRsn" and "TokenWithUserRsnAndCompanyRsn".
* Added MemoryCacheEventStore.
* Added SendAndWait to command senders.
* Added the EventStoreRetentionLevel Attribute to allow custom event publishers to use a standardised metric to decide hot, warm and cold storage of events.
* Added public/private event attributes.
* Added public/private notification attributes.
* Added telemetry data collection on repositories and event-stores.
* Added ability to send a collection of commands and events.
* Deprecated the ICommandSender and replaced it with the ICommandPublisher.
* Allowed the JsonSettings in draw default from DefaultJsonSerializerSettings so that custom contract resolvers and converters added without needing to inherit and implement a customise classes.

Showing the top 1 GitHub repositories that depend on Cqrs:

Repository Stars
Chinchilla-Software-Com/CQRS
A lightweight enterprise Function as a Service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments.

Version History

Version Downloads Last updated
2.4.1639.856 2,644 8/17/2018
2.4.1622.842 2,722 6/29/2018
2.4.1621.841 2,171 6/24/2018
2.4.1619.839 2,228 6/24/2018
2.3.1595.820 2,334 3/29/2018
2.3.1584.809 2,231 3/20/2018
2.3.1583.808 2,225 3/20/2018
2.3.1581.806 2,231 3/15/2018
2.3.1580.805 2,239 3/8/2018
2.3.1579.804 2,249 3/8/2018
2.3.1572.797 2,271 2/19/2018
2.2.1466.702 2,418 9/18/2017
2.2.1440.678 2,390 8/1/2017
2.2.1428.666 2,261 7/25/2017
2.2.1410.652 2,231 7/23/2017
2.2.1405.647 2,710 7/21/2017
2.1.1347.590 2,697 6/23/2017
2.0.1317.561 2,284 6/6/2017
1.601.1108.447 2,398 11/5/2016
1.601.1007 2,671 5/24/2016
1.601.954 2,519 5/2/2016
1.601.790 2,616 2/23/2016
1.601.787 2,533 11/2/2015
1.500.403.298 3,828 11/15/2014
1.500.395.288 2,669 11/7/2014
1.500.393.286 2,952 11/5/2014
1.500.368.263 2,968 11/3/2014