When do domain concepts become application constructs?

Posted by Noren on Programmers See other posts from Programmers or by Noren
Published on 2012-12-12T16:26:07Z Indexed on 2012/12/12 17:18 UTC
Read the original article Hit count: 317

I recently posted a question regarding recovering a DDD architecture that became an anemic domain model into a multitier architecture and this question is a follow-on of sorts.

My question is when do domain concepts become application constructs.

My application is a local client C# 4/WPF with the following architecture:

Presentation Layer

  • Views
  • ViewModels

Business Layer

  • ???

Domain Layer

  • Classes that take the POCOs with primitive types and create domain concepts (e.g. image, layer, etc)
  • Sanity checks values (e.g. image width > 0)
  • Interfaces for DTOs
  • Interface for a repository that abstracts the filesystem

Data Access Layer

  • Classes that parse the proprietary binary files into POCOs with primitive types by explicit knowledge of the file format
  • Implementation of domain DTOs
  • Implementation of domain repository class

Local Filesystem

  • Proprietary binary files

When does the MyImageType domain class with Int32 width, height, and Int32[] pixels become a System.Windows.Media.ImageDrawing? If I put it in the domain layer, it seems like implemenation details are being leaked (what if I didn't want to use WPF?). If I put it in the presentation layer, it seems like it's doing too much. If I create a business layer, it seems like it would be doing too little since there are few "rules" given the CRUD nature of the application.

I think all of my reading has lead to analysis paralysis, so I thought fresh eyes might lend some perspective.

© Programmers or respective owner

Related posts about architecture

Related posts about domain-driven-design