Estoy buscando un marco común de acceso a datos que brinde portabilidad en varias bases de datos nosql como SimpleDB, Azure Tables, Cassandra, CouchDB, MongoDb, etc. Estoy construyendo una aplicación y me gustaría que mis clientes puedan usarla que cada tienda nosql quieren.¿Existe un marco nosql independiente de la base de datos para .NET?
En un escenario más relacional, utilizaría Linq sobre nHibernate o Entity Framework, pero no he encontrado un marco equivalente para las bases de datos nosql. Todo lo que he encontrado es una API específica de la base de datos, aunque parece haber una gran similitud. ¿Existe uno? Preferiblemente uno con LINQ.
¿Cuál es el conjunto básico de características comunes en este momento? ¿Es realmente solo un objeto al que se accede a través de su id de objeto? BTW. Azure no soltó Tablas, solo ofrecieron Relacional y NoSQL. Lo mismo que Amazon hizo con RDS. –
En este punto, creo que obtiene operaciones CRUD básicas. Map/Reduce es significativamente diferente incluso entre Couch y Mongo (que son relativamente similares). Algunas de las ofertas enumeradas son compatibles con el control de versiones, pero Mongo no. Couch tiene el concepto de "vistas", que es fundamental para la reducción de mapas, pero Mongo simplemente arroja resultados de reducción de mapas en una nueva colección. Entonces, es posible que puedas "abstraer" esto, pero es una gran cantidad de abstracción, porque están haciendo cosas diferentes. –