rodri_ogri wrote:
Hi all,
I've been trying with both APIs: LLBL Gen Pro and NHibernate because we needed to know how convinient both were for our project.
The truth is that I have been more confortable with the Gen Pro's API, mostly because we are starting from the database and I find it easier to learn.
The problem is that my bosses think that the fact that Gen Pro is not on the ORM Meter (formerly ORM Battle) site shows that it's a "unknown" ORM and therefore not recomended or reliable. I don't think that is true.
We were on ormbattle, but as orm battle isn't an unbiased site but a site to sell dataobjects.net, we requested to be removed from it, also because it uses skewed statistics to show what's better: the 'best' o/r mapper on that site is the one which has the least features, as the tiniest wrapper around dbdatareader / dbcommand will win. Which is not why one wants to use an o/r mapper. As we don't want to be in the promotional campaign of a competitor we asked for removal. NHibernate is still up there I think, but they too had debates with the owner of ormbattle, see ayende's blog (http://ayende.com/Blog/archive/2009/08/15/benchmarks-are-useless-yes-again.aspx), as nhibernate is also not tested with ideal settings nor are the tests designed to make it look good but bad.
It's no surprise NHibernate is the worst performer on that site: the tests are designed for that. It's also not a surprise dataobjects.net is the best performer there, because the tests are designed for that: the owner of the site sells dataobjects.net. We didn't want to be part of that, as you can probably understand.
Also, if one thinks we're 'unknown' because we're not on 'orm battle', I think that person is a bit uninformed . We're in this business since 2003 and have been a top player in this field since the beginning. The size of the community in this forum (with over 100,000 posts) suggests that it's far from 'unknown' .
Focusing on performance is good, but it's a slippery slope: the more features you want (e.g. authorizing, auditing etc. which can't be used with batching of huge numbers of inserts/updates, which is what ormbattle used hence the o/r mapper which does batching but no other features (like we do) wins, but is that saying it's better? no on the contrary: it lacks features!), the less performance you in theory will get compared to frameworks which don't have these features. That doesn't mean using a framework with these features are slow, it means that in performance tests they might not be the best. But there are more ways to query.
For example llblgen pro supports prefetch paths (hierarchical fetching), something dataobjects.net didn't support (don't know if they do now, don't really care) and therefore didn't test for. We support direct updates on entities, which is much faster than fetching the entities first, updating them in memory and persisting them again.
With benchmarks, you can make anything look great and others look bad. Don't fall for it. Use your own judgement: check what you want from a framework, if it does what it should do, if support is great, if you can make progress quickly and if the code you have to write is maintainable. Those are the things that matter. Every O/R mapper out there performs great, as most of them are already on the market for a long time, like we are, and have tweaked the core till there's nothing more to tweak.
I need a metric that proves that LLBL Gen Pro is a good and reliable ORM.
PD. Is there any particular issue for not being on ORM Meter?
What kind of 'metric' do you need other than that our runtime framework is used by thousands of companies in over 70 countries worldwide, among them many banks and large corporations? For over 7 years now already and 10 major version releases? Literaly thousands and thousands of projects have been done with our framework, and are being developed today.
Besides, in v3, if you want to use NHibernate, we support that too: you can switch your project to another supported O/R mapper framework inside the designer at any time.