A friend of mine (who also used to be a coder) invited me to participate in this project of his. As i was on vacation i decided to take a chance and took a look. IMHO the code was unnecesary complex, and that lead to a discussion with the other coders. While my friend was also listening he soon found himself lost in the myriad of *DD terms and design patterns stuff. So i sketch this matrix to help him understand the bigger picture. It just happen to be that i found this little tool useful to get a better understanding of any development project. So i thought i share it with you 😉
The matrix is indeed very simple. It only have 3 columns: Application layer, Technology and Patterns. For a classical DDD application it could be something like:
LAYER | TECHNOLOGY | PATTERNS |
Presentation | ASP.Net MVC | MVC |
Application | ASP.Net Web API | Application Services |
Domain | Portable Class Library | Aggregate, Entity, Value Object, Repository, Domain Services |
Infrastructure | WCF, MS SQL 2008, Entity Framework |
So there you have it. Am i missing something? What would you add/change/remove? Do you use anything similar? Write your answers in the comments.