Mi ricollego a quanto già scritto sul mio blog e alla discussione nata su quello di Imperugo, a proposito dell'argomento "ORM fatti in
casa", perché stamattina mi sono imbattuto in un interessante post di Ayende a proposito
delle performance di NHibernate.
Tutto è nato da un post in cui si confrontavano la velocità di questo OR/M e ADO.NET;
beh... sono d'accordo con chi dice che ovviamente NH non può essere più veloce
di ADO.NET per il semplice fatto che è un layer costruito sopra ad
ADO.NET. Ma come si è ripetuto più spesso anche da queste parti, lo
scopo di NH è quello di fornire performance ottime ma non ottimali. Anche
perché, e qui cito il bravo Ayende,
The fastest way to get information from the database is not to go to
the database in the first place. Enabling caching in NHibernate is a matter of
adding a line to the configuration file. How long is it going to build a
caching system and integrate it to your application? (Even assuming that you
are using a pre-built system, like ASP.Net Cache or the Caching Application
Block, you still need to make the calls in all the right places.) Can your
caching scale to a web farm scenario?
I vantaggi di NH sono altri, e a mio avviso ben più pesanti di una
ragionevole perdita di prestazioni; intanto siamo più veloci
noi a realizzare il nostro lavoro, cito ancora Ayende...
Guy #1: Do you know that VB is faster than
C++?
Guy #2: Really? Never heard of it. By how
much?
Guy #1: Oh, about three to four
months.
e poi per la solita sconfinata serie di features, alcune necessarie,
altre importanti, altre ancora solo comode, che abbiamo a disposizione. Leggete
un po' qui
powered by IMHO 1.3