{"id":7832,"date":"2024-02-07T10:13:03","date_gmt":"2024-02-07T09:13:03","guid":{"rendered":"https:\/\/republify.se\/?post_type=product&#038;p=7832"},"modified":"2026-01-16T12:44:11","modified_gmt":"2026-01-16T11:44:11","slug":"ddd-cqrs-event-sourcing-net","status":"publish","type":"product","link":"https:\/\/republify.se\/index.php\/produkt\/ddd-cqrs-event-sourcing-net\/","title":{"rendered":"DDD, CQRS and Event Sourcing in .NET"},"content":{"rendered":"<p>Instead of just covering concepts in theory, this course focuses on learning by doing. You\u2019ll get hands-on experience through C# exercises that explore different ways to build software. Along the way, you\u2019ll pick up architecture principles and practices that help you create better systems.<\/p>\n<p>DDD, CQRS, and Event Sourcing are useful on their own, but together they offer a powerful way to design modern applications.<\/p>\n<p>You\u2019ll learn how to build software that:<\/p>\n<ul>\n<li>Reflects your domain and business more clearly<\/li>\n<li>Is easier to test and validate<\/li>\n<li>Scales more easily<\/li>\n<li>Adapts better to change<\/li>\n<li>Is easier to understand<\/li>\n<\/ul>\n<p>You don\u2019t have to build a full CQRS, ES, or DDD system from scratch to benefit from this course. You\u2019ll come away with practical ideas, patterns, and principles to improve your current projects.<\/p>\n<p>We\u2019ll use .NET 10 and Visual Studio 2026, and you\u2019ll build up a full application step by step in the exercises.<\/p>\n<div class=\"elementor-element elementor-element-1127f30 elementor-widget elementor-widget-heading\" data-id=\"1127f30\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<h3 class=\"elementor-heading-title elementor-size-default\">What Are the Course&#8217;s Prerequisites?<\/h3>\n<\/div>\n<div class=\"elementor-element elementor-element-8cfcaec elementor-widget elementor-widget-text-editor\" data-id=\"8cfcaec\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<p>To get the most out of this training, participants should have at least one year of experience as a C# developer. A strong understanding of C#, including generics, lambdas, and LINQ, is crucial. Previous experience in parallel or async programming is not required.<\/p>\n<\/div>\n<div class=\"elementor-element elementor-element-ece1cc9 elementor-widget elementor-widget-heading\" data-id=\"ece1cc9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<h3 class=\"elementor-heading-title elementor-size-default\">How Long is the Course?<\/h3>\n<\/div>\n<div class=\"elementor-element elementor-element-49cbbe1 elementor-widget elementor-widget-text-editor\" data-id=\"49cbbe1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<p>The course takes 3 days to complete. However, this course can also either be delivered over a full 3 days or 6 half days.<\/p>\n<\/div>\n<div class=\"elementor-element elementor-element-ada05df elementor-widget elementor-widget-heading\" data-id=\"ada05df\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<h3 class=\"elementor-heading-title elementor-size-default\">What frameworks are we using?<\/h3>\n<\/div>\n<div class=\"elementor-element elementor-element-fc9a28d elementor-widget elementor-widget-text-editor\" data-id=\"fc9a28d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<p>Many of the code examples in this course are based on the concepts and approach published on\u00a0<a href=\"https:\/\/cqrs.nu\/\">cqrs.nu<\/a>, including the CQRS Starter Kit developed as part of my previous work. The site offers a tutorial and sample code that reflect how we model commands, events, and aggregates, and serves as a foundation for the hands-on exercises in the course.<\/p>\n<\/div>\n<div class=\"elementor-element elementor-element-6b7f2302 elementor-widget elementor-widget-heading\" data-id=\"6b7f2302\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<h3 class=\"elementor-heading-title elementor-size-default\">DDD, CQRS &amp; Event Sourcing in .NET Agenda<\/h3>\n<\/div>\n<div class=\"elementor-element elementor-element-4b939308 elementor-widget elementor-widget-text-editor\" data-id=\"4b939308\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n<h4>Architecture &amp; Design Principles<\/h4>\n<ul>\n<li>Modern application architecture<\/li>\n<li>Composition &amp; modular design<\/li>\n<li>Immutability &amp; side-effect prevention<\/li>\n<li>Eventual consistency<\/li>\n<li>Micro front-ends &amp; UI composition<\/li>\n<\/ul>\n<h4>Domain-Driven Design (DDD)<\/h4>\n<ul>\n<li>Core DDD principles &amp; patterns<\/li>\n<li>Entities, Value Objects, Domain Services<\/li>\n<li>Ubiquitous Language<\/li>\n<li>Bounded Contexts &amp; context mapping<\/li>\n<li>Aggregates &amp; consistency boundaries<\/li>\n<li>Invariants &amp; business rule enforcement<\/li>\n<li>Modeling workflows &amp; domain scenarios<\/li>\n<\/ul>\n<h4>CQS \/ CQRS<\/h4>\n<ul>\n<li>Command\u2013Query Separation (CQS)<\/li>\n<li>Command and Query Responsibility Segregation (CQRS)<\/li>\n<li>Separating reads from writes<\/li>\n<li>Designing commands, queries &amp; handlers<\/li>\n<li>Read side vs write side modeling<\/li>\n<li>Mediator pattern<\/li>\n<\/ul>\n<h4>Events &amp; Event-Driven Architecture<\/h4>\n<ul>\n<li>Commands, domain events &amp; workflows<\/li>\n<li>Event Storming (big picture + process)<\/li>\n<li>Event Modeling<\/li>\n<li>The Decider Pattern<\/li>\n<li>Policies &amp; workflows<\/li>\n<\/ul>\n<h4>Event Sourcing<\/h4>\n<ul>\n<li>Event Sourcing fundamentals<\/li>\n<li>Implementing an event store<\/li>\n<li>Event streams, snapshots &amp; versioning<\/li>\n<li>Rebuilding state from events<\/li>\n<li>Event-sourced aggregates<\/li>\n<\/ul>\n<h4>Event Sourcing in practice (with .NET)<\/h4>\n<ul>\n<li>Querying &amp; Read Models<\/li>\n<li>Designing projections &amp; read models<\/li>\n<li>Aggregate queries<\/li>\n<li>High-performance read models<\/li>\n<li>Query patterns in CQRS systems<\/li>\n<\/ul>\n<h4>Testing<\/h4>\n<ul>\n<li>Test-driven development (TDD)<\/li>\n<li>Behavior-driven development (BDD)<\/li>\n<li>Example-driven testing<\/li>\n<li>Testing event-sourced aggregates<\/li>\n<li>Testing workflows, policies &amp; read models<\/li>\n<\/ul>\n<h4>And much more\u2026<\/h4>\n<ul>\n<li>Architecture trade-offs<\/li>\n<li>Real-world best practices<\/li>\n<li>Hands-on exercises throughout the course<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p class=\"\" data-start=\"176\" data-end=\"526\"><strong>This course is for experienced C# developers who want to improve how they design, structure, and evolve their software systems. If you\u2019re building complex applications that need to scale, handle change, or reflect real business rules, this course will show you how to apply Domain-Driven Design, CQRS, and Event Sourcing in practical ways using .NET.<\/strong><\/p>\n<p class=\"\" data-start=\"528\" data-end=\"745\">You\u2019ll benefit the most if you already know your way around .NET and are comfortable writing C# code, and now want to explore better architecture patterns and techniques for building maintainable and testable systems<\/p>\n","protected":false},"featured_media":11581,"comment_status":"open","ping_status":"closed","template":"","meta":{"wds_primary_product_brand":0,"wds_primary_product_cat":0},"product_brand":[],"product_cat":[41,40,39,29],"product_tag":[],"class_list":{"0":"post-7832","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-net","7":"product_cat-c","8":"product_cat-systemutveckling","9":"product_cat-technical","11":"first","12":"instock","13":"taxable","14":"shipping-taxable","15":"purchasable","16":"product-type-simple"},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product\/7832","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/comments?post=7832"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/media\/11581"}],"wp:attachment":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/media?parent=7832"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_brand?post=7832"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_cat?post=7832"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_tag?post=7832"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}