Las mejores herramientas gratuitas de ORM para usar con .NET 2.0 / 3.5

Estoy interesado en usar un paquete Object-Relational Mapping para un próximo proyecto. Este proyecto comenzará como una aplicación ASP.NET pero tendrá muchas funcionalidades que eventualmente se compartirán con las aplicaciones WinForms. ¿Alguien puede sugerir algunos buenos paquetes gratuitos de ORM que funcionen bien en situaciones de ASP.NET y WinForms?

SubSonic no es tan extenso como nHibernate; más bien, es una clase directa de registro activo 1 por tabla de capa de acceso a datos.

Algunas de las características son una herramienta de consulta, la capacidad de ejecutar procedimientos almacenados y una aplicación de andamios en ASP.net. Puede estar en funcionamiento en 30 minutos o menos, con una pequeña curva de aprendizaje y una configuración mínima en el archivo Config.app.

Siempre recomiendo Castle ActiveRecord . Es una capa encima de NHibernate . Funciona muy bien en ambos entornos que ha mencionado.

nHibernate funciona para mí, pero todo depende de lo que busque. Mucha gente no quiere bajar la DDD completa y la ruta de prueba de la unidad. Solo quieren algo simple para asignar su base de datos a los objetos para que el código sea un poco más agradable. Si ese es el caso, mire Subsonic y posiblemente sea más fácil comenzar.

Estoy a favor de Fluiber NHibernate , que le permite crear asignaciones en tipos fuertes de C #, en lugar de utilizar los archivos normales de NHibernate XML. También te permite mezclar y combinar (puedes tener asignaciones en código y en XML).

Hay un buen artículo para comenzar aquí .

Intentar, subsónico

y también puede usar Linq2Sql ORM.

NHibernate

No investigué ActiveRecord simplemente por el hecho de que según independant serveys no funciona tan rápido como muchos otros ORM y no tiene una implementación completa de Linq.

DataObjects.NET requiere que todas sus entidades se deriven de clases especiales, pero a cambio de esto, usted tiene un desempeño respetable y beneficios como los proveedores de almacenamiento en memoria y la implementación más completa de Linq.

Paso la tarde revisando el código fuente de DBLinq. Mi opinión es que es inmadura (muchas de las características de Linq-To-SQL simplemente no están implementadas), y no lo recomendaría para sistemas de producción.

Entonces, si está buscando un ORM compatible, libre, rápido, de código abierto, entonces DataObjects.NET es una apuesta bastante segura.

Checkout XmlDataMapper un ORM libre simple (Licencia LGPL) que deja una huella de memoria baja en comparación con los otros gigantes. El proyecto de ejemplo proporcionado debe ser lo suficientemente bueno para comenzar.

Para integrar XmlDataMapper todo lo que necesita hacer es 4 pequeños pasos

  1. Crear una Entidad comercial / DTO para las tablas
  2. Cree un archivo XML con la información de asignación entre la tabla y el DTO.
  3. Especifique el archivo DTO y xml en la configuración.
  4. Simplemente llame al DTOConverter.Convert (dataReader) y a otros métodos para convertir su registro de base de datos a DTO / Business Entity

Pruebe dbFrameIT disponible en http://www.dbframeit.com . Es muy fácil de usar y ofrece una licencia de uso personal gratuita.

He estado utilizando SubSonic durante aproximadamente un año para un puñado de aplicaciones ASP.NET, así como una aplicación WinForms. Es muy fácil comenzar y aún no me han “arrinconado” al elegirlo; casi siempre hay alguna manera de hacer lo que necesita, generalmente de manera fácil. Estimo que se ha afeitado un 30% de descuento en nuestro tiempo de desarrollo. No es una verdadera herramienta de ORM pero proporciona un gran aumento de productividad.

Yo uso NHibernate y NHibernate Annotations. Está funcionando bien, sin mapear archivos (entity.xml). Desafortunadamente, tienes que hacerlo en Log4net, que requiere un pequeño archivo xml.

Habanero , gran y poderoso ORM. Es gratis (licencia LGPL), trabajo con .net 2.0 (es muy importante para mí) y tiene herramientas potentes para generar modelos a partir de bases de datos (con clases personalizadas y nombres de propiedades, validación personalizada, etc.)

Vea esta lista de herramientas ORM “.Net”

Contiene todas las herramientas .Net ORM famosas