Database Studio


NOVEMBER 2016 - DECEMBER 2016

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.

Enlace al proyecto en GitHub

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#.

Descargar mongoDB Server

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.

Portal de Azure

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.

Amazon Web Services