views:

159

answers:

2

I'm wondering - what i should keep in mind when trying to apply domain driven design on CMS app that has quite complex business logic? Aren't those beasts mutually exclusive?

Here's article to show what i mean.

+1  A: 

Hi Arnis!

what i should keep in mind...

DDD was designed to handle complex logic so start reading:

Best practices, Best practices and Best practices

This is a Great article about (do not forget, to look at DDD resources topic ; )

And this Listing will bring some code to the table (it's C#).

Aren't those beasts mutually exclusive?

Not at all. in fact there is a hard relationship between DDD and complex domain logic. lots of the patterns you ended up using, when working with DDD, were conceived looking for a simple way to encapsulate complex logic needed when working with the domain. e.g. Repository, Factory, Aggregate, etc.

I know what you mean. after reading the article you refer, you discover that a CMS could easily be though as a project with two different domains -content and representation-. and it's a good approach, in fact I like it. But DDD patterns still applying -and are designed- to work with them : ).

I'm supposing your are talking about to use DDD to develop a complex CMS.


UPDATE: I'm not supposing your are talking about to use DDD to develop a complex CMS anymore. hahahaha

I just can't imagine how to untie business logic from infrastructure... yet.

Hi again Arnis!

Yes! CMS stands at top of aaaaaaall kind of systems. nice point. so what can we do to make a flexible and decoupled CMS, that could be easily integrated over the shoulders of other systems?

About the data:

-Data contracts, regardless the system you are integrating your CMS with. your CMS domain model should stay almost unmodified. limit your efforts to adapt other system data sources to your CMS model. ; ) useful links:

About the business rules:

-Ad-Hoc Business rules, but different systems, have different business rules. and your CMS require certain grade of flexibility in this aspect. useful links:

Hope this bring you some helpful ideas for your project ; )

SDReyes
Question was more about content management part. Mutually exclusive because content management rarely is top-down hand rolled but sits on shoulders of things like web parts, 3rd party cms frameworks and God knows what else that leaves huge influence on all app layers. I just can't imagine how to untie business logic from infrastructure... yet.
Arnis L.
Argh... My English language quality and mind glitches strikes back. Sorry for that. And I got a feeling that we still don't talk about the same. I'll try to clarify question a bit later. :)
Arnis L.
A: 

The Guardian did a talk on their experience applying DDD which may have some relevance as a case-study in a content-rich domain:

jayshao