• Online, Self-Paced
Course Description

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

Framework Connections

The materials within this course focus on the NICE Framework Task, Knowledge, and Skill statements identified within the indicated NICE Framework component(s):

Specialty Areas

  • Software Development