Würde nhibernate in Großprojekten verwendet werden, wie etwa Facebook? (Für Argumente willen)

stimmen
4

Für diejenigen, die das Innenleben von nhibernate wissen, denken Sie, eine groß angelegte Web-Anwendung wie sagen facebook / myspace nhibernate verwenden würde?

Oder ist nhibernate gut für mehr Low Traffic-Sites wie Firmenstandorte usw. geeignet? dh nicht Unternehmen bereit wegen seiner gesprächig Natur?

Veröffentlicht am 18/05/2009 um 12:42
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
9

NHibernate ist gar nicht so gesprächig. Über Skalierbarkeit, gab es bereits eine Frage zu NH Gruppen , die mehr über die Komplexität der Datenbank dann der Verkehr war, aber vielleicht noch für Sie interessant sein.

Auch wenn es immer Beschwerde des über unnötige Abfragen bei jeder ORM, wegen des Gattungs eines ORM ist, bedeutet es nicht, dass es gesprächig ist. Auf der anderen Seite optimiert es Situationen, in denen es zu komplex sind in handschriftlicher DAL ist zu optimieren. Z.B. Abfrage Chargen oder verzögertes Laden.

NHibernate ist sehr leichtgewichtig im Vergleich zu anderen ORM und im Vergleich zu es leistungsstarken Funktionen.

NHibernate (wie jede andere ORM) könnte übertrieben angesehen werden, wenn es kein objektorientiertes Geschäftsmodell ist, aber Sie müssen für höchste Leistung optimieren. Ich glaube nicht, dass Google die Verwendung von NHibernate für seine Suchmaschine machen könnte, zum Beispiel.


Bearbeiten:

Die Leistung und die Leistung von NHibernate ist nicht vollständig kostenlos. Es setzt voraus, dass die Entwickler über relationale Datenbanken zumindest die Grundlagen zu verstehen. Andere ORM versuchen, die ganzen relationalen Problematiken zu verbergen, die zu viel nicht optimiert Verhalten führt.

Beantwortet am 18/05/2009 um 13:05
quelle vom benutzer

stimmen
1

nHibernate ist ein professioneller Witz. In meiner Firma, seine Verwendung von mehreren Gründen verboten. Als Werkzeug ist sehr unproduktiv; Sie werden unzählige Stunden versucht, herauszufinden, oder die Suche nach alternativen Strategien in einer knappen Dokumentation verbringen.

Viel besser, nutzen Sie Ihren eigenen erzeugen DAL und SP hohe Leistung zu erzielen. Sie werden einen zwischengespeicherten Ausführungsplan haben, und am Ende, das ist es, was wirklich zählt.

nHibernate hat keine erweiterte Unterstützung für Memcached, die speziell ist, was Sie, wenn Sie gehen verwenden wollen eine skalierbare Web-Lösung zu bauen, wie Facebook.

Ich arbeite für ein Social-Gaming-Unternehmen, und wir haben speziell insbesondere die Verwendung nhibernate verboten.

Beantwortet am 11/12/2012 um 13:54
quelle vom benutzer

stimmen
0

NHibernate unterstützt Query-Caching, 2. Level-Caching auf Primärschlüssel basiert, und auch Sitzungscache für wiederholte Zugriffe auf die gleiche Einheit innerhalb der gleichen Sitzung.

Das ist alles eine große Hilfe, aber so lange, wie Sie eine Datenbank mit einer großen Last schlagen, werden Sie Skalierungsprobleme haben. Der beste Weg, um eine Datenbank zu skalieren ist die Zeit, Sie haben tatsächlich zu minimieren, es zu benutzen. Distributed Cache wie memcache und Caching Ihrer Ausgabe (entweder post-datacrunched Ansichten oder html) sind die besten Möglichkeiten, um eine Anwendung zu skalieren. Wenn Kunden die Datenbank regelmäßig schlagen, tun Sie es falsch, ORM oder nicht. In einer .NET-Anwendung, wie ein typischer MVC-app, hat die Vorteile der Lage zu verwenden varyby Ausgabe Caching, Donut und Donut-Loch-Caching sowie Clients für memcache mit NHibernate und für Ihre Viewmodel verwendet werden.

Beantwortet am 06/03/2013 um 20:58
quelle vom benutzer

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