Command and Query Responsibility Segregation, or CQRS, was developed by Bertrand Meyer as a way to ensure that methods working with data only perform one of two tasks. Either a method retrieves information or it modifies it somehow, not both. In this course, you will explore domain and model driven design, learn what N-Tier architecture is, and identify the parts of CRUD and their purpose. You will also explore the use of CQRS as a design pattern, including comparing it with other methodologies as well as applying it in a C# solution.
Learning Objectives
Architecture Basics
- start the course
- recognize the basic concepts of domain-driven design
- recognize the basic concepts of model-driven design
- identify how domain-driven design and N-layer architecture work together
- recognize what Task based UIs are
- identify what commands are and how they are used
- identify what queries are and how they are used
- identify what layers are and how they are used
- describe what services are
- identify the parts of CRUD and their purpose
Introduction to CQRS
- define what Command Query Responsibility Segregation is
- describe the Command Query Separation principle
- identify the various parts of the CQRS pattern
- recognize how CQRS handles events
- identify the link between CQRS and event sourcing
- describe what CQRS commands are and their role
- define what CQRS command validation is
- specify the relationship between CQRS commands and domain objects
- describe how CQRS queries work
- identify how CQRS deals with constraints
- identify how CQRS interacts with query data
- recognize the relationship between CQRS and the Persistent View model
Applying CQRS
- identify the most common applications of when the CQRS approach is used and why
- demonstrate how to implement CQRS commands in C#
- demonstrate how to handle CQRS events in C#
- demonstrate how to implement the CQRS pattern in C#
Practice: Introduction to CQRS
- understand basic concepts and applications of CQRS