2009-04-08 11 views
13

¿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

+0

Mindsource -> Mindscape – geofftnz

+0

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 ... –

Respuesta

11

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.

+0

Lo único que RoR ActiveRecord y Castle ActiveRecord es que ambos implementan el mismo patrón. No comparten nada más allá de eso. –

+4

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

2

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

+0

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

+0

El rendimiento se ha mejorado en las últimas dos versiones publicadas en los últimos 2,5 años. –

4

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 :).

0

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.

+2

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. –

+0

Solo para tener en cuenta: Jeremy Boyd es el RD de Microsoft en Nueva Zelanda. ¡Lightspeed es rápido! –

7

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.

+3

Si la asignación es un problema, use Fluent-NHibernate o ActiveRecord –

4

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.

+1

parece que su artículo se ha movido aquí: http://www.shrinkrays.net/articles/a-look-at-net-object-relational-mapper-orms. aspx – Myster

+1

Gracias, lo actualicé –

Cuestiones relacionadas