Geeks With Blogs
A Curious Mind #tastic
Many of us have now become comfortable with how to best build a layered system with the typical UI, biz, and data layers. But as I started to write my first application that took messaging as a pretty central concept I found that I didn't really know how I wanted to parcel out my system. So here is a closer look at what I have been playing around with in this area. Project Setup
  • Solution Name
    • Domain
    • Domain.Tests
    • Domain.Messages
    • Persistance
      • Domain.Persistance
      • Domain.Persistance.Tests

Ok some notes: This is still very proto but I wanted to get it out there. I have taken to putting the repository (ala DDD) interfaces in the domain itself, and then implementing them in Domain.Persistance with tests that test its ability to work. On the project that I am trying all of this out on I am also trying db4o so this has been a great way to keep the db4o junk out of my domain (imagine that, heh).

Its also important to note that I am currently struggling with how I want to implement the message consumption. I currently see that there are two main ways that you can write your message handlers. One of these is as a service layer above the domain layer and manipulate it. This would map easily to web pages and I am fairly comfortable with this pattern, but I am not to sure how much I am really digging it. There is another flavor which says that your objects should consume the messages directly, however I want more infrastructural support for this specific format than I can currently find. Most of the OSS projects seem to support the first method quite easily, and the second seems a bit more of a hack to make happen. I hope to fix that.

Let me know what you are thinking.

-d Posted on Saturday, May 10, 2008 1:33 PM | Back to top

Comments on this post: A Message Based Project Structure

# re: A Message Based Project Structure
Requesting Gravatar...
Looks like good stuff, thats the sort of structure we have (minus Domain.Messages so far). Mind you we have multiple domain modules, a seperate module with reusable domain code (such as a layer supertype), other utility projects and so on which results in us having a lot of projects.

Will definitely be interested in reading more about how you handle message consumption.
Left by Colin Jack on May 13, 2008 2:34 AM

Your comment:
 (will show your gravatar)

Copyright © Dru Sellers | Powered by: