¿Cuál es la experiencia con LightSpeed? La comparación proporcionada por Mindscape no dice mucho sobre NHibernate. Lightspeed parece flexible, pero no veo mucho sobre el rendimiento. ¿Qué tan bien funciona Lightspeed? ¿También hay algún inconveniente al usar Lightspeed?Lightspeed vs NHibernate
Respuesta
Durante los últimos seis meses, he estado utilizando NHibernate con Active Record en el trabajo y LightSpeed en mi casa en mi tiempo libre.
Ventajas/Inconvenientes Hasta ahora, he encontrado tanto LightSpeed y NHibernate con Active Record para ser fácil de aprender.
No he encontrado inconvenientes con LightSpeed (todavía). Las características que más me gustan son:
- Convenio sobre la configuración. Esto ahorra mucho tiempo y proporciona un código consistente.
- La clase de modelo y el generador de configuración.
- Soporte para Linq y MySQL 5.
Las características más acerca de Active Record que me gustan son:
- No se requiere configuración XML, las opciones de configuración más comunes se proporcionan automáticamente.
- La flexibilidad de NHibernate aún está disponible cuando es necesario (por ejemplo, consultas de criterios).
Los inconvenientes de Active Record para mí son:
- Parece que hay más de Ruby on Rails ejemplos de código que C# ejemplos
Rendimiento yo no tengo (todavía) compararon ambos productos uno al lado del otro y ejecutaron pruebas de rendimiento en ambos por igual.
Supongo que NHibernate adolece de una jerarquía de clases más profunda. Al optimizar mi código utilizando ANTS Profiler, descubrí que para una consulta simple hay llamadas después de las llamadas a través de las clases NHibernate antes de que se produzca la consulta SQL real.
Por supuesto, es la consulta que se produce lo que hará toda la diferencia para el rendimiento máximo de la ORM.
Tanto LightSpeed como NHibernate ofrecen carga diferida, y Active Record hace que esto sea más fácil para NHibernate.
Creo que es más fácil optimizar sus consultas usando Lightspeed con Linq, y más claro para las personas que mantienen su código. Mientras que generalmente no se recomienda escribir NHibernate HQL.
Lo único que RoR ActiveRecord y Castle ActiveRecord es que ambos implementan el mismo patrón. No comparten nada más allá de eso. –
Inconvenientes de Lightspeed: Las claves primarias siempre se tienen que llamar * Id * en el modelo, y Lightspeed espera que sean un solo campo autocalculado. Según su propio sitio web: "No esperamos que las claves primarias tengan ningún valor comercial". El soporte de claves compuestas es deficiente, e inspeccionando el perfilador SQL mientras se ejecutan consultas LINQ revela que su implementación está lejos de ser completa ... ni el caché ni las proyecciones funcionan correctamente con LINQ (aunque el mecanismo patentado de Mindscape funciona como se prometió). – Mark
He estado usando Lightspeed durante unos meses, pero soy un novato en .NET, por lo que nunca he usado NHibernate. Hasta ahora, me resulta bastante fácil de usar con una pequeña curva de aprendizaje y se actualiza constantemente. La gran ventaja para mí es el soporte. Las preguntas suelen ser respondidas en muy poco tiempo y cualquier error encontrado a menudo se soluciona al día siguiente y está disponible en la versión nocturna. ¿No está seguro de lo que quiere decir con "qué tan bien se comporta Lightspeed"? Este tipo parece muy feliz {: o) http://omarbesiso.spaces.live.com/blog/cns!70A5B53D721071B7!473.entry
Sí - Mindscape es genial respondiendo preguntas. Va un largo camino para compensar la documentación de skint con la que se envía el producto. Si desea ver qué tan bien funciona Lightspeed contra el servidor SQL, abra el generador de perfiles SQL y mire las consultas que genera ... ¡se sorprenderá al ver que después de todo no es tan prometedor! – Mark
El rendimiento se ha mejorado en las últimas dos versiones publicadas en los últimos 2,5 años. –
Recientemente eché un vistazo rápido a ambos. Lo que me impresionó con Lightspeed es:
- Sus herramientas que funcionan muy bien (los mejores diseñadores de VS que he usado, creo).
- Respuestas muy rápidas. Respondieron preguntas y agregaron características.
Lo que fue sorprendente para mí fue que dependen en gran medida de las convenciones, y no parece haber anulaciones en la mayoría de los casos. Así que mis opciones a la hora de decidir exactamente cómo se asignan las cosas no fueron tan buenas como yo quería. Supuestamente, Lightspeed 3 abordará esto para permitirle hacer más personalizaciones.
Me mantuve alejado de NHibernate por todo el XML, pero luego encontré Fluent NHibernate y parece que funcionará bastante bien. No hay soporte de diseñador, aunque algunos podrían decir que es por diseño (enfoque en sus objetos). NHibernate también parece ser el ORM más utilizado para .NET, por lo que es una apuesta "segura" en ese sentido. Hasta ahora ha sido capaz de mapear la mayor parte de lo que se me ocurre.
En cualquier caso, no llegué muy lejos con Lightspeed debido a las limitaciones de personalización. Si estuviera comenzando un nuevo proyecto que pudiera ajustarse a sus convenciones, podría ser una historia diferente. La compañía es muy receptiva, realmente me gustaría utilizar uno de sus productos :).
Tuve una conversación con uno de los principales desarrolladores de este producto (Jeremy Boyd) en los últimos años TechEd en Auckland Nueva Zelanda, y me hice esta misma pregunta. Parecía pensar que era varios órdenes de magnitud más rápido que NHibernate. Es su producto, por supuesto, así que va a decir eso, pero pensé que valía la pena mencionarlo.
Ese reclamo, sin calificaciones significativas, suena extremadamente sospechoso. Los ORM no tienden a agregar suficiente sobrecarga a una llamada de base de datos remota para incluso ser perceptible en muchas situaciones. –
Solo para tener en cuenta: Jeremy Boyd es el RD de Microsoft en Nueva Zelanda. ¡Lightspeed es rápido! –
en el rendimiento, from this page
Eager & carga diferida No N + 1 problema. Incluye "agregados nombrados". Es decir, dando un nombre al gráfico de carga impaciente particular . Mira el screencast.
No subestime esto. Esto significa que si carga una lista de 200 elementos, MOST ORM ejecutará 201 consultas en muchos casos. Lightspeed no. Es uno de los (muy) pocos que no.
Si está buscando algo que sea unos 100 ms más rápido en unos pocos casos extremos, buena suerte comparando cosas. Me gusta NH en teoría, y no creo que nunca utilice un ORM, pero durante la mayor parte de lo que he hecho, NH es una exageración total: termino gastando tanto tiempo manteniendo los metadatos, los archivos de clase, las asignaciones y otros, y es ... interesante ... para probar. bueno, fue para nosotros, de todos modos.
Si la asignación es un problema, use Fluent-NHibernate o ActiveRecord –
Hice la comparación de un gran conjunto de ORM recientemente, incluidos NH y Lightspeed. Yo uso NH profesionalmente, así que estoy un poco parcial, el artículo es here.
parece que su artículo se ha movido aquí: http://www.shrinkrays.net/articles/a-look-at-net-object-relational-mapper-orms. aspx – Myster
Gracias, lo actualicé –
- 1. NHibernate - ISession vs. IStatelessSession
- 2. NHibernate Fluido vs. Atributos
- 3. NHibernate - createCriteria vs CreateAlias
- 4. NHibernate vs. EF 4.1+
- 5. Subsonic Vs NHibernate
- 6. NHibernate ISet Vs IList
- 7. List vs Set vs Bag en NHibernate
- 8. NHibernate Component Mapping VS IUserType
- 9. NHibernate vs LINQ to SQL
- 10. NHibernate HQL vs CriteriaAPI vs QueryOver vs Linq. Rendimiento
- 11. HasOne vs Referencias Mapping Fluido NHibernate
- 12. nHibernate vs Entity Framework con Oracle backend
- 13. NHibernate Composite Key vs Composite Unique Constraint
- 14. SaveOrUpdate Vs Actualizar y guardar en NHibernate
- 15. MS Entity Framework VS NHibernate y sus contribuciones derivadas (FluentNHibernate, Linq for NHibernate)
- 16. NHibernate uno-a-uno vs 2 muchos-a-uno
- 17. ¿Por qué fluidez NHibernate vs. hbm archivos XML?
- 18. arquitectura S # arp vs recta IOC + NHibernate + MVC
- 19. NHibernate o Fluidez NHibernate?
- 20. DevExpress XPO vs NHibernate vs Marco de la entidad: cuestión actualización de base de datos
- 21. Ventajas de .NET métodos de acceso a datos ORM Enity Framework vs. NHibernate vs. Subsónico vs ADO.NET Datasets
- 22. NHibernate
- 23. Plantilla T4 para NHibernate? - No Fluido NHibernate
- 24. oscuro de error NHibernate/Fluido NHibernate
- 25. modernización y NHibernate NHibernate Validator w/Nuget
- 26. NHibernate architecture?
- 27. NHibernate Session.Evict()
- 28. NHibernate createSQLQuery
- 29. nhibernate Linq
- 30. NHibernate QuerySyntaxException
Mindsource -> Mindscape – geofftnz
No vayas a ningún lado cerca de Lightspeed, alguien aquí decidió usarlo y hay 0 apoyo y cada vez que tengo que tocarlo solo sale el dolor y el sufrimiento ... que no puedo simplemente describa lo frustrante que es ... Imagínese que Seibel y VB tuvieron un bebé, y no sucedió con cuidado. Como el odio ... Había algo mal con la relación y esa fue la única catarsis que tuvieron sin recurrir a la violencia ...así que sí, mantente alejado de Lightspeed ... –