Anda di halaman 1dari 22

Xamarin Diplomado

Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y


Xamarin.Android.

Laboratorio
Acceso a Azure Storage (Blobs y Tabla
NoSQL) con Xamarin.iOS y
Xamarin.Android.

Versin: 1.0.0
Febrero de 2017

Enrique Aguilar

Pgina 1 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

CONTENIDO

INTRODUCCIN

EJERCICIO 1: REALIZANDO UNA APLICACIN PARA XAMARIN.IOS CON ACCESO A AZURE


STORAGE (TABLAS NOSQL)

EJERCICIO 2: XAMARIN.IOS CON ACCESO A AZURE STORAGE (BLOBS)

EJERCICIO 3: XAMARIN.ANDROID CON ACCESO A AZURE STORAGE (TABLE NOSQL)


DOWNLOAD

NOTA: PARA USUARIOS QUE NO TIENEN IOS PUEDEN USAR COMO EJERCICIO 1 Y 2 EL
EJERCICIO ALTERNATIVO.

EJERCICIO ALTERNATIVO: SUBIR UNA IMAGEN Y TEXTO AL AZURE STORAGE.

Introduccion
Azure Storage es una zona de almacenamiento de los servicios de Azure de Microsoft que permite una
diversa gama de soluciones para almacenar informacin y est dividida en 4 zonas, que son Blobs,
Tablas NoSQL, Archivos y flujos de trabajo.

Para obtener ms informacin, vea la siguiente pgina en el sitio oficial:


https://azure.microsoft.com/es-es/services/storage/

Recursos:
https://docs.microsoft.com/es-es/azure/storage/storage-introduction

Objetivos
Al finalizar este laboratorio, los participantes sern capaces de:

Desarrollar aplicaciones para iOS y Android con Xamarin que les permita subir y descargar
respectivamente informacin depositada en forma de tablas NoSQL y archivos de tipo blobs
en Azure Storage.

Requisitos
Para la realizacin de este laboratorio es necesario contar con lo siguiente:

Pgina 2 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Un equipo de desarrollo con sistema operativo Windows 10 y Visual Studio 2015 Community,
Professional o Enterprise con la plataforma Xamarin.
Un equipo Mac con la plataforma Xamarin.
Una cuenta vigente con suscripcin a Microsoft Azure.
En caso de no contar con una cuenta vigente de Azure puedes agregar la siguiente cadena de
conexin en ambos ejercicios (Xamarin.iOS y Xamarin.Android):

