Some people think that DataBinding? to the UI is orthogonal to ObjectRelationalMapping. In .NET case if an object implements the interfaces from the System.ComponentModelnamespace it can be bound to a WinForms or ASP.NET user interface and that's a separate issue from whether it can be transparently persisted to a relational database....
But I disagree... take for example the need to use OpenSessionInView with NHibernate, in that case the API makes really cumbersome (when compared to, for example Apple's EOF, or Cayenne) to "transparently load" a previously persisted relationship because NHibernate does not support "Non transactional lazy loading of relationships" so... Do you think taht an ObjectRelationalMapper should make it easy for the user interface to fetch data Interactively? ... or not? and... if an ObjectRelationalMapper does not need to make it easy for the user interface to fetch data interactively...
Is it really a transparent object relational mapper? what is more important? To be able to persist Plain Old Objects? or to make it easy to manipulate persistent Objects? should we go for the Anemic Domain Model? (able to persist plain old objects?) or the rich domain model? (easy to manipulate persistent Objects that KNOW they are persisten objects)
Or maybe I am just asking the wrong question... maybe, as we have NHibernate to persiste PONOs, we should have a differente framework to present those objects in the UI... that also works as a non-intrusive service?
Something like PersistenceService<--Plain Old .Net Objects-->PresentationService
Supposedly WindowsForms or ASP.NET are PresentationServices, but I wonder... if a PONO can be persisted with NHibernate to SQLServer or Oracle, why there isnt an equivalent that can present the PONO to the user... some kind of non intrusive PresentationService.. perhaps like Naked Objects (
http://www.nakedobjects.org/ ) but I believe they have their own integrated ORM... has anyone here tried using NHibernate with NakedObjects?
[Some of the text was extracted from
http://c2.com/cgi/wiki?ObjectRelational ... isonDotNet ]