Hello All, I hope you don't mind me jumping into this conversation but I find it very interesting (particularly the discussion of rich vs. anemic domain models but also of the ActiveRecord approach, especially today as alternative approaches to persistence, under the banner of NOSQL, are gaining traction).
I haven't had anywhere near the experience with large applications / systems as I am sure many of you have had but I thought the very point of OO was to encapsulate data and behaviour. As well, the primary purpose of MVC was to cleanly separate the presentation, application, and domain objects/classes. Of course, this doesn't mean that a domain class is naturally reusable across applications, especially if the perspective, scope or level of abstraction is different. But that's how it should be, different domain classes may be needed in different applications. If this doesn't work then OO, in a sense, has failed. There are alternatives to MVC as well though. Recently I have been investigating the DCI (Data, Context, Interaction) approach developed by Reenskaug and Coplien. It may address some of the issues mentioned in this thread, but I am not sure how the persistence layer fits into this approach. Finally, I am also not sure how something like ActiveRecord approach would actually work, or be compatible with, Cayenne. To my mind it defeats the whole purpose of having a container managing the persistence of a collection of objects, not that AR is not an interesting / useful approach on its own. Cheers, Ashley. -- Ashley Aitken Perth, Western Australia (GMT + 8hrs!) Social (Facebook, Twitter, Skype etc.): MrHatken Professional (LinkedIn, Twitter, Skype etc.): AshleyAitken