CloudStorageAccount cuentaAlmacenamiento = CloudStorageAccount.Parse("Defaul


tEndpointsProtocol=https;AccountName=tallerxamarin;AccountKey=s+A8siTK0j504B
TPkIBUT3e05t2OBoddrEXTkBMAbk1gEOH3ry7Vcs0ROAA0CPwfd9xL57Y1ywim+i+
nDUNV5w==");

Contenedor llamado: lab1

En caso de no contar con acceso al Sistema Operativo iOS, podrs realizar el laboratorio solamente
en Android con ajustes especficos. (Pgina 18).

Nota: Como parte del ejercicio es MUY IMPORTANTE que agregues la librera de NuGet llamada
XamarinDiplomado.Participants y verifiques que siempre tengas la versin ms actualizada de esta
librera desde el manejador de NuGet. Esta librera ayuda al Diplomado a registrar tu actividad para
futuros reconocimientos de participacin.

Una vez agregada la librera debes asegurarte que en el archivo App.xaml.cs (Proyecto Xamarin
Forms) o el archivo MainActivity.cs (Proyecto Xamarin Nativo) tenga la correcta inicializacin con tu
nombre y correo electrnico.

Para proyectos de tipo Xamarin Forms debes de agregar el registro al archivo App.xaml.cs en el
Proyecto DemoAzureOfflineSync (Portable).

using XamarinDiplomado.Participants.Startup;

public App()
{
InitializeComponent();
Startup startup = new Startup("NOMBRE","CORREO", 1, 1);
startup.Init();
}

Pgina 3 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Para proyectos de tipo Nativo debes de agregar el registro en el archivo MainActivity.cs en el mtodo
OnCreate, ver ejemplo de cdigo:

using XamarinDiplomado.Participants.Startup;

protected override void OnCreate(Bundle bundle)


{
base.OnCreate(bundle);

// Set our view from the "main" layout resource


// SetContentView (Resource.Layout.Main);

Startup startup = new Startup("Escribe tu nombre", "Escribe tu email", 1, 1);


startup.Init();
}

Tiempo estimado para completar este laboratorio: 90 minutos.

Pgina 4 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Ejercicio 1: REALIZANDO UNA APLICACIN


PARA XAMARIN.IOS CON ACCESO A AZURE
STORAGE (TABLAS NOSQL)
Para este ejercicio debemos de realizar lo siguiente:

1.- En el portal de Azure creamos un nuevo Storage de tipo Cuenta de Almacenamiento.

2.- Una vez creada la cuenta crearemos un nuevo proyecto para iOS con un solo botn que enviar la
informacin y agregamos el paquete Microsoft Azure Storage del repositorio nuget.org

Pgina 5 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Agregamos su librera:

3.- Una vez tengamos agregado el paquete, creamos una clase con la siguiente estructura que servir
como entidad que tenga la estructura de la tabla y que se encargar de contener la informacin y
enviarla a la zona de almacenamiento en Azure Storage. Se agrega una alerta adicional que nos sirva
para los mensajes al usuario:

Pgina 6 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

4.- En el ViewDidLoad() agregamos la codificacin, iniciando con el evento del botn de enviar:

5.- Agregamos la variable que nos permitir conectarnos al almacenamiento aislado con los 3
parmetros de acceso.

6.- Agregamos las variables que nos permitirn generar la instancia para crear una tabla y el nombre
que tendr la misma.

7.- Se realiza la accin asncrona de creacin de la tabla verificando su existencia.

8.- Creamos una variable que nos permitira mediante la entidad recibir la informacin de las
variables.

9.- Se genera una variable que nos permita insertar los datos de la variable que contiene la
informacin, y as realizar la accin asncrona para que se depositen los datos en el almacenamiento
aislado.

Pgina 7 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

En caso que desees ver el ejercicio completo puedes descargar el cdigo de la siguiente ruta:

https://github.com/enriqueaguilarvargas/XamarinDiplomadoIntermediate

A continuacin, generamos el Proyecto y lo ejecutamos en el simulador o dispositivo fsico y


verificamos usando el Microsoft Azure Storage Explorer para verificar la informacin depositada en
el almacenamiento en Azure.

Ejercicio 2: XAMARIN.IOS CON ACCESO A


AZURE STORAGE (BLOBS)
Los BLOB (Binary Large Objects, objetos binarios grandes) son elementos utilizados en las bases de
datos para almacenar datos de gran tamao, como imgenes, videos, documentos, etc.

Para este ejercicio debemos de realizar lo siguiente:

1.- En la zona de Almacenamiento del portal de Azure creamos un servicio de Blobs, colocamos el
nombre y verificamos que se haya creado la url del servicio.

Pgina 8 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

2.- Creamos una aplicacin para iOS que tenga la siguiente estructura:

Pgina 9 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

3.- Agregamos las siguientes libreras, con el framework AVFoundation que permitirn acceder a
los recursos de la cmara:

4.- Agregamos variables, la mayora centradas en el acceso a los recursos de la cmara en iOS:

Pgina 10 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

5.- Solicitamos autorizacin al usuario para el acceso a la cmara:

6.- Agregamos el mtodo que nos permita realizar la captura de la sesin del dispositivo en un
frame en la Interfaz Grfica:

7.- Realizamos la captura de la sesin para guardar una imagen capturada y depositada en la
carpeta del dispositivo.

Pgina 11 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

8.- Se realiza el guardado en Azure Storage, se toma la misma cadena de conexin verificada en
el ejercicio 1 y ahora se crea una variable de Blob, el nombre que tendr el contenedor, el nombre
del archivo y la ruta en donde se encuentra el archivo para subir la informacin.

9.- Se ejecuta la aplicacin, se toma la fotografa y se enva al Azure Storage, comprobndose con
el Windows Azure Storage Explorer.

Pgina 12 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Ejercicio 3: XAMARIN.ANDROID CON ACCESO


A AZURE STORAGE (TABLAS NOSQL Y BLOBS)

Ahora crearemos una aplicacin para Android que baje una fotografa del contenedor de blobs y datos
de una tabla NoSQL de Azure Storage.
Para el ejercicio necesitaremos obtener una cuenta para el acceso a Google Maps. Para mayor
informacin puedes ingresar a developer.google.com y obtener un Google Maps Android API.
1.- Creamos una aplicacin para Android, a la cual le agregaremos en el AndroidManifest.xml el acceso
a la API de Google para el servicio de Mapas.

2.- Ahora creamos la siguiente estructura de la interfaz grfica:

Pgina 13 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

3.- Agregamos el Google Play Services Maps de la zona de componentes de Xamarin.

Pgina 14 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

4.- Agregamos las libreras que usaremos en el proyecto:

5.- Declaramos variables necesarias para el proyecto:

6.- Iniciamos la codificacin en nuestro mtodo de inicio vinculando nuestros botones:

7.- Creamos la clase entidad para recibir la informacin de Azure Storage:

8.- Ubicamos la ruta para la recepcin del archivo que se descargar de la zona de
almacenamiento:

Pgina 15 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

9.- Realizamos la variable de conexin a la cuenta de almacenamiento, el cliente blob y el


blobcontainer, de la misma forma como se utiliz en Xamarin.iOS

10.- A continuacin realizamos la accin para descargar del contenedor la imagen, misma que
se guardar en la ruta y se cargar al ImageView de la interfaz grfica en Android.

11.- Ahora agregamos el cdigo del acceso a la tabla NoSQL en Azure Storage para recibir la
informacin va el TableOperation con referencia a la clase entidad.

12.- Ahora va TableResult se recibe la informacin de la tabla, y se coloca en dos variables que
permitirn ubicar mediante la latitud y longitud la informacin:

13.- Con la especificacin de las coordenadas se asigna la ubicacin en el Mapa:

Pgina 16 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

14.- La imagen guardada en Azure Storage y datos de la tabla NoSQL se descargan para ser
visualizados en Android.

Resumen
En este laboratorio exploraste como es el proceso para acceder a Azure Storage desde iOS y Android,
utilizando el contenedor de blobs y las tablas NoSQL.

Si tienes dificultades en alguna etapa, puedes descargar la solucin completa Android de la carpeta
de Microsoft OneDrive:

https://1drv.ms/f/s!ArmxB2Ayum6anoZjVdzQNV2NUD6oQA

No olvides revisar la ltima parte del documento referente a consideraciones especiales al ejecutar
la aplicacin desde Visual Studio.

Solo agrega tu clave de acceso a la Api de Google en el AndroidManifest y los parmetros de tu


cuenta de Azure Storage.

Cuando hayas finalizado este laboratorio publica el siguiente mensaje en Twitter y Facebook:

He finalizado el #Mod1Lab01 del #XamarinDiplomado Nivel Intermedio y ahora conozco


como interacta Xamarin.iOS y Xamarin.Android con Azure Storage

Pgina 17 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Ejercicio 1 (alternativo): REALIZANDO UNA


APLICACIN PARA XAMARIN.ANDROID QUE
SUBA INFORMACIN AL AZURE STORAGE
(TABLAS NOSQL) Y BLOBS.
Para este ejercicio debemos de realizar lo siguiente:

1.- Crearemos un nuevo proyecto para Android con un solo botn que enviar la informacin y
agregamos el paquete Microsoft Azure Storage del repositorio nuget.org

Agregamos su librera:

3.- Una vez tengamos agregado el paquete, creamos una clase con la siguiente estructura que servir
como entidad que tenga la estructura de la tabla y que se encargar de contener la informacin y
enviarla a la zona de almacenamiento en Azure Storage.

Pgina 18 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

4.- En el MainActivity.cs en OnCreate() agregamos la codificacin, iniciando con el evento del botn
de enviar:

5.- Agregamos una accin asncrona que descargar una imagen mediante el mtodo
DescargaImagen, la cual se colocar directamente en un contenedor de Azure:

6.- Ahora se realiza un guardado de informacin en la tabla NoSQL creada.

Pgina 19 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

7.- Se realiza la accin asncrona de descarga de una imagen pblica:

8.- Creamos la clase entidad similar a la creada en el ejercicio de iOS:

Pgina 20 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Ahora procedemos a ejecutar el Ejercicio 2 para descargar la imagen y las coordenadas subidas por
esta aplicacin.
Nota: Pueden existir empalmes de nombres de la clave de particin o de referencia al subir la informacin a la
tabla NoSQL, por lo que, en caso de marcar excepcin, se deber de cambiar el nombre de las mismas
preferentemente con su nombre para evitar el error de duplicidad en la tabla NoSQL en Azure y en la imagen en
el contenedor de blobs al tener varios el mismo contenedor.

Puedes bajar el cdigo del ejercicio en la siguiente ruta:


https://1drv.ms/f/s!ArmxB2Ayum6anoZjVdzQNV2NUD6oQA

Consideraciones especiales
Es posible que al utilizar Visual Studio se obtenga el siguiente mensaje al intentar desplegar las
aplicaciones Android de este laboratorio

Para resolver este problema, es necesario seleccionar el proyecto Xamarin.Android, dar clic derecho
y seleccionar Debug -> Start new Instance

Pgina 21 de 22 Soporte: enriqueaguilar@outlook.com


Xamarin Diplomado
Acceso a Azure Storage (Blobs y Tablas NoSQL) con Xamarin.iOS y
Xamarin.Android.

Es posible que la aplicacin no inicie en modo debugger, para iniciar la aplicacin debers iniciarla de
manera manual en la lista de aplicaciones del dispositivo

Pgina 22 de 22 Soporte: enriqueaguilar@outlook.com