DDD and Client/Server apps

Posted by Christophe Herreman on Stack Overflow See other posts from Stack Overflow or by Christophe Herreman
Published on 2009-04-03T10:25:02Z Indexed on 2010/03/22 12:01 UTC
Read the original article Hit count: 411

I was wondering if any of you had successfully implemented DDD in a Client/Server app and would like to share some experiences.

We are currently working on a smart client in Flex and a backend in Java. On the server we have a service layer exposed to the client that offers CRUD operations amongst some other service methods. I understand that in DDD these services should be repositories and services should be used to handle use cases that do not fit inside a repository. Right now, we mimic these services on the client behind an interface and inject implementations (Webservices, RMI, etc) via an IoC container.

So some questions arise:

  • should the server expose repositories to the client or do we need to have some sort of a facade (that is able to handle security for instance)
  • should the client implement repositories (and DDD in general?) knowing that in the client, most of the logic is view related and real business logic lives on the server. All communication with the server happens asynchronously and we have a single threaded programming model on the client.
  • how about mapping client to server objects and vice versa? We tried DTO's but reverted back to exposing the state of our objects and mapping directly to them. I know this is considered bad practice, but it saves us an incredible amount of time)

In general I think a new generation of applications is coming with the growth of Flex, Silverlight, JavaFX and I'm curious how DDD fits into this.

© Stack Overflow or respective owner

Related posts about ddd

Related posts about domain-driven-design