Database Studio
NOVEMBER 2016 - DECEMBER 2016
Database Studio es una aplicación en Windows Forms que permite jugar con diferentes bases de datos NOSQL como DocumentDB y MongoDB, hacer operaciones básicas de consulta, inserción, modificación y borrado, incluso ejecutar queries sencillas. Este proyecto permite aprender sobre los drivers y apis de acceso de las diferentes bases de datos NOSQL. Database Studio implementa un patrón Repository que permite abstraerse del tipo de base de datos utilizada. El proyecto es de código abierto y personal, se implementa para aprendizaje y uso personal, para operaciones de base de tamaño pequeño, nunca para utilizarlo de forma profesional.
Arquitectura
La solución está dividido en varios proyectos:
Por una parte tenemos un proyecto de Windows Forms encargado de la gestión de mostrar la ventana principal y obtener la configuración adecuada en función de la base de datos que hayamos escogido.
El resto de proyectos principales contienen los repositorios y configuraciones de cada posible base de datos NOSQL incluida. El proyecto Utils ofrece una interfaz de Repositorio y Configuración utilizada de forma abstracta por las interfaces gráficas de Windows Forms.

Json Example
Si no tenemos una base de datos MongoDB, DocumentDB o DynamicDB, podemos utilizar una a modo de ejemplo.
Podemos escoger un archivo json con la base de datos almacenada o bien usar el que se aporta de ejemplo (Portugal.json).
Una vez abierto podemos jugar creando o eliminando colecciones, hacer queries básicas o creando, editando y borrando documentos de una colección. Podemos guardar nuestro trabajo en un fichero json nuevo para poderlo cargar más tarde (File --> Extract to Json File).
Trabajando con ficheros se utiliza la librería Json de Newtonsoft.
Documentación de Json Newtonsoft

MongoDB
Podemos descargarnos un servidor local de MongoDB para ensayar, el programa nos ofrece la configuración de localhost por defecto.
De la misma forma que si trabajaramos con un ejemplo Json, podemos trabajar con colecciones y documentos.
En mi opinión, MongoDB tiene el driver oficial más cómodo que he visto para trabajar con C#.

Azure DocumentDB
Necesitaríamos una suscripción a Azure y una base de datos DocumentDB, existen cuentas gratuitas temporales de prueba para desarrolladores.
En mi opinión, DocumentDB es más difícil de utilizar, tiene opciones como la política de indexación perezosa y consistente que hay que dominar, el driver oficial es aún bastante tedioso y complejo, además produce bloqueos a la hora de usar las tareas asíncronas si no se emplea de forma correcta.
Dynamo DocumentDB
Amazon Web Services está cogiendo fuerza, podemos hacernos una cuenta gratuita temporal y trabajar con bases de datos DynamoDB.
DynamoDB es un poco diferente al resto de bases de datos NOSQL que he analizado, se basa menos en json y más en diccionarios de valores y tipos, la capa con C# tiene mucho que mejorar todavía.