[Mono-list] Any interest in a new open source project?

Ole Hyldahl Hansen ohh@scisoft.dk
Fri, 30 Jul 2004 12:29:24 +0100

Gert Kello wrote:

>> Andrew, I am sure there will be great interest in such a project, 
>> juding from the large number of Object-Relationel Mappers. As far as 
>> I know most are proprietary. I have put some effort into finding a 
>> suitable solution but no acceptable free solutions exists (I could 
>> not find any. Please prove me wrong).
>> I have worked a little on something that sounds quite similar to what 
>> you are describing. I would very much like to see what you have 
>> produced so far, and if we are indeed persuing the same goal I will 
>> be willing to help with the creation of a free solution.
> I'm also about start a non-profit project where I want to use an OPF. 
> I did make a list from libraries present in http://SourceForge.net/ So 
> far I have managed to review only Gentle.Net (Which didn't satisfy me)
> So, could You please share You findings about OPF-s? You might make my 
> life much easier :)

Well, I must say that I never did any thorough evaluations.  I tend to 
get frustrated with a many of the frameworks rather quickly, because 
they often only allow you to download timelimited and/or crippled 

First let me point you to a discussion some months ago on usenet (hope 
the link works :-):

Someone defines his or her ideal framework and asks for something that 
matches as closely as possible. Several frameworks are discussed here.

There is one framework that might be very good: http://www.llblgen.com

I am a big fan of code generation and llblgen seems to generate nice 
code. But as I understand it, they do not use a transaction-cache based 
on object identity, which is something I consider essential. IMHO the 
following should hold:

DataObject o1 = Lookup (<some primary key>);
DataObject o2 = Lookup (<same primary key>);
Assert (o1 == o2);

This is not the case with llblgen: Something like this is true though:

DataObject o1 = Lookup (<some primary key>);
DataObject o2 = Lookup (<same primary key>);
Assert (o1.Equals (o2));

but if you change an attribute in object o1 is that change visible in 
object o2? I think not and I would very much like that to be the case. 
When I played around with this kind of stuff myself a basically created 
a hashtable per transaction and cached all loaded objects in this 
hashtable by their primary key. This way there can only exist a single 
instance for each primary key (per transaction. Different transactions 
sees different objects.)

Another possibility might be the .NET port of Hibernate  (NHibernate). I 
do not know how mature it is, but I have heard Hibernate can be quite nice

> Also, I'm willing to share my findings about the ones You didn't 
> evaluate...
> And to any other in list: Could You plase share You knowledge about 
> diffrent free OPF-s.
> If I do not find one that satisfies me, I'm thinking to roll my own 
> one... Or, if there is one to be satisfying, I would gladly join the 
> team.
> P.S. Note to the list adnministrator: Is there any reasons why the 
> reply-to address is not set to the list? I usually want to reply to 
> the list... And it is tedious to do recipient clean-up every time I 
> make "Reply All"
If you any good ones I would like to hear it, but I sort of gave up and 
decided to see if I could come up with something by myself. However, 
creating a good framework takes a lot of time, so a joined effort would 
probably be better.