2010-04-12 12 views
7

me gustaría ver a su experiencia con populares herramientas ORM outhere, como NHibernate, LLBLGen, EF, S2Q, Genom-e LightSpeed, DataObjects.NET, OpenAccess, ...ORM análisis de mercado

Desde mi exp : - Genom-e es silencioso capaz de rendimiento de Linq &, soporte de desarrollo - EF carece de algunas características clave como carga lenta, soporte de Poco, pers.ignorance ... pero en 4.o puede haber superado .. - DataObjects.Net hasta ahora es bueno, aunque encontré algunos errores - curva de aprendizaje empinada NHibernate, sin soporte 100% Linq (como en Genom-e y DataObjects.Net), pero muy de apoyo, extensible y maduro

+0

Bienvenido a Stackoverflow @bonefisher. Las preguntas tipo encuesta deben hacerse con la casilla "community wiki" marcada. Por favor edite su pregunta – Oded

+0

Gracias por la bienvenida y consejo;) – Bonefisher

Respuesta

5

http://www.ormbattle.net/

THat es la mejor comparación que puede encontrar en este momento.

Desde mi experiencia, por cierto: Aléjate de la versión actual de NHibernate si tienes interés en LINQ: utiliza la rama de desarrollo. El soporte de LINQ entra en la DLL principal Y, lo que es más importante, es mucho mejor y más completo que los métodos de adición limitada en las versiones actuales.

+2

ormbattle.net no es realmente una buena forma de evaluar las diferentes herramientas de Orm ya que ese benchmarking es inútil en el código de producción. – Bonefisher

+0

@TomTom: ¡Creo que el ormbattle.net es el mismo que http://ormeter.net! –

+0

depende. Al menos TAMBIÉN te da características. Por ejemplo, puede ver si las implementaciones de, por ejemplo, características LINQ son buenas o malas. Muchos de los puntos de referencia son pruebas de características. – TomTom

4
+0

gracias por el gráfico, pero ya lo vi hace semanas. Quería saber la experiencia personal, no algunos diagnósticos sobre los puntos de referencia sintéticos – Bonefisher

+2

Eso no funcionará. En serio, la experiencia personal es muy personal en las demandas de proyectos personales. Algunas personas trabajan perfectamente con LINQ, pero la mayoría de las veces si preguntas detrás de esto es porque no tienen ni idea de qué es lo que un ORM es capaz de hacer, y están totalmente felices de tener algo mejor que las cosas escritas a mano. – TomTom

+0

aún puede tener una buena experiencia con un ORM (libre de errores, buena funcionalidad, soporte) y una mala experiencia (demasiados errores, funcionalidad defectuosa, soporte retrasado (¡o ninguno!) De la empresa/comunidad ... así que en mi humilde opinión creo que esta es una pregunta válida. – Bonefisher

2

Hicimos un análisis muy en profundidad hace dos años (2010) betweeen NHibernate, EF y LLBLGen y eligió la última uno. Definitivamente pensamos que tomamos la decisión correcta.

Llblgen Pro es una hermosa & madura ORM (Entidad FW necesita evolucionar aún: directo m: n, enum, herencia ...). Fácil de usar, modelo y base de datos primero sin XML para ver, solo un buen diseñador gráfico.

  • de alta eficiencia: obtener sólo las columnas que necesita ... o utilizar TypedList conseguir comúnmente utilizado unió/columnas agrupadas ... o asignar sus puntos de vista con TypedViews, o asignar su recuperar Store Procedures ... o uso consultas ad-hoc. ¡Incluso podría crear algunas plantillas mapeando su propio POCO (TypeValue) y llamar directamente a SQL! (no hemos necesitado ir tan lejos)
  • Desde el diseñador, use su propio marco, o NHibernate o Entity Framework, o LINQ to SQL
  • Mucha funcionalidad que extrañaría una vez que haya decidido para entrar en producción (captura previa, transacciones, ayudantes de enlace de datos, paginación, (de) la serialización, la personalización (propiedades, inyección de dependencias, autorización, auditoría ...)

... pero es mucho más: una gran modelo de diseñador & plantilla de sistema.

De la ORM en:

  • Un buen uso de plantillas personalizadas (por ej. ASP.Net, MVC, REST o WCF) proporciona un sistema de andamios /arquitectura común -> permite a los codificadores menos experimentados ponerse al día con y ser más productivos. Las soluciones comunes se reutilizan (su costo cae hacia abajo: no es "código vs. entender & integrar" sino "código vs. enchufe "). Aunque es anticuados formularios web ASP.Net echar un vistazo a http://northwind.angte-demo.com/ para una sensación de lo que puede obtener con las plantillas.
  • de códigos para su aplicación particular en VS, como de costumbre. Si el código es reutilizable añadir el código a la plantilla (por lo general significa el cambio en un archivo ASP-como cosas como "producto" con "<% = Entity.Name%>", no muy duro).
Cuestiones relacionadas