Mi empresa está buscando utilizar un ORM para un nuevo desarrollo en .Net. Actualmente estamos buscando nHibernate, debido a su popularidad, sin embargo, LLBLGen es otra opción que podemos considerar. El costo no es un factor primario. Necesitamos una solución que proporcione una buena separación del modelo de dominio de la base de datos, una buena estrategia de almacenamiento en caché, productividad de desarrollo (es decir, si puedo editarla en una GUI en lugar de archivos de configuración, excelente), buen soporte al cliente.Qué herramienta de ORM debo usar para el desarrollo de .Net
Sé que nHibernate es muy popular, pero también sé que el precio (es gratuito) puede ser parte de esa razón para los tipos de fuente abierta. Dado que el costo no es un factor primario (a menos que el precio sea> $ 10,000), ¿cuál elegiría dadas nuestras circunstancias? Además, ¿qué otros factores, además de los que he enumerado, consideraría más importante al elegir un ORM?
Resolución
Finalmente nos decidimos por NHibernate como una solución, sin embargo, en retrospectiva, creo que me habría ido con LL si tuviéramos que hacerlo de nuevo. Simplemente no se encuentran los archivos de mapeo xml. Los generadores de código que encontré para NHibernate dejaron mucho que desear. Sí, me parece que Fluent NHibernate es un desarrollo interesante, pero prefiero esperar a que madure antes de usarlo.
Al final resultó que la parte más importante de mi proceso de aprendizaje no fueron las tecnologías, sino dos patrones de diseño: el repositorio y los patrones de interfaz separados. Al definir una interfaz de depósito para el acceso a los datos (Jeffrey Palermo tiene varias publicaciones en el blog y los libros Apress y Wrox MVC también lo muestran), podemos usar LinqtoSQL, LLBLGen, NHibernate, etc. y cambiar la implementación de DAL más tarde si cambiamos Entonces, mientras uno de mis compañeros de trabajo usa NHibernate en su aplicación, elegí usar LinqToSQL en mi aplicación más reciente y funcionó bien.
Ric - estamos usando LLBLGEN actualmente. Estamos intentando incorporar más pruebas unitarias en nuestra nueva aplicación, y tenemos algunas dificultades para hacerlo sin tocar la base de datos (usamos el modelo de adaptador). ¿Cómo te acercas a Unit Testing LLBL? –
Hola @LuckyLindy Sugiero http://ayende.com/projects/rhino-mocks.aspx y creo objetos falsos en lugar de usar la base de datos directamente, creo que esta podría ser una pregunta muy similar casi ya que podría estar pidiendo algo que merezca una mejor respuesta que la mía :) –