2009-02-19 30 views
8

Estamos investigando el uso de un ORM y quería algunas opiniones/comparacionesLo ORM para ejecutar: telerik Acceso Abierto VS subsónico VS LINQ to SQL VS Active Record

Los criterios básicos que tenemos para un ORM es: Fácil utilizar/configure (corta curva de aprendizaje), flexible, la capacidad de abstracción a la basura, fácil de mantener

Aquí está una lista de lo ORM que estamos viendo y lo que nuestras impresiones iniciales son

  1. abierto Acceso: parece realmente fácil para cosas simples, pero no parece O tiene una gran flexibilidad, el costo no es un problema que ya poseemos
  2. Ling a SQL - se ve muy simple de usar y configurar, pero le falta algunas funciones
  3. Active Record - NHibernate hecho sencillo
  4. SubSonic - se ve muy rico en características, pero en realidad no han jugado con mucho

aquí están los ORM que hemos estudiado y descartado

  1. entidad está todavía en fase beta
  2. NHibernate tiene ahora a gran parte de una curva de aprendizaje (pero aún no disponemos de 3 semanas a delicados para aprenderlo)

Respuesta

4

Actualmente usamos SubSonic (2.0.3) y ha sido un salvavidas absoluto. No puedo hacer suficiente hincapié en lo increíble que es. SIN EMBARGO, ahora estamos buscando abandonarlo por varias razones (probablemente a NHibernate o Entity). Aquí están mis pros y los contras de la misma:

Pros:

  • muy sencillos de configurar y usar.
  • Un montón de grandes & útil, herramientas y características
  • Utiliza la filosofía "convención sobre la configuración", por lo que muy poca configuración. "Simplemente funciona". (Siempre y cuando se hacen las cosas de la manera que quiere ... :))

Contras:

  • El diseño de su base de datos está muy estrechamente unida a su diseño de dominio. Haga un cambio en su base de datos, y debe cambiar su código/diseño de dominio.
  • De manera predeterminada, SubSonic utiliza el patrón ActiveRecord para todos los accesos de datos en lugar del patrón Repositorio, lo que hace que sea más difícil "abstraerlo". (Aunque creo con v3.0 que puede intercambiar las plantillas predeterminadas de ActiveRecord para usar el patrón Repositorio).
  • Muchos rumores pesimistas sobre el futuro de SubSonic. Pero los rumores son solo eso: rumores.
3

Para todo el emparejado pennies valdrá la pena:

Si no tiene 3 semanas para aprender su ORM de su elección (lo que elija), es posible que tenga que encontrar 3 semanas para leer Más tarde, cuando no mapea algo exactamente como pensaste que sería.

Si tiene un modelo moderadamente complicado, ORM no es trivial. Tendrá que saber cómo funciona su ORM para que pueda indicarle que haga un mapa de las cosas de la manera que desee.

Que es todo otra manera de decir "Conoce tus herramientas", por supuesto. :)

+0

Es por eso que uno de los requisitos es la capacidad de abstraerlo, por eso algo no funciona, podemos codificarlo nosotros mismos. –

1

La mayoría de la gente tendrá un poco de experiencia con uno o dos de ellos, pero pocos tendrán exposición a todos. Recomiendo un esfuerzo de prueba de concepto con cada uno de tus favoritos. Obtenga cada configuración, gastando no más que horas por herramienta ORM (n = sin importar cuánto tiempo usted decida que es razonable). .

En el momento en que haya terminado, habrá reparado la configuración y el uso de todos ellos. A continuación, puede redactar una autopsia y el equipo puede decidir cuál tiene la mejor relación dolor-a-función.

0

Estoy muy de acuerdo con BryCoBat (upvoted). También quería agregar que si usted ya tiene acceso abierto, es muy probable que la compañía tenga personas internamente que ya estén muy cómodas con él, incluidos los ejemplos de código que observa en su propio dominio para tareas triviales y no triviales. En otras palabras: usa lo que sabes.

+0

tenemos acceso abierto porque usamos los controles rad y obtuvimos la suite Telerik completa –

6

Yo diría que debería echar un vistazo a DataObjects.NET (http://www.x-tensive.com). Es rico en funciones y bastante fácil de usar. Sin embargo, lo relaciona absolutamente con su modelo de objetos, ya que decide cuál debe ser la estructura de la base de datos en función de cómo se ve su modelo de objetos. Dicho eso, si quieres ignorar la existencia de la base de datos, es bastante agradable. Lo hemos usado durante años y hemos tenido un gran éxito.

1

Usa plantillas T4 para crear las tuyas propias. Hay varios patrones establecidos disponibles en Internet especialmente para plantillas T4. El conocimiento de T4 también le permitirá crear secuencias de comandos para los elementos que pueden tener un alcance mayor que las macros, pero un alcance menor que escribir una aplicación personalizada para generar el script que necesita. Espero que esto ayude!

0

Si no está utilizando controles Telerik, LINQ to SQL debe ser el que seleccione para el aprendizaje rápido: hay una gran cantidad de tutoriales, videos y libros diferentes en la web.