-
Notifications
You must be signed in to change notification settings - Fork 6
Home
The CQRS designer is a Visual Studio plug in that allows for the graphical modelling of a domain that uses the CQRS over event sourcing architecture.
The plug in can be installed into any version of Visual Studio (2017 or higher) but to work on the code requires either a Visual Studio Professional or Visual Studio Enterprise license.
One of the factors holding back adoption of the Command Query Responsibility Pattern (CQRS) and the related technology of event sourcing (ES) in the .NET community is the lack of tooling to generate and manipulate these models in a way that is familiar to users of Entity Framework - that is to say graphically by composition with the resulting model then turned into code.
This Visual Studio plug-in designer is an early attempt to bridge that gap. It allows you graphically to design domain models consisting of aggregate identifiers, events, projects, commands, queries and identity groups.
The visual model for each aggregate is created by adding the events that can occur, the projections and classifiers that can be run against these events, the commandsthat change state in the entity and the queriesthat can be run to get state information out of the system.
At its simplest CQRS is an architecture pattern that separates commands (doing) from queries (asking). What this means in practice is that the command and query side do not need to share a common model and this vertical shearing layer is often matched with a vertical shearing layer between the definition (of a command or query) and the implementation (in a command handler or a query handler).
If you have 45 minutes I recommend reviewing this video that gives an overview of the architectural pattern along with its strengths and weaknesses.
Event sourcing is reversing the existing way of storing data in that instead of storing the current state of objects and updating the state when events occur we store the entire history of events that have occurred to an object and use this to derive the current state of the object via projections.
You can find a more detailed explanation in this article
To install the CQRS Designer you can install directly from nuget or download the .vsix file from the binaries directory