MSDN Article: ‘Employing the Domain Model Pattern’

I’m a big advocate of domain driven design.  One of the ‘gurus’ in the community, Udi Dahan (NServiceBus creator, etc…) has written an article for the latest version of MSDN magazine titled ‘Employing the Domain Model Pattern’

Topics include:

  • Domain model pattern
  • Scenarios for using the domain model pattern
  • Domain events
  • Keeping the business in the domain

While I’m here, I’d like to make a plug for NCommon – which is a framework that helps fulfill the DDD pattern (including recent addition of domain events).  NCommon currently supports NHibernate, Linq to Sql, and the Entity Framework.  The trunk already has parts of EF 4.0 being setup as well.

This article builds off the concepts here:

‘Domain Events – Salvation’ by Udi

For usage in NCommon see ‘Domain Events pattern in NCommon

This is a very powerful way of keeping with the SRP.  One technique I hope to deploy is the ability to separate out service to service calls.

ie. EmailService handles emailing.  I don’t want to inject an ‘EmailService’ into my ‘OrdersService’

When the SendEmail event is fired, it can be handled by a handler that has an EmailService injected into it instead.

I might as well also mention an article in the same issue ‘N-Tier Application Patterns’ – although it should be titled ‘Entity Framework with WCF’  🙂

This article discusses:

  • N-tier design patterns
  • Entity Framework
  • Microsoft .NET Framework 4

This article uses the following technologies:
Entity Framework, Windows Communication Foundation

Included in this month’s MSDN is ‘Entity Framework v2 and Data Access Architecture Best Practices’


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s