Ar fi NHibernate utilizate în proiecte de mare anvergură, cum ar fi Facebook spun? (De dragul argumente)

voturi
4

Pentru cei care cunosc mecanismele interioare ale NHibernate, crezi că o aplicație web pe scară largă cum ar fi spus Facebook / MySpace ar folosi Nhibernate?

Sau este NHibernate bine potrivit pentru mai multe site-uri cu trafic scăzut, cum ar fi site-urile companiei, etc? adică nu întreprindere pregătită din cauza naturii sale vorbăreț?

Întrebat 18/05/2009 la 12:42
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
9

NHibernate nu este deloc vorbăreț. Despre scalabilitate, a existat deja o întrebare pe grupe NH , care a fost mai mult despre complexitatea bazei de date , atunci de trafic, dar ar putea fi încă interesant pentru tine.

Chiar dacă există întotdeauna plângeri despre interogări inutile pe fiecare ORM, din cauza caracterului generic al unui ORM, aceasta nu înseamnă că este vorbăreț. Pe de altă parte, optimizează situațiile în care ar fi prea complex pentru a optimiza în mână scris DAL lui. De exemplu. loturi de interogare sau de încărcare leneș.

NHibernate este destul de lumină-greutate în comparație cu alte lui ORM și în comparație cu este caracteristici puternice.

NHibernate (ca orice ORM) ar putea fi considerate a fi nejustificată în cazul în care nu există nici un model de business orientat obiect, dar ai nevoie pentru a optimiza pentru cea mai înaltă performanță. Nu cred că Google ar putea face uz de Nhibernate pentru motorul său de căutare, de exemplu.


Editați | ×:

Performanța și puterea Nhibernate nu este complet gratuit. Se impune ca dezvoltatorii să înțeleagă cel puțin elementele de bază ale bazelor de date relaționale. încerca și alte ORM de a ascunde problematicilor relaționale întregi, ceea ce duce la un comportament mult mai neoptimizat.

Publicat 18/05/2009 la 13:05
sursa de către utilizator

voturi
1

NHibernate este o glumă profesionist. În compania mea, utilizarea sa a fost interzisă de mai multe motive. Ca instrument este destul de neproductivă; veți petrece nenumărate ore încercând să dau seama, sau găsirea unor strategii alternative într-o documentație limitate.

Mult mai bine, utilizați propria DAL generate și SP pentru a obține de înaltă performanță. Vei avea un plan de execuție în cache, iar în cele din urmă asta e ceea ce contează cu adevărat.

NHibernate nu are nici un suport avansat pentru memcached, care este special ceea ce aveți de gând să utilizați, dacă doriți să construiască o soluție de web scalabile, cum ar fi Facebook.

Eu lucrez pentru o companie de jocuri sociale, și le-am interzis special pentru a utiliza NHibernate în special.

Publicat 11/12/2012 la 13:54
sursa de către utilizator

voturi
0

NHibernate suportă cache de interogare, cache de nivel 2 bazat pe chei primare, și, de asemenea, cache sesiune pentru hit-uri repetate pe aceeași entitate în cadrul aceleiași sesiuni.

Asta e tot un mare ajutor, dar atâta timp cât sunteți lovind o bază de date cu o sarcină mare, aveți de gând să aibă probleme de scalare. Cel mai bun mod de a scala o bază de date este de a minimiza cantitatea de timp pe care de fapt, trebuie să-l folosească. Distribuit cache-ul, cum ar fi memcache, și cache de ieșire (fie vederi post-datacrunched sau HTML) dvs. sunt cele mai bune moduri de a scala o aplicație. În cazul în care clienții sunt ating în mod regulat baza de date, o faci greșit, ORM sau nu. Într-o aplicație NET, cum ar fi o aplicație tipică MVC, are avantajul de a fi capabil de a utiliza varyby cache de ieșire, gogoașă și cache-gogoasa gaura, precum și clienți pentru memcache să fie utilizat cu NHibernate și pentru ViewModels dumneavoastră.

Publicat 06/03/2013 la 20:58
sursa de către utilizator

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