In a sense NHibernate seems convenient because it leads to less typing, and then propably less errors.
Hi!
I think NHibernate can be used in every size of application because it is really easy to use (especially with FluentNHibernate) and you it does much work for you like generating SQL queries, mapping values to objects and so on. Even in typical small applications you need to put a great part of the whole effort on the data persistence layer, so why don't let NHibernate do the work for you?
Best Regards,
Oliver Hanappi
It depends what you mean by small, and how accomplished you are with Hibernate. I'd find that the extra overhead of getting set up would not make using it a good option on a little project personally. I'd say the same about other frameworks like Spring too, they are far more useful on larger projects with lots of developers.
It's not if you have a strong knowledge of NH, if you have some model generator, if you use some DBMS other than SQL Server.
I think that if you have a DB on SQL server, you're quin in a hurry, you are knowledgeable on LINQ, LINQ2SQL might be a good choice. Fast and RAD.
It is tough to judge what you are looking for based on the terseness of your question, as there is really a lot of nuance in an answer to this.
In many ways, as the others here say, it depends on your project and your knowledge of nHibernate. But it also depends on a lot of other factors as well...
If you think your small project might grow into a large project someday that could make a better argument for it as you then have a strong foundation on which to grow.
If your goal is learning nHibernate (or another ORM) then a small project may be the best place to get your feet wet and try it out. (Also try Linq2SQL, and other ORMs as well and go with what you find works the best for you.)
I personally use nHibernate for all of my projects large and small (where possible due to other constraints). But I've also been working with it for a while and a good base of code that I can reuse. So that factors into the time part of an answer. nHibernate has a pretty steep learning curve so if you need something done quick nHibernate may not be optimal.
I hope that helps, if you can refine your question and your goals a little more in your question it will assist the rest of us in getting you some better feedback and ideas to help you.
I agree with Oliver but would add the caveat that it is only easy to use once you know how (and that may take awhile). If you haven't gotten on top of the learning curve and need a simple app, NHib will slow you down; otherwise use it on anything that isn't completely trivial or a throw away! So your simple but effective app has one more sound piece of infrastructure as it scales and adapts to requirement changes.
HTH,
Berryl