Login Skip Navigation LinksWilsonORMapper > Forums Search
Demo Version Demo Version
Download and try for yourself a fully working demo version, including sample apps and documentation.  The only limitation is that the demo version only works inside the debugger.

PayPal Subscribe
Get It All for $50 USD:
WebPortal, ORMapper,
Source Code, All Updates
PayPal

User Login User Login
Log In
 
 
Reset Password

Wilson ORMapper Forums Wilson ORMapper Forums : Feature Requests : Worm enhancements?

Date Post
10/18/2004 7:01:19 PM Paul, are you working on more enhancements?

I ask because I'd like to add some things, but don't want to duplicate your efforts.

Basically my wishlist is just what I posted on the asp.net/forums:

(In response to Mat's NPersist)

"If I could have Paul's ORMapper, with your inheritance support, your documentation, object spanning queries, the ability to filter relations _programmatically_ (as opposed to configuration specified filters), and the ability to force relations that are normally lazy-loaded to load with the parent object programmatically (I think this is what Prefetch paths are?), a better query engine that doesn't open me up to SQL injection attacks (NPath looks nice), better exceptions, and a better designer, then I'd be in heaven. (I don't ask much, just the world!)"

I'll be honest and say I hadn't actually looked at the code for Worm when I wrote that. :) Overloading GetExpression took all of 10 lines of code or so, so I'm happy there. I'm guessing the runtime relation filters will probably be a piece o' cake, and with the good ol' PoEAA at my side, object spanning shouldn't be too hard I hope, but again, I don't want to duplicate efforts...?
10/19/2004 2:55:16 PM I have not started any enhancements yet, although I do have several sent to me from others. I also do have a few things that I want to add myself, but it looks like others have bigger changes than I. One thing I would like to do, but I don't know if I will be able to fit it in, is better inheritance support -- so that would be a winner if you do implement it (much like NHibernate, although I would prefer the mappings to be simpler). Similarly for spans/pre-fetches -- I may get to them, although I would implement them much like spans in ObjectSpaces (far simpler than NHibernate, and using existing caching/tracking). I haven't seen a big need for programmatic relation filters, so I haven't given it any thought -- I'm wondering is maybe its not a case where you could do without automatic relations by manually coding the fetch into your collection, but that's just a thought. Pre-fetch and span are pretty much the same thing as I understand them -- just different implementations maybe. As for a better query engine -- you can use the SelectProcedure class to define parameterized sql selects, much like NHibernate's HQL, if you feel the "clean" given by GetExpression isn't enough -- so I'm not sure what's missing there that can be better. But I totally agree better docs, exceptions, and designer would be great -- and all the others are valid, even the query improvements probably -- so feel free to go for it, and I'll include whatever is well-done and doesn't break existing stuff nor add unnecessary complexity. Note that that last one is critical to me -- I don't want a feature if it means the other existing features become more complex -- any new features should be totally optional.

Thanks, Paul Wilson
10/19/2004 3:07:25 PM Thanks for the thorough reply!

As far as GetExpression(string OPath), it doesn't clean anything. So if you want to clean your input, and you have more than one field to search on, your concatenated string is going to be big and ugly.

Hence the GetExpression(string OPath, params object[] objects) overload I added. Then you just have one string, and a tidy params array.

"Pre-fetch and span are pretty much the same thing as I understand them"

You're right actually I think. For some reason I think of Pre-fetch as programmaticly defining your graph, as opposed to the actual getting of a graph.

I'm happy with my dinky lil' GetExpression() overload, so forget that one. :)

If I try anything, it'll probably be object spanning since PoEAA already has some example code.

And concerning programmatic relation filters: I can't remember why I wanted that to be honest...