Refactoring from Anemic Domain Model Towards a Rich One

Building bullet-proof business line applications is a complex task. This course will teach you an in-depth guideline into refactoring from Anemic Domain Model into a rich, highly encapsulated one.
Course info
Rating
(122)
Level
Intermediate
Updated
Nov 13, 2017
Duration
3h 36m
Table of contents
Course Overview
Introduction
Introducing an Anemic Domain Model
Decoupling the Domain Model from Data Contracts
Using Value Objects as Domain Model Building Blocks
Pushing Logic Down from Services to Domain Classes
Organizing the Application Services Layer
Domain Modeling Best Practices
Description
Course info
Rating
(122)
Level
Intermediate
Updated
Nov 13, 2017
Duration
3h 36m
Description

Having a rich, highly encapsulated domain model is essential if you want to succeed in building building bullet-proof business line applications. In this course, Refactoring from Anemic Domain Model Towards a Rich One, is going to show you how to properly implement it. First, you'll cover why Anemic domain is an anti-pattern and its relationship to functional programming. Next, you'll learn about encapsulation and how to achieve it in your domain model. Finally, you'll touch on some important refactoring techniques. By the end of this course, you'll understand practical techniques that will help you recognize this anti-pattern in your code base and refactor it into a bullet-proof one.

About the author
About the author

Vladimir Khorikov is a Microsoft MVP and has been professionally involved in software development for more than 10 years.

More from the author
CQRS in Practice
Intermediate
4h 22m
11 Oct 2018
Specification Pattern in C#
Intermediate
1h 27m
27 Jun 2017
More courses by Vladimir Khorikov
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Vladimir Khorikov and welcome to my course Refactoring from Anemic Domain Model Towards a Rich One. I'm a domain driven design evangelist and very excited to share this course with you. Building bullet proof business line applications is a complex task and having a rich, highly encapsulated domain model is essential if you want to succeed in it. In this course you will learn practical techniques that will help you on that path with detailed explanations and the reasoning behind them, some of the major topics that we will cover include why anemic domain model is an anti-pattern, the relationship between anemic domain model and functional programming, what is encapsulation and how to achieve it in your domain model, and a lot of refactoring techniques. By the end of this course you will know everything needed to turn the anemic domain model in your application into a rich, bullet proof one. Before beginning this course, you should be familiar with the C# programming language. I hope you will join me on this journey to learn about refactoring from anemic domain model towards a rich one here at Pluralsight.

Introducing an Anemic Domain Model
Hi, my name is Vladimir Khorikov and this is the course about refactoring from an anemic domain model towards a rich one. In this module we will look at the application project. I will guide you through its code and we will talk about its purpose and the underlying anemic domain model.

Decoupling the Domain Model from Data Contracts
Hi, my name is Vladimir Khorikov and this is the course about refactoring from anemic domain model towards a rich one. In this module we will decouple the domain model from the application data contracts. You will see what those contracts are, why it is important to keep the domain model separate from them, and how to implement this separation in practice.

Using Value Objects as Domain Model Building Blocks
Hi, my name is Vladimir Khorikov and this is the course about refactoring from anemic domain model towards a rich one. In this module we will use value objects to build up our domain model. You will see how they make the model more expressive and encapsulated.

Pushing Logic Down from Services to Domain Classes
Hi. My name is Vladimir Khorikov, and this is the course about refactoring from anemic domain model towards a rich one. In this module, we will finish the transformation of our domain model into a rich and full encapsulated one. We will achieve that by pushing domain logic from services down to domain classes.

Organizing the Application Services Layer
Hi. My name is Vladimir Khorikov, and this is the course about refactoring from anemic domain model towards a rich one. In this module, we will look at the application services layer and the application structure in general. You will see how to best work with exceptions, organize the application source code, and more.

Domain Modeling Best Practices
Hi. My name is Vladimir Khorikov, and this is the course about refactoring from anemic domain model towards a rich one. In this module, we will look at domain modeling best practices, as well as some common antipatterns in this area.