Evaluating OR mappers

Posts   
 
    
EnsH
User
Posts: 2
Joined: 22-Jun-2006
# Posted on: 22-Jun-2006 02:48:33   

Hello. I'm currently evaluating ORM tools for C#/.NET to replace an application running on Visual Foxpro 9 and SQL Server 2005.

So far I had been looking to Ideablade Devforce because they have a free version that could have been a good start. But recently I discovered that maybe it doesn’t support “Persistence of 'dirty' (changed) data only”. I have to confirm this, but if it’s true, it’s a big no-no for me.

So I have a looked at other “populars” (well OR/M tools aren’t so popular after all) like Wilson OR/M (seem too simple, sparse documentation). About documentation, it seems that a lot of OR/M are lacking in that department. For a newbie in OR/M it’s hard to understand what the tool is doing or what it can do. That’s maybe why I begun with Devforce since they have a lot of material (albeit a lot of their docs seems to be work in progress, the developer manual has some empty chapters!).

I looked also at open-source tools (nHibernate, CSLA, etc.) but I have had some not so great experiences with open source projects. They are often slow in release, and above all they often lack documentation and fit and finish.

I looked at xpo (seems like a 1.0 version), some others that persist objects without taking the schema from the database, a paradigm from the java world that I dislike. I looked at EntityBroker… well a pretty bad website, absolutely nothing to give a taste of their framework but some generics marketing lines. Sure you can download a free version, but you have to answer a ton of questions before (man do I hate these sites where you have to register first, it’s really a hassle when you need to make a quick first evaluation).

So, I ended up here on LLBLgen, a tool I overlooked at first because of the name (seemed like it was a simple code generator like Codesmith). I read the documentation on LLBLgen and it seems to have a lot of features.

Maybe it’s not the place to ask this question, but how do you compare LLBLgen to other OR/M tools? What are its upsides and its downsides compared to others?

jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 22-Jun-2006 09:29:07   

EnsH wrote:

Hello. I'm currently evaluating ORM tools for C#/.NET to replace an application running on Visual Foxpro 9 and SQL Server 2005.

So far I had been looking to Ideablade Devforce because they have a free version that could have been a good start. But recently I discovered that maybe it doesn’t support “Persistence of 'dirty' (changed) data only”. I have to confirm this, but if it’s true, it’s a big no-no for me.

So I have a looked at other “populars” (well OR/M tools aren’t so popular after all) like Wilson OR/M (seem too simple, sparse documentation). About documentation, it seems that a lot of OR/M are lacking in that department. For a newbie in OR/M it’s hard to understand what the tool is doing or what it can do. That’s maybe why I begun with Devforce since they have a lot of material (albeit a lot of their docs seems to be work in progress, the developer manual has some empty chapters!).

I looked also at open-source tools (nHibernate, CSLA, etc.) but I have had some not so great experiences with open source projects. They are often slow in release, and above all they often lack documentation and fit and finish.

I looked at xpo (seems like a 1.0 version), some others that persist objects without taking the schema from the database, a paradigm from the java world that I dislike. I looked at EntityBroker… well a pretty bad website, absolutely nothing to give a taste of their framework but some generics marketing lines. Sure you can download a free version, but you have to answer a ton of questions before (man do I hate these sites where you have to register first, it’s really a hassle when you need to make a quick first evaluation).

So, I ended up here on LLBLgen, a tool I overlooked at first because of the name (seemed like it was a simple code generator like Codesmith). I read the documentation on LLBLgen and it seems to have a lot of features.

Maybe it’s not the place to ask this question, but how do you compare LLBLgen to other OR/M tools? What are its upsides and its downsides compared to others?

Hey, there. I haven't done a comparison lately of the competition, but I have to tell you: LLBLGen Pro is not a code generator. Well, not just a code generator. It is a fantastic ORM tool with a rich and deep feature set. The learning curve is not bad, and there are some great "natural language" features using operator overloading so that you can get, for example, object-oriented, reusable predicate/where clauses with minimal typing (think "Employee.Salary > 50000 && Employee.IsActive = true").

You've gotta give it a run through to appreciate how great of a tool it is. And the new 2.0 stuff is even better. wink

Jeff...

Jefff...

louthy
User
Posts: 61
Joined: 02-Aug-2005
# Posted on: 22-Jun-2006 15:19:48   

I can't really do a comparison for you either. Because I settled on LLBLGen Pro pretty quickly.

I can honestly say though(and I'm not paid by SD for this) that it's increased my productivity as the code it produces is neat and works as you would expect, it's reduced bugs as everything is strongly typed and I can change the database and just get LLBLGen to deal with the rest. The editor is .NET style, and intuitive and quick.

It does produce a lot of code however, which is something I'm going to be looking into reducing. One great thing with LLBLGen is that if you're not happy with the output, you can go and change the templates which create each class.

So overall, a year or so on, I wouldn't bother looking at anything else.

EnsH
User
Posts: 2
Joined: 22-Jun-2006
# Posted on: 23-Jun-2006 03:38:06   

I finally got my answer about Ideablade and the answer is "no, we don't support it". So I have to search for another tool. LLBLGen Pro (by the way, I found it’s really a lousy name) seems to be a very strong contender and I like its philosophy a lot. I’m waiting for the version 2 to make my mind about it.

Thanks for all those who responded, I see that this forum is very active and it’s a very good sign.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 23-Jun-2006 10:39:29   

EnsH wrote:

LLBLGen Pro (by the way, I found it’s really a lousy name)

Yeah, it was the only .com domain that was still free wink Seriously: the name was first a name I cooked up for my open source dal generator I released back in 2002. That took of really well and the name LLBLGen became widely known. We opted for keeping the name as it was already well known. It's not a great name to pronounce, but it would have been a bad move to opt for a different name as the name was already known to many developers. simple_smile

Frans Bouma | Lead developer LLBLGen Pro
louthy
User
Posts: 61
Joined: 02-Aug-2005
# Posted on: 23-Jun-2006 14:41:41   

I still think you should change it wink

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 23-Jun-2006 15:32:35   

louthy wrote:

I still think you should change it wink

Haha simple_smile no way simple_smile Better a lousy name and a great product than a great name and a lousy product simple_smile

Frans Bouma | Lead developer LLBLGen Pro
louthy
User
Posts: 61
Joined: 02-Aug-2005
# Posted on: 23-Jun-2006 17:48:34   

Otis wrote:

louthy wrote:

I still think you should change it wink

Haha simple_smile no way simple_smile Better a lousy name and a great product than a great name and a lousy product simple_smile

I'm not asking you to make it a lousy product haha!

How about:

Great name...

... great product!

Best of both worlds.

Surely some combination of: Enterprise, Relation, Management, Studio, Works, Professional, Visual combined with something completely irrelevant. Like Dynamite, Radiate, Illuminate, Acknowledge, etc.

Eg.

Illuminate Visual Object Relation Enterprise Manager Studio Works FX 2.0

Quite catchy I think wink

JimFoye avatar
JimFoye
User
Posts: 656
Joined: 22-Jun-2004
# Posted on: 23-Jun-2006 17:58:25   

The next version should be named LLBLGen Pro Gold, in my opinion.stuck_out_tongue_winking_eye

jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 23-Jun-2006 19:12:01   

LLBLGenterprise

'cause you need to be "enterprise" to be a real player. smile

Jeff...

louthy
User
Posts: 61
Joined: 02-Aug-2005
# Posted on: 23-Jun-2006 19:50:47   

jeffreygg wrote:

LLBLGenterprise

'cause you need to be "enterprise" to be a real player. smile

Jeff...

LolololLBL0Genterprise

The all singing all dancing, l77t h4x0r blogger and OR Mapper (enterprise solution obviously).

Posts: 94
Joined: 26-Feb-2006
# Posted on: 23-Jun-2006 21:08:23   

Devilddog used to say CoolJ

but I would suggest

LLCoolGen

smile

louthy
User
Posts: 61
Joined: 02-Aug-2005
# Posted on: 23-Jun-2006 22:50:08   

adrianporger wrote:

Devilddog used to say CoolJ

but I would suggest

LLCoolGen

smile

That I like. Lower Level Cool Generator sunglasses

DavidK
User
Posts: 1
Joined: 29-Aug-2006
# Posted on: 29-Aug-2006 08:31:48   

I am a Software Engineer from IdeaBlade, and I would like to comment on the statement that 'IdeaBlade doesn’t support “Persistence of 'dirty' (changed) data only".' This is incorrect. IdeaBlade writes only to those records in the database that have been modified. Perhaps the person who made this claim is commenting about the fact that IdeaBlade is writing full records to the database instead of writing to only the columns in the database that have changed, This is intentional. We think it is incorrect to allow one user to simultaneously change Nancy's Davolios's first name and another user to change Nancy Davolio's last name. If you have further questions, please contact support AT ideablade.com.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 29-Aug-2006 10:48:25   

Thanks for clearing that up David.

Frans Bouma | Lead developer LLBLGen Pro
JSobell
User
Posts: 145
Joined: 07-Jan-2006
# Posted on: 05-Nov-2006 07:33:32   

One thing that greatly impresses me about LLBLGen and it's support is the lack of ego shown regarding its development path, capabilities, and competitors. Working in software means we're surrounded by zealots and elitists, and the way Otis responds in an unbiased and factual way is both rare and refreshing. I always say that if you can't justify a design decision, then it's probably wrong. Seeing almost every question asked about LLBLGen's design answered with reasoning, and sometimes with a response asking whether an alternative approach might be better, indicates a maturity and sensible open attitude so lacking in the software world. As they say here in Australia, "Good on ya, mate!" simple_smile

I know this is off-topic, but thought I'd point out that developers really appreciate this sort of thing.

Cheers, Jason

Chester
Support Team
Posts: 223
Joined: 15-Jul-2005
# Posted on: 05-Nov-2006 18:38:19   

EnsH wrote:

I’m waiting for the version 2 to make my mind about it.

Wait no longer! It's already released! smile

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 07-Nov-2006 13:06:01   

JSobell wrote:

One thing that greatly impresses me about LLBLGen and it's support is the lack of ego shown regarding its development path, capabilities, and competitors. Working in software means we're surrounded by zealots and elitists, and the way Otis responds in an unbiased and factual way is both rare and refreshing. I always say that if you can't justify a design decision, then it's probably wrong. Seeing almost every question asked about LLBLGen's design answered with reasoning, and sometimes with a response asking whether an alternative approach might be better, indicates a maturity and sensible open attitude so lacking in the software world. As they say here in Australia, "Good on ya, mate!" simple_smile

I know this is off-topic, but thought I'd point out that developers really appreciate this sort of thing.

Thanks for the compliment, Jason! smile

I agree that a design decision has to be rational, and if you can't find a reason for a decision, it's indeed probably wrong.

When one understands that everyone makes mistakes, one will understand as well that by acknowledging a failure and fixing it, the end result will be better for everyone.

Frans Bouma | Lead developer LLBLGen Pro