1.17.2016

Conceptos iniciales de MongoDB

Siguiendo con los post acerca de mongoDB - base de datos que aprovecharmos luego para utilizarla con nodejs en VSCode - en este post vamos a ver conceptos básicos de esta base de datos.
Documento:  MongoDB se basa en documentos. Un documento en MongoDB es la unidad basica de datos, muy similar al concepto de una fila (registro) en una base de datos relacional. Un documento consiste en un conjunto de parejas de valores en formato JSON y se guardan en disco en formato el formato de serialización BSON (JSON binario)
La estructura de un documento en MongoDB luce similar al presentado a continuación:
{
 campo1: valor1,
 campo2: valor2,
 ....
 ....
 campoN: valorN
}
Cada documento en MongoDB tiene un campo _id el cual es el primer campo en el documento. Este campo es único a la colección a la que pertenece y puede contener cualquier tipo de dato BSON excepto un arreglo. Si el documento se crea sin un campo _id MongoDB automáticamente agrega este campo como el primer elemento del documento y le asigna un valor ObjectId a este campo. Cada documento tiene un límite de 16MB es tamaño para cada documento esto para prevenir el uso excesivo de memoria RAM o ancho de banda.
Colecciones: es como una tabla en una base de datos relacional, pero no tiene un esquema definido. En una colección pueden existir documentos que no tengan la misma estructura ni el mismo propósito, por ejemplo:
{
 Nombre: "Ana",
 Apellido: "Barquero",
 Direccion: "Santa Cruz de la Sierra"
}
{
 NombreArticulo: "Bocinas BOSE",
 PrecioUSD: 102.99
} 
{
 NumeroFactura: "ABC12",
 Cliente: "Ana"
} 
En el registro anterior existen tres tipos de documentos y dos de ellos estan relacionados Cliente: Nombre y Factura:Cliente.
Las colecciones son creadas automáticamente cuando se agregan los documentos o puede crearse de forma manual utilizando el comando db.createCollection().
Base de Datos: Una base de datos en MongoDB es un conjunto de colecciones. Las bases de datos en MongoDB se crean por petición; es decir, no existe un comando para crear una base de datos; las mismas se crean cuando se selecciona la base de datos o cuando se inserta un documento.









1.14.2016

Integrando un app en iOS con Azure Mobile Services

Uno de los componentes más útiles dentro de la plataforma PaaS de Azure son los servicios móviles. Estos servicios nos permiten llevar a cabo una gran cantidad de tareas de forma sencilla desde aplicativos móviles tales como conexiones vía Azure Service Bus con "backends" "on premises" o asociar el app para recibir "push notifications" en el app desde un backend "on premises" que soporte conexiones al bus de azure - es decir, escrita en C#, Java, nodejs o phyton. Pero que sucede cuando ya tenemos un app desarrollada en iOS y queremos modificarla para que use los servicios móviles de Azure. En este post vamos a ver los pasos necesarios para poder integrar un app desarrollada en iOS con un servicio móvil de Azure.

Crear el servicio móvil

El primer paso es crear el servicio móvil en Azure - algo que vamos a obviar en este post - utilizando una cuenta de Azure - ya sea de prueba o empresarial. Una vez creado el servicio móvil procedemos a ir al parte inicial de la configuración del servicio y llevamos a cabo los siguientes pasos:

  1. Seleccionamos la plataforma iOS para poder descargar el proyecto de prueba - aunque no es necesario yo lo descargo para siempre usar la última versión del sdk de Azure para iOS.
  2. Luego seleccionamos el lenguaje de la aplicación que deseamos crear y luego le damos descargar - en este caso vamos a seleccionar Objective-C. Insisto, no es necesario descargar el proyecto de prueba pero se facilitan muchos las cosas llevándolo a cabo.
En la siguiente figura pueden ver lo descrito anteriormente.




Ahora vamos al folder donde se descargo el aplicativo demo y procedemos a buscar el componente del servicio móvil de azure, una vez localizado lo arrastramos al proyecto que queremos integrar con el servicio móvil. En la siguiente figura se puede ver el detalle de esta acción.



Ahora bien, tenemos que agregar una referencia a los encabezados de las librería de en el proyecto para poder acceder sus clases, métodos, etc. Para lograr esto vamos a ir al archivo AppDelegate.h y ahí procedemos a agregar en el encabezado tal y como se ve en la figura (1). Igualmente vamos a crear una propiedad para tener acceso a una instancia del cliente de Azure el cual vamos a conectar con el servicio móvil para poder acceder métodos y tipos desde la instancia del componente - Figura (2)


Ahora vamos a proceder a agregar el código para conectarnos al servicio móvil. Como se ve en la siguiente figura, vamos a utilizar el método clietWithApplicationURLString de la clase MSClient y en ella vamos a indicar el URL del servicio móvil generado y la llave del servicio. Estos datos se pueden obtener de la página principal del servicio.

Luego de agregar el código de la conexión compilamos el proyecto y procedemos a programar contra los servicios y métodos que tenemos expuestos en el servicio móvil.