Will it be used in large projects, such as facebook? (for arguments)

For those who know the inner workings of nhibernate, do you think a large-scale web application, for example, says facebook / myspace will use nhibernate?

Or is nhibernate well suited for lower traffic sites such as company sites, etc.? that is, not an enterprise ready because of its chatty nature?

+4
source share
3 answers

NHibernate doesn't talk at all. As for scalability, there was already a question about NH groups , which was more related to the complexity of the database, and then the traffic, but might still be interesting for you.

Even if there is always a complaint about unnecessary requests for each ORM, due to the general nature of ORM, this does not mean that it is talkative. On the other hand, it optimizes situations where it would be too difficult to optimize handwritten DALs. For instance. query packages or lazy loading.

NHibernate is quite lightweight compared to other ORMs and powerful features compared to it.

NHibernate (like any other ORM) can be considered redundant if there is no object-oriented business model, but you need to optimize it for maximum performance. I do not think that Google could use NHibernate for its search engine, for example.


Edit:

NHibernate performance and power are not completely free. This requires developers to understand at least the basics of relational databases. Other ORMs try to hide all relational issues, which leads to much more non-optimized behavior.

+9
source

nHibernate is a professional joke. In my company, its use was prohibited for several reasons. Because the tool is quite unproductive; you will spend countless hours trying to figure out, or find alternative strategies in scant documentation.

Much better, use your own DAL and SP to achieve high performance. You will have a caching execution plan, and in the end, it is really important.

nHibernate does not have extended memcached support, which is especially important if you want to use it if you want to build a scalable web solution like Facebook.

I work for a social gaming company, and we specifically forbade the use of nhibernate in particular.

+1
source

NHibernate supports query caching, second-level caching based on primary keys, as well as session cache for repeated access to the same object within the same session.

This helps a lot, but while you are hitting a database with a lot of load, you will have problems with scaling. The best way to scale a database is to minimize the amount of time that you actually have to use. Distributed caches like memcache and caching your output (or post-datacrunched views or html) are the best ways to scale your application. If customers regularly get into the database, you are doing it wrong, ORM or not. In a .NET application, as in a typical MVC application, there are advantages of using a variety of output caching, a cache of donuts and donts, as well as clients for memcache, which will be used with NHibernate and for your ViewModels.

0
source

All Articles