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 demoversions.
First let me point you to a discussion some months ago on usenet (hope the link works :-):
http://groups.google.dk/groups?hl=da&lr=&ie=UTF-8&frame=right&rnum=1&thl=0,960248562,959949372,959794389,959721186,959790637,959729516,958607708,957506897,957487392,959371415,959196408&seekm=ePYLLW4BEHA.1128%40TK2MSFTNGP11.phx.gbl#link1
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...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.
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"
/Ole _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
