¿Se usaría nhibernate en proyectos a gran escala como, por ejemplo, Facebook? (por los argumentos)

votos
4

Para aquellos que conocen el funcionamiento interno de nhibernate, ¿crees que una aplicación web a gran escala como, por ejemplo, facebook / myspace usaría nhibernate?

¿O es el nhibernate adecuado para sitios de poco tráfico como sitios de empresas, etc.? es decir, no está listo para la empresa debido a su naturaleza hablante?

Publicado el 18/05/2009 a las 12:42
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
9

NHibernate no es nada hablador. Acerca de la escalabilidad, ya existía una pregunta sobre los grupos de NH , que era más sobre la complejidad de la base de datos que el tráfico, pero aún podría ser interesante para usted.

Incluso si siempre hay quejas sobre consultas innecesarias en cada ORM, debido a la naturaleza genérica de un ORM, no significa que sea parlanchín. Por otro lado, optimiza situaciones en las que sería demasiado complejo optimizar en DAL escritos a mano. P.ej. lotes de consultas o carga lenta.

NHibernate es bastante liviano en comparación con otros ORM y sus potentes funciones.

NHibernate (como cualquier otro ORM) podría considerarse excesivo si no hay un modelo de negocio orientado a objetos, pero debe optimizarlo para obtener el máximo rendimiento. No creo que Google pueda hacer uso de NHibernate para su motor de búsqueda, por ejemplo.


Editar:

El rendimiento y el poder de NHibernate no es completamente gratis. Requiere que los desarrolladores comprendan al menos los conceptos básicos sobre las bases de datos relacionales. Otros ORM intentan ocultar toda la problemática relacional, lo que lleva a un comportamiento mucho más desoptimizado.

Respondida el 18/05/2009 a las 13:05
fuente por usuario

votos
1

NHibernate es una broma profesional. En mi empresa, su uso ha sido prohibido por varias razones. Como herramienta es bastante improductivo; podrás pasar horas y horas tratando de averiguar, o la búsqueda de estrategias alternativas en una documentación escasa.

Mucho mejor, utilizar su propio DAL generada y SP de lograr un alto rendimiento. Vas a tener un plan de ejecución en caché, y al final eso es lo que realmente importa.

NHibernate no tiene soporte avanzado para memcached, que está especialmente lo que se va a utilizar si usted quiere construir una solución web escalable, como Facebook.

Yo trabajo para una compañía de juegos sociales, y hemos especialmente prohibido su uso con nhibernate en particular.

Respondida el 11/12/2012 a las 13:54
fuente por usuario

votos
0

NHibernate es compatible con almacenamiento en caché, caché de segundo nivel basado en claves primarias, y también caché de sesión de repetidos golpes en la misma entidad dentro de la misma sesión.

Eso es todo una gran ayuda, pero siempre y cuando usted está golpeando una base de datos con una carga grande, que van a tener problemas de escala. La mejor manera de escalar una base de datos es minimizar la cantidad de tiempo que realmente tiene que usarlo. Memoria caché distribuida como Memcache y el almacenamiento en caché de salida (ya sean sus puntos de vista post-datacrunched o HTML) son las mejores formas de ampliar una aplicación. Si los clientes están golpeando regularmente la base de datos, lo estás haciendo mal, ORM o no. En una aplicación .NET, como una aplicación típica MVC, tiene la ventaja de ser capaz de utilizar varyby memoria caché de salida, donut y el almacenamiento en caché de rosquilla agujero, así como clientes de Memcache para ser utilizado con NHibernate y para sus ViewModels.

Respondida el 06/03/2013 a las 20:58
fuente por usuario

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