Beruflich Dokumente
Kultur Dokumente
Laboratorio
Acceso a Azure Storage (Blobs y Tabla
NoSQL) con Xamarin.iOS y
Xamarin.Android.
Versin: 1.0.0
Febrero de 2017
Enrique Aguilar
CONTENIDO
INTRODUCCIN
NOTA: PARA USUARIOS QUE NO TIENEN IOS PUEDEN USAR COMO EJERCICIO 1 Y 2 EL
EJERCICIO ALTERNATIVO.
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.
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:
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):
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();
}
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;
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
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:
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.
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.
En caso que desees ver el ejercicio completo puedes descargar el cdigo de la siguiente ruta:
https://github.com/enriqueaguilarvargas/XamarinDiplomadoIntermediate
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.
2.- Creamos una aplicacin para iOS que tenga la siguiente estructura:
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:
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.
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.
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.
8.- Ubicamos la ruta para la recepcin del archivo que se descargar de la zona de
almacenamiento:
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:
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.
Cuando hayas finalizado este laboratorio publica el siguiente mensaje en Twitter y Facebook:
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.
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:
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.
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
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