Exploring Domain Driven Design Implementation Patterns in .NET


Domain Driven Design (DDD) is a pattern language developed by Eric Evans for effectively managing complexity in software solutions. DDD has evolved as an approach for conceptualizing your project’s problem-space but as software developers we are also keenly interested in translating those DDD patterns to code. If you have always wanted to know how to get started with using DDD in your projects then this is the talk for you — offering both an intro to DDD concepts as well as a look at NET implementations of DDD concepts.

In this talk we will first begin with a brief introduction to DDD concepts and principles for those new to this overall approach and then explore various implementation patterns to translate DDD concepts into .NET code. We will investigate implementations for Repositories, Specifications, Entities, Value Objects, Services, and other DDD constructs. We will also discuss some considerations for how to structure your projects and solutions to maximize flexibility and manage the evolution of your domain over time. This discussion will focus less on offering prescriptive guidance and more on helping the attendee understand some of the potential trade-offs that alternate implementation approaches can provide.

Stephen Bohlen

Currently a Principal Software Engineer for the Technology, Evangelism, and Development (TED) Team within Microsoft Corporation, Stephen brings his varied 20-plus-years of experience as a former practicing Architect, CAD Manager, IT Technologist, Software Engineer, CTO, and consultant to assist select Microsoft Partner organizations in their adoption of cutting-edge and pre-release Microsoft developer products and technologies.

Stephen is also an active contributor to several Open-Source Software projects including NHibernate, Spring.NET, Common.Logging, NDbUnit, Common.Logging, and others.

Active in the software development community, Stephen speaks publicly, blogs (semi-)regularly, and is the author of several popular screencast series focused on Agile and ALT.NET concepts and technologies including the widely-praised 15-part Summer of NHibernate video series introducing viewers to the popular open-source O/RM tool.  Stephen is also a founding/organizing member of the NYC ALT.NET user group as well as a co-organizer of the New York City Domain Driven Design User Group.  For the past several years, he has been the Chairperson of the annual New York City Code Camp event.  He has also been a Microsoft MVP award recipient in Solution Architecture, ASP.NET, and Visual C#, a member of the ASP Insiders and the Visual C# Insiders, and formerly held the office of the Vice President for INETA, North America.