In the past, I've been pretty data-centric in my application architectures. Lately, this has gradually changed and my current default architecture is based on a Domain Model. This is why the title of this chapter is "A New Default Architecture." New to whom, you might wonder. It depends. When you describe Domain Model to some, they will say "Yes? Isn't that how it's always done?" At the same time, another large group of developers will say "Hmmm... Will that work in reality?" No matter in which of those two groups you belong, we are just about to start a journey together exploring the Domain Model, and especially how to build it in the spirit of Domain-Driven Design (DDD). We will start the journey with a short discussion about Domain Models and DDD. To become more concrete, we will discuss a list of requirements of an example application and sketch possible solutions to different features. To get a better feeling of the requirements, we will also use another view and sketch an initial UI. The chapter will end with a discussion about execution styles for Domain Models. Let's get started. |