c# - litedb - raven db
.NET, JSON, ¿Solución de gestión de datos integrada y de uso comercial gratuito? ¿Qué hacer? (2)
¿Has echado un vistazo al Marco Karvonite ? Karvonite Framework proporciona un sistema de base de datos integrado de tipo fuerte que incluye una implementación de biblioteca portátil para el desarrollo de .NET / Windows Store / Silverlight / Windows Phone / Xbox. Solo lo he usado para implementaciones de bases de datos pequeñas, pero hasta ahora ha cumplido con cada una de mis necesidades.
Estoy tratando de desarrollar una solución de administración de datos para un producto comercial que cumpla con varios criterios. Los criterios y mi razonamiento son los siguientes:
- La solución debe estar en C # o soporte C #
- Administrar datos como JSON
- Sin mantenimiento de esquema externo
- Ser capaz de almacenar en caché algunos o todos los datos en la memoria y persistir en el disco
- No requiere una instalación adicional.
- Si la solución involucra software de terceros, la licencia debe ser compatible con el uso comercial sin costo
Requisito # 1 : Mi solicitud está escrita en C # y preferiría que cualquier solución no implique la integración con aplicaciones, bibliotecas o código en otro idioma.
Requisito n. ° 2 : hay varias herramientas y bibliotecas basadas en JSON que me gustaría utilizar, por lo que necesito una solución donde los datos se encuentren o se conviertan fácilmente a / desde JSON.
Requisito # 3 : Quiero evitar el mantenimiento del esquema que viene con el uso de soluciones de bases de datos relacionales. Prefiero administrar las asignaciones de datos a objetos que no coinciden en el código y hacer que el código actualice los datos más antiguos en lugar de administrar las actualizaciones de esquemas por separado.
Requisito # 4 : Requiero que algunos o todos los datos se carguen en la memoria en todo momento, y todos los datos se conserven en el disco. Si los datos persisten en la memoria o no, debe ser opcional por tipo de datos.
Requisito nº 5 : al instalar mi producto, no quiero tener ninguna instalación secundaria o tener ningún servicio externo ejecutándose que no sea mi aplicación. Una solución completamente autónoma es la mejor.
Requisito # 6 : El uso previsto es para un producto comercial distribuido. Preferiría evitar cualquier cargo adicional o problemas de licencia que vienen con muchas soluciones de terceros.
Hasta la fecha he intentado varias soluciones. Originalmente no tenía tantas restricciones y SQLite.NET un SQLite.NET y su uso no fue desagradable, pero la sobrecarga del mantenimiento del esquema y el formato de datos fue más de lo que me gustaría. Investigué muchas soluciones NoSQL (como RavenDB ), otras soluciones de terceros (Karvonite) e implementaciones simples de almacenamiento de archivos JSON, pero no estoy satisfecho con ninguna de ellas.
¿Hay algún enfoque o solución personalizada que me esté perdiendo, que alguien más haya utilizado con éxito? Espero que simplemente esté pasando por alto la (s) opción (es) que busco, y que algunos expertos en NoSQL y .NET tengan suficiente experiencia en esta área para que me indiquen la dirección correcta.
EDITAR : En caso de que algún comentarista original esté confundido, actualicé la pregunta y el título para cumplir mejor con las políticas de SO.
El NHibernate Automapping fluido sobre SQLite cumpliría con todos sus requisitos, excepto la edición 2 - "NoSQL, preferiblemente todos los datos son un documento JSON"
Automapsula un esquema de base de datos relacional de su modelo de objeto ... no usa JSON. Sin embargo, es posible que pueda guardar datos JSON como BLOB. (advertencia: no sé casi nada acerca de JSON)