Sarebbe NHibernate essere utilizzati in progetti di grandi dimensioni come ad esempio facebook? (Per amor di argomenti)

voti
4

Per chi conosce il funzionamento interno di NHibernate, pensi che una grande applicazione web scala come dire facebook / myspace avrebbe utilizzato NHibernate?

O è NHibernate adatto per più siti a basso traffico, come i siti aziendali, ecc? cioè non impresa pronta per la sua natura loquace?

È pubblicato 18/05/2009 alle 12:42
fonte dall'utente
In altre lingue...                            


3 risposte

voti
9

NHibernate non è loquace affatto. A proposito di scalabilità, c'era già una domanda sui gruppi di NH , che era più sulla complessità del database, allora il traffico, ma potrebbe ancora essere interessante per voi.

Anche se ci sono sempre denuncia di sulle query non necessarie su ogni ORM, a causa della natura generica di un ORM, non significa che sia loquace. D'altra parte ottimizza le situazioni in cui sarebbe troppo complesso per ottimizzare in forma scritta a mano DAL del. Per esempio. lotti di query o lazy loading.

NHibernate è abbastanza leggero rispetto ad altri ORM e di rispetto per le sue caratteristiche potenti.

NHibernate (come qualsiasi altro ORM) potrebbe essere considerato eccessivo se non v'è alcun modello di business orientato agli oggetti, ma è necessario ottimizzare per massime prestazioni. Non credo che Google potrebbe fare uso di NHibernate per il suo motore di ricerca, per esempio.


Modificare:

Le prestazioni e la potenza di NHibernate non è completamente gratis. Si richiede che gli sviluppatori a capire almeno le basi di database relazionali. provare altre di ORM per nascondere tutto il problematiche relazionali, il che porta ad un comportamento molto più non ottimizzata.

Risposto il 18/05/2009 a 13:05
fonte dall'utente

voti
1

NHibernate è uno scherzo professionale. Nella mia azienda, il suo uso è stato proibito da diversi motivi. Come strumento è abbastanza improduttivo; si spenderà innumerevoli ore cercando di capire, o la ricerca di strategie alternative in una scarsa documentazione.

Molto meglio, utilizzare il proprio DAL generato e SP di per raggiungere alte performance. Avrete un piano di esecuzione nella cache, e alla fine questo è ciò che conta davvero.

NHibernate non ha il supporto avanzato per memcached, che è appositamente cosa avete intenzione di usare se si vuole costruire una soluzione web scalabile, come Facebook.

Io lavoro per una società di social gaming, e abbiamo specificamente vietato l'uso NHibernate in particolare.

Risposto il 11/12/2012 a 13:54
fonte dall'utente

voti
0

NHibernate supporta la memorizzazione nella cache di query, 2 ° nella cache di livello in base a chiavi primarie, e anche cache di sessione per i colpi ripetuti sullo stesso soggetto all'interno della stessa sessione.

Questo è tutto un grande aiuto, ma finché si sta colpendo un database con un grande carico, che si sta per avere problemi di scala. Il modo migliore per scalare un database è di ridurre al minimo la quantità di tempo che in realtà hanno di usarlo. Cache distribuita quali memcache, e la memorizzazione nella cache l'output (sia vista post-datacrunched o HTML) sono i modi migliori per ridimensionare l'applicazione. Se i clienti stanno colpendo regolarmente il database, si sta facendo male, ORM o no. In un'applicazione .NET, come un tipico MVC app, ha il vantaggio di essere in grado di utilizzare varyby cache di output, ciambella e ciambella buche caching, nonché alla clientela per memcache per essere utilizzato con NHibernate e per i vostri ViewModel.

Risposto il 06/03/2013 a 20:58
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more