> I can understand the desirability of this programming model, > but what does that mean in terms of the actual system > behavior? Are you suggesting that the GUI layer should have > no way for the user to control when changes made in the GUI > are moved into the app's entity classes (which you want to > mean that they're magically guaranteed to make it to the database)?
Well, it's not as much about not being able to make changes from the GUI as about not explicitely creating, reading, updating and deleting in/from a database. My GUI programmer should let tell the application layer "add this Person object" instead of "send this Person object to the database". I agree, in practice the difference might be quite subtle. It's my experience that layered enterpise applications tend to be biased to the database. Despite some really good O/R mapping tools (and due to some poor ones), I see often see designs in which relational data is mapped to an object model that has a very heavy relational smell to it, i.e. through all layers I can clearly see the database scheme. For some reason, for a lot of developers this approach is quite tempting. I think that in an environment where database-related functionality is hidden as much as possible, bad designs like these show up less frequently. I really have to admit that I haven't spend a lot of time thinking all this stuff over. So maybe it was a bad idea to bring it into this discussion. And maybe, the subject should not have been 'Transparent Persistence', but something like 'Hiding persisitence-related functionality as much as possible'. But I just wanted to see what kind of ideas you guys have about these matters. (I did *not* want to invoke a flame-like outburst from Thomas, anyway. And I've no intension to reply on such a post.) The next couple of months, I'll be busy with other stuff than layerd enterprise app's, so I don't think these thoughts will be worked out in a detail yet. But maybe I'll bring in some more concrete insights one day. ;) Regards, Stefan =================================== This list is hosted by DevelopMentorŪ http://www.develop.com Some .NET courses you may be interested in: NEW! Guerrilla ASP.NET, 26 Jan 2004, in Los Angeles http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com