Contents tagged with Domain-Driven Design
The Patterns & Practices team is working on the upcoming release of its Application Architecture Guide, 2nd Edition which should arrive late summer this year.
One of the areas the team seems to be concentrating on is Domain-Driven Design (DDD). A how to guide is publicly available since January. Skimming through the comments it appears that developers/customers are challenging the original authors how to apply the ideas and experiences published in books (Evans, Fowler, Nilsson).
Implementing a domain model in a general purpose language (Java, C#, etc) is challenging. Key to success is to have as little distractions (from the development platform) as possible. The set of design principles and patterns will help to accomplish this goal. I learned that, after discussing ideas with attendees during my “Applying Domain-Driven design in .NET” talk at SDC 2007, there’s a strong focus to overcome the technology use/constraints in applying DDD in our target platform.
My advice for the Patterns & Practices team is to focus on:
Which principles and patterns should be applied (as a coping strategy) for the distractions in the development platform?
Please realize that this is different from guidance on how to implement DDD-patterns with the .NET platform.
Language workbenches are well underway to completely change the way we do programming, so we might not this guidance anymore ;)
I am sitting here listening to the MSDN Webcast: Framework Masterclass: LINQ to Entities and guess what. Patrick Lowendahl is there as well and beat me to it with the following remark.
Question: Eilsa, if you want more feedback from DDD mvps you can drop me or my friend Jimmy (who wrote the second book, and only .net book, on the subject) a line
Excellent! Wouldn't it be great to use the Entity Framework for our domain model based application architectures. My question in this particular area:
Question: What improvements can we expect in the designer?
Answer: The current designer is actually a CTP 1 that works with the Beta 2 of the EF. We are currently working hard to implement customer feedback and implement things such as the model first scenario. You should see significant changes in the designer coming soon.
I have just returned from the Software Developers Conference 2007 in Arnhem.
Domain-Driven Design (DDD) is getting more popular in the Netherlands. My session on DDD applied in .NET, the conference room was packed with people standing, sitting on the ground and peeping from the door. We had a lively discussion around expressing the model in software. My goal was to give the attendants great insights in how DDD can help with building better software and the kind of decisions to make that keep the model and implementation aligned with each other. Somewhere in the middle of the session the enthusiasm overwhelmed me and I lost control. It was reassuring you guys enjoyed the session since the evaluations spoke for themselves.
Now, on to what this post is about. After the session I received the following question.
You inspired me to learn more. Where do I start?
Thanks, this was “the” question I was hoping for. My advice for fellow developers:
Find yourself a copy of Domain Driven Design Quickly. This book is a summary of Eric Evan’s Domain-Driven Design book (a must have). Login to download this free book or purchase the print copy.
My latest article "The Foundation of Domain-Driven Design" will be published in the next edition of the Dutch SDN magazine which will appear on 17th of August. It will be available as a free download as well.
Tim McCarthy uploaded his slides and demo code for his talk on "Domain-Driven Design using the ADO.NET Entity Framework". Last year I wrote the article "Organizing Domain Logic" which compares Microsoft Three-Layered Services Architecture (MS-TLSA) against one by Domain-Driven Design (DDD). Although the article explains the important concepts with the help of code snippets it doesn’t come with the actual code. Tim’s demo code contains the Order Inventory example I wrote about in my article which is based on the MS-TLSA. It also includes the Order, Customer and CheckOut logic example I used to explain DDD and the difference between these two architecture styles. So, I suggest you head over to Tim’s blog and download his demo code.