En busca de orientación sobre la base de datos de .NET incrustado (como db4o, NHibernate, o RavenDB)

StackOverflow https://stackoverflow.com/questions/3580510

Pregunta

I tiene un modelo de objetos que desea guardar mediante una base de datos integrada. Yo hasta ahora he estado buscando en db4o, NHibernate a SQLCE (w / LINQ), y RavenDB. Esto se usaría en una aplicación de escritorio de C #.

Las características del clave Busco al apalancamiento son: LINQ o similar para consultas SQL (sin o HQL), motor de datos integrado, Pocos, primer modelo poco, sin instalar (hay un registro o similar)

Puede alguien sugerir una? Son los tres que estoy mirando las mejores opciones? ¿Hay otras opciones? De los tres, ¿alguien puede recomendar uno sobre el otro?

Gracias

¿Fue útil?

Solución

Bien las tres bases de datos sugeridos son muy diferentes en su naturaleza. SQLCE con Hibernate como RDBMS con un ORM, DB4O como base de datos de objeto y RavenDB como base de datos documental. Cada uno de ellos tiene sus puntos fuertes.

SQL CE y NHibernate-Combo Lo bueno:

  • Extremadamente buen soporte en herramientas, los conocimientos y de una gran comunidad está allí
  • Fácil de upgrage a los servidores MS SQL
  • Extrem apoyo que han obtenido buenas
  • El poder de SQL

Lo malo:

  • Necesidades mapeo
  • El mapeo entre la OO y el mundo relacional no es fácil y puede conducir a problemas con modelos complejos.

RavenDB

Lo bueno:

  • No necesita ningún mapeo
  • Fácil de usar
  • indexación Potente
  • JSON y el acceso HTTP

Lo malo:

  • Si su dominio no se ajusta a un enfoque orientado al documento, será muy doloroso
  • No es compatible con el .NET Framework Client Profile (que es de particular importancia como la pregunta del OP está en relación con las bases de datos embebidas)

db4o

Lo bueno:

  • No necesita ningún mapeo
  • Fácil de usar
  • El modelo de almacenamiento está cerca del objeto-modelo. Esto también funciona para los modelos muy complejos.
  •  -

Lo malo:

  • Herramientas de apoyo es débil.

Que yo sepa los tres LINQ apoyo y POCO-primer acercamiento. Sin embargo, desde NHibernate y SQL CE todavía tienen toneladas de mapeo no es tan libre de fricción, ya que podría ser.

Creo que si su atención se centra en primer POCO, LINQ apoyo, el uso ebedded y fácil de usar, me gustaría probar RaveDB o db4o. Si su atención se centra en la 'seguridad', la comunidad en el conocimiento, herramienta de apoyo e informar Me gustaría ir con NHibernate y SQL CE.

Otros consejos

Firebird es una excelente base de datos integrada que ha apoyado durante mucho tiempo todas las características modernas de una base de datos de la empresa:

  • ANSI SQL
  • ACID
  • Los procedimientos almacenados
  • Triggers

Se puede obtener el .NET proveedor (24 de mayo de última actualización de acuerdo con el sitio) y es compatible con Entity Framework y LINQ.

esta pregunta . Para soporte LINQ, echa un vistazo a DbLinq , o puesto que ya va a utilizar NHibernate puede utilizar NHibernate de propio proveedor de LINQ.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top