Domain Driven Design in Action

 

Revising the previous post about Domain Driven Design

Domain Driven Design is an approach of software design that is focusing on the domain model among other things. Why DDD? The application is built for a domain-centric business.  If team size is small, DDD is suitable to be implemented since  the development can be tested in the domain layer. So it is important to balance the need to build a scalable software, and yet avoiding an overly complex architecture.

Domain Driven Design Characteristic

  • Domain Model is the center piece of the application. It should not be aware of any underlying technology built around it.
  • Domain Model should be Persistence Ignorance.
  • All business rule should be contained in the Domain Model
  • Business entity is modeled as: Domain Object if identity is important or Value Object if identity is not important.
  • Domain Object is organized via Root of Aggregate
  • Each Root of Aggregate is accessed via a Repository. The implementation of the Repository will take care of the persistence.
  • If there is any business rule that is not suitable to be put under any Domain Object or Value Object, then it will be moved into Domain Service.
  • Aggregate might be instantiated via Factory object.

Technology used to implement DDD

JEE:

  • JavaServer Faces for implementation of presentation layer.
  • Plain Old Java Object (POJO) for implementation of domain layer
  • Hibernate to implement Infrastructure layer
  • Spring framework is used to facilitate Dependency Injection

.Net

  • ASP.NET and any 3rd party UI component for implementation of presentation layer
  • Plan Old Clr Object (POCO) for implementation of domain layer
  • NHibernate for implementation of infrastructure layer
  • Spring.NET framework is used to facilitate Dependency Injection

SoftONELogic implements Domain Driven Design on Java Enterprise technology by using: JavaServer Faces 1.2 + RichFaces 3.3.3 Ajax for presentation layer, Hibernate 3.0 for persistent layer (infrastructure layer for DDD) and Spring Framework for manage the logic bean and implement Dependency Injection.

All the module in www.SoftONELogic.com were implemented using DDD method. 

 

September 12, 2009 Post Under Uncategorized

Comments are closed.