Most popular object persistence framework

  • Thread starter Thread starter Peter Morris
  • Start date Start date
P

Peter Morris

Hi all

What is the most commonly used object persistence framework for .NET?



Thanks

Pete
 
Hello Peter,

NHibernate, it's used widely in Java world, before .NET and then was ported
to .NET
But ADO.NET vNext seems to be .NET standard after VS Orcas release: http://msdn2.microsoft.com/en-us/data/aa937723.aspx

---
WBR, Michael Nemtsev [.NET/C# MVP].
My blog: http://spaces.live.com/laflour
Team blog: http://devkids.blogspot.com/

"The greatest danger for most of us is not that our aim is too high and we
miss it, but that it is too low and we reach it" (c) Michelangelo

PM> object persistence framework
PM>
 
Peter said:
Hi all

What is the most commonly used object persistence framework for .NET?

Hard to say, though I think it's nhibernate.
Looking at the size of the community, we're close though :)

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
Hi Pete,

Persistor.NET is not the most commonly used - but the best solution if
you are satisfied with forward mapping only. It is not an O/R mapper
but it stores your object model without any compromise - all your
classes and even all .NET Framework classes.

Hans-Peter
 
Hi Pete,

Persistor.NET is not the most commonly used - but the best solution
if
you are satisfied with forward mapping only. It is not an O/R mapper
but it stores your object model without any compromise - all your
classes and even all .NET Framework classes.


Hans-Peter
 
Persistor.NET is not the most commonly used - but the best solution if
you are satisfied with forward mapping only. It is not an O/R mapper
but it stores your object model without any compromise - all your
classes and even all .NET Framework classes.

And your opinion that it's the best solution is entirely impartial, I
suppose? ;)
 
Jon said:
And your opinion that it's the best solution is entirely impartial, I
suppose? ;)

Hehe, why would you think that, Jon ;)

FB

--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
I don't mean to hijack the thread but this seems like the right group to
ask;

Can anyone comment on the current state of the ORM/Persistent products and
support for proper and full WPF binding?

I've run into some problems with my current choice and I'm ready to jump -
specifically any experience with nhibernate with exceed's wpf data grid?
(seems like that combination would push all the buttons to see if they
worked).
 
Mike said:
I don't mean to hijack the thread but this seems like the right group
to ask;

Can anyone comment on the current state of the ORM/Persistent
products and support for proper and full WPF binding?

It's my understanding that WPF supports full .NET 2.0 binding, which
means as long as INotifyPropertyChanged is implemented, it will work
properly.

DependencyProperty support is a total different ballgame, I think you
then will be dissapointed for the moment, however, when I look around
for full WPF control libraries, I don't see many offerings as well at
the moment.
I've run into some problems with my current choice and I'm ready to
jump - specifically any experience with nhibernate with exceed's wpf
data grid? (seems like that combination would push all the buttons to
see if they worked).

What's the current tool you're using, and does it use / implement
INotifyPropertyChanged on the entity classes ? (directly via code
generation/base classes or via dyn. proxy / IL weaving ) ?

FB


--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
The framework I am using does not implement INotifyPropertyChanged. I have
been provided a work around, and it 'supposed' to be implemented in the next
release. I personally prefer not to add a bunch of custom code then have to
remove it next release. Then again, who knows when the next release will be
and if it does not implement it I've waited for nothing. Since WPF has been
available in some form or another for vendors to prepare for quite some
time, i am indeed disapointed at the moment.

As a side note, I did test the work around provided, and while it worked
with a simple 2 way binding test, as soon as a tried to use it with exceed's
data grid I ran into other problems - giving me even less of a reason to
pursue that path.

So again, the simple questions is; Is there any persistent/ORM products you
can use with exceed's data grid currently without adding code? I specificy
exceed's datagrid because it is a component that is available for free.
Whether or not it becomes the grid of choice remains to be seen. I see that
infragistics is now shipping their WPF controls and I plan on trying them
out shortly. Their price is good (although not free, they are inexpensive
enough). I am making a leap of faith that if a Persitent/ORM layer works
with exceed it would also work well with infragistics.

I do not see the lack of WPF control libraries as a problem. WPF seems rich
enough as is, with the exception of no grid. And even without that, using a
listview in grid mode provides adaquate browsing and can easily be coupled
to robust editing, just not in place. My current requirement for a grid is
simply a developers shortcut for advanced users and not needed for general
end user use. Down the road, pivot table styles grids would be nice to have
and exceed seems to be able to do what I need.

Have you seen Family Show?

http://www.vertigo.com/familyshow.aspx

What a nice UI pardigm for browsing database relations and generating code
eh ? (hint hint)
If I knew for sure NHibernate was WPF compatible, I think I'd throw a code
generator together myself :)

M
 
Mike said:
The framework I am using does not implement INotifyPropertyChanged. I
have been provided a work around, and it 'supposed' to be implemented
in the next release. I personally prefer not to add a bunch of custom
code then have to remove it next release. Then again, who knows when
the next release will be and if it does not implement it I've waited
for nothing. Since WPF has been available in some form or another
for vendors to prepare for quite some time, i am indeed disapointed
at the moment.

It's always a challenge to keep up, and because MS doesn't have a
solid designer for developers anyway, I think some framework developers
will simply think "it's not my problem". What's a bit odd is that
INotifyPropertyChanged is an interface which is necessary for .NET 2.0
databinding as well, so if the framework vendor / writer of the
framework you're using would have added true .NET 2.0 support, it would
have been already there.

We added INotifyPropertyChanged back in July 2006 in v2.0 of llblgen
pro because the interface makes it possible to get rid of the list of
As a side note, I did test the work around provided, and while it
worked with a simple 2 way binding test, as soon as a tried to use it
with exceed's data grid I ran into other problems - giving me even
less of a reason to pursue that path.

No offence to Exceed in particular, but control vendors don't always
play nice when it comes to obeying databinding 'standards', although I
have to give them the credit that the 'standard' isn't really clearly
defined by MS.
So again, the simple questions is; Is there any persistent/ORM
products you can use with exceed's data grid currently without adding
code? I specificy exceed's datagrid because it is a component that is
available for free. Whether or not it becomes the grid of choice
remains to be seen. I see that infragistics is now shipping their WPF
controls and I plan on trying them out shortly. Their price is good
(although not free, they are inexpensive enough). I am making a leap
of faith that if a Persitent/ORM layer works with exceed it would
also work well with infragistics.

haha, no.

I wished it was that simple. Even though silly interfaces like
ITypedList and IBindingList are available for a long time, it's still
hard for some control vendors to even use them properly. For example
infragistics didn't use ITypedList for a long time, which made the grid
pull the complete database into memory if you used lazy loading as it
would trigger lazyloading every time it read an IList implementing
property of an entity object in the list bound to the grid. :)

And on the web for example, you have in asp.net 2.0 a class called
DataSourceControl. Every datasource control derives from it. You can do
everything via that base class, so a grid just has to work with that
class and every datasource control can work with the grid. Still there
are some control vendors out there who have no clue whatsoever about
OO, inheritance and polymorphism and simply try to cast the bound
datasource control to one of the vanilla .NET ones. If that fails, they
give up.

So, in theory, it all should work fine, in practise however, it's a
completely different ballgame.
I do not see the lack of WPF control libraries as a problem. WPF
seems rich enough as is, with the exception of no grid. And even
without that, using a listview in grid mode provides adaquate
browsing and can easily be coupled to robust editing, just not in
place.

It was my understanding that it could be done, by adding edit controls
to the listview. But it will be a challenge of course to mimic the
whole new row experience with dual ESC roll back behavior.
My current requirement for a grid is simply a developers
shortcut for advanced users and not needed for general end user use.
Down the road, pivot table styles grids would be nice to have and
exceed seems to be able to do what I need.

Have you seen Family Show?

http://www.vertigo.com/familyshow.aspx

What a nice UI pardigm for browsing database relations and generating
code eh ? (hint hint) If I knew for sure NHibernate was WPF
compatible, I think I'd throw a code generator together myself :)

I think I read on Ayende's blog a couple of weeks ago he did add
support for INotifyPropertyChanged to nhibernate in less than 100
lines. It shouldn't be that hard either, as nhibernate generates dyn.
proxies at runtime anyway, so emitting an interface and an event isn't
that hard.

I don't know if he added the more complex 'is this value really
changed' check as well, which is required to have proper runtime change
event behavior. (if a value hasn't changed, don't raise the event. This
differs between new entity objects and existing entity objects).

FB




--
------------------------------------------------------------------------
Lead developer of LLBLGen Pro, the productive O/R mapper for .NET
LLBLGen Pro website: http://www.llblgen.com
My .NET blog: http://weblogs.asp.net/fbouma
Microsoft MVP (C#)
------------------------------------------------------------------------
 
Thanks for the info Frans - i'm even more depressed now.
Anyone remember dBase III? (rhetorical question of course).

M
 
Back
Top