NHibernate – Help us see who is using it
One of the most frustrating things about working on Open Source projects is that you don’t have feedback about your users unless they have a problem. During my Progressive.NET NHibernate workshop, there was hardly place in a big room, and talking about this issue with the attendees afterward, I kept hearing things like: “I have seen NHibernate used in my last 3 jobs”, or “We have been using NHibernate for the last 2 years.”
On the one hand, it is heartwarming to hear that, on the other, it is incredibly frustrating not knowing.
If you are using NHibernate, I would like to ask two things out of you:
- And please register your experience with NHibernate in our Success Stories page.
This is not a lot to ask, I feel, and it would make the NHibernate team feel much more appreciated.
Thanks…
Comments
would be great if those success stories had a date...everything evolves, even competition in O/RM field...(not to say NHibernate isn't any good, just isn't the only option in the year 2009)
to paraphrase your blog post, can you justify the use of NHibernate? :)
Cowgar,
Yes.
well, what a fast response, I wasn't expecting any other answer.
it is a question to a public and a challange for NH folks to make this framework more approachable, which probably never happens so that's why we have some companies building their own ORM (bringing all those pieces together) on top of it and selling it...
at least yesterday I found one, but they need LINQ provider (for their business), finished, so they waiting, for "open source" folks to finish it...you know where I am aiming to.
Cowgar,
If someone is willing to pay for that, that would significantly speed things.
Contact me if you want to set this up
I was not pointing at LINQ this time, more or less I brought the only drawbak (at least for me) of this excellent framework...
complexity... like to bring all those piecies together (validator, burrow, linq, log4net, collection libraries, astle & comp) and even build them to just get you started, then track the realase of each of it or their specific documentation/bugs. And that is just the install phase.
It is a nice freedom (you really don't need to do that, you don't really need validator...wait;-), but sometimes it is better just to run one msi and reference one (or 2) .dll (with nice 1 page quickstart).
It all just looks complicated, once you are "in" you really like it (if you have time to learn it), but starting the next project you allways ask yourself, do I really need to go through all of this? wait, fluentnhibernate just changed convention api, great blog post, going to read :)
being a geek I am enjoying it (many news on many fronts), but now I am pointing at the other side of a coin, that if I am not building an ebay I should probably reconsider. That's why I welcome companies which see that problem and probably will bring it all under one roof, with documentation and support on one place.
and to LINQ provider, fingers crossed, Steve is doing a great work (and imeta is a great company to finance it)
I had used .NET 1.1 and DataSets a bit, stopped work as a developer, and then got back into it late last year. I didn't know what an ORM was, but was replacing / working with a lot of code using either DataSets or DataReader and ItemArray syntax. So I thought I'd have this really cool idea and just loop through a DataReader making objects. It got really repetitive mapping obscure column names to object properties so I was thinking about writing a tool to do this for me.
Then I caught up on the past 6 years of .NET progression and discovered the idea of ORM.
My database didn't support an EF provider (iSeries V5R3), which I had seen reading up on ASP.NET MVC. I remember Scott Gu pointing out other ORM including NHibernate. So I started using NHibernate and found it pretty damn magical (I don't get the big fuss with the xml). Of course, I used every single operation inside its own using(session) block so NH was doing no persistence work for me. Kinda silly.
I recently listened to a podcast (thirsty developer I think?) with you talking about NH and how people learn it in stages. That is totally how my experience has been. I first used it to basically pass DTOs. Then I started mapping relationships (but went nuts ... no concept of agg roots). Finally I learn the idea of unit of work and letting NH do the persistence heavy lifting, including cascades (these are awesome). Next up is interceptors.
I originally intended to only use NH until we moved to the next iSeries version that supports EF. That idea seems pretty funny now.
@Cowgar
We are little, few, poor and ugly.
Probably Microsoft will give us something better... perhaps in a soon future.
There are others commercial ORM as ECO, XPO and various others but...
apparently two dogs, and 3 or 4 cats, can give something useful for somebody (NH2.0.1 has around 60000 downloads)
Do solutions built on top of things like Castle's ActiveRecord count also?
@Fabio: Do not pull MS here. L2S is generator and L2E is experiencing complete rewrite (after the v1 dissaster) and nobody knows the results (oppinions are it will be a platform, not a product).
Are you aware of companies using NHibernate as their core for their own (commercial) ORM framework? That what I was refering to (they "collect" everything and give it to you).
And the other thing, most successful ORM companies out there have 3-5 developers, NHibernate has ten times more (to my knowledge when I count all the contributors and/or Hibernate folks), so that won't cover your "little, poor and ugly" :)
those 2 dogs already gave something useful, come'n, you don't want to see a point. Question wasn't about if NHibernate is good (yes, it is), was about if you can justify the use of it to projects which e.g. aren't dealing with legacy mapping, legacy databases and aren't using thousands of tables.
ECO and XPO? never heard of (but I can mail you my top 5:)
cowgaR, that's a good idea about bringing everything together. However, where do you start or how would you see it happening? NHibernate In Action is a pretty good intro to NHibernate (but I'm biased, it felt simple to me but I've been using NH for a while now). Still, NH by itself has a lot of concepts to cover. Throw in NHibernate.Contrib and, my goodness, you'd scare off everyone.. which is why, I think, everything is over in another set of projects. At that point, you might be better starting with something like Castle or S#harp Architecture where the concepts are already baked.
Think about it.. make NH more approachable but also make it easy to combine everything (if I read you right). Add in Burrow with it's conversations, NH.Search (helps if you understand Lucene plus wraps NH Session so then you have some indirection), NH.Shard (which means user would have to understand sharding), etc...
Could you lay out more of what you'd like to see?
As an NH / NH.Contrib user, it'd be nice to see things a little more seamless, but I'd need to think about it (and step up to the plate and help) if I wanted to make it happen.
Oh, and as an aside, thanks Ayende. I've registered at ohlo and I'll contribute to the success stories. I'm on a project now where the team first decided to go with L2S but they had to switch to NH to get around some complex mapping issues. I'm not sure how much was lack of L2S knowledge and how much is just L2S, but this code base is hurting because of the choice (L2S, WCF and Silverlight)
@Cowgar
"NHibernate has ten times more"... where are you looking ?
What I'm looking is the svn-log on NH-Core.
The others companies "have 3-5 developers" but paying they for a total of 120-200 hours week (at least)... we don't have somebody paying us that mean nobody is working 8/5 and the amount of man-hours per weed is not so big (hopefully 16/30man-hours per week).
Give us same money and you will see the result... or even less..give me only 1pound ( per download ;) )
Lyndsay,
Yes, they do
cowgaR,
The absolute number of contributers doesn't mean mean if none of they can spend full time on the project.
I would love to have just one month of dedicated NHibernate, it would allow to complete a lot of tasks in a single shot.
Take a look at our AST Parser, it required about 3 man months to build, and until Steve and iMeta stepped in, it wasn't going to happen.
As for complexity. I am afraid that there is a good reason for that. You can get a lot of NHibernate without ever trying to understand it, but to get the best results, you have to deal with a complex problem (data access isn't simple), and offering a simplistic solution for a complex problem is not a serious proposition.
In other words, I believe that the complexity of NHibernate isn't there just because, it is there because the problem space is complex.
If you have any suggestions on how to make things simpler, we would be delighted to hear.
cowgaR,
Regarding your issue about the dates. You can easily get that information by checking the history of the wiki update on the success stories.
Ayende,
Registered for both links, and added our success story. Thanks for your, and everyone else on the NH team's efforts. They are much appreciated. NHibernate is a very, very hot topic over in Chicago. Not a .NET usergroup meeting goes by where we don't have people come up to us asking about NHibernate. At the Chicago Code Camp (in a week), there's Len Smith presenting a session on NHibernate, and myself presenting on Fluent NHibernate.
NH is gaining a good amount of traction in the mainstream business world. It just takes time.
The difference between the same button in www.nhforge.org + ask the samething in nhusers group, and ask it in your blog is awesome.
Hudson,
Thank you very much
NHibernate should cost U$ 3 / month. We still could get it for free but paying a little tax / month we could help without coding.
I don't know how many users NH has or how many of these would accept the idea. Maybe U$ 3 isn't enough.
Then just create a page showing the name of the money contributors and how much each one already gave. People could say to others how much them or their company already contributed.
Good, bad, already tried without success...?
What about paying for official courses, official heavy support, official CERTIFICATION, customizations, plugins... Just guessing here but I think that certification would be nice.
OFF: Talking about certification, I was reading some tests to C# and .NET certification and found a lot of stupid questions like.
How do you load a XML in a DataSet? Load(), LoadXml, ReadXml... Who cares which is the method? Intellisense, Google and books have the answer. I think a much better question would be why we can load an XML to a DataSet or what is the expected result.
Comment preview