Aplicaciones conectadas con Azure

Post on 06-Apr-2017

17 views 0 download

Transcript of Aplicaciones conectadas con Azure

Aplicaciones conectadas con AzureAlejandroCTO @ Los Xamarinos@alejandroruizva

• Errores• Difíciles de utilizar• Características no anunciadas• Experiencia lenta• Datos no disponibles al inicio

Malas experiencias de Apps

¿Siempre conectados?

100+ centros de datosTop 3 en redes mundialesRegiones: 2x AWS, 6x GoogleG Series – Las MV más grandes del mundo

Operacionales

Anunciadas

* Operadas por 21Vianet

24Regiones de Azurehasta hoyMas que AWS y Google juntos

Infrastructurapara crecer

Centros de datos agregados en Canadá, China e India

• Extremadamente poderosas• Flexibles• Easy Tables (Node.js)• App Service (ASP.NET)

• SDK para cada plataforma• iOS, Android y Windows

• Open source C#• Todos en GitHub

¿Por qué Azure Mobile Apps?

REST

API

Sincronización offline Notificaciones

Conexiones a datos

Autenticación de usuario

Facebook

Twitter Microsoft Google

Azure Active

Directory

Azure Mobile Apps

WindowsAndroid

Chrome

iOS OSX

In-AppKindle

Xamarin, iOS, Android y Windows SDKs

Código de backend

SQL MongoTables O365 API Apps

Offline Sync

¡Vamos a crear Apps!

Crea un servicio rápido

MobileService = new MobileServiceClient("https://myapp.azurewebsites.net");

Crear tablasIMobileServiceSyncTable<TodoItem> syncTable;

public async Task Init(){ const string path = "syncstore.db"; var db = new MobileServiceSQLiteStore(path); db.DefineTable<TodoItem>();

}

await MobileService.SyncContext.InitializeAsync(db); syncTable = MobileService.GetSyncTable<TodoItem>();

Obtener y enviar datosprivate async Task SyncAsync(){    await MobileService.SyncContext.PushAsync();    var query = syncTable.CreateQuery();     await syncTable.PullAsync("todoItems", query);}

private async Task InsertTodoItem(TodoItem todoItem){    await syncTable.InsertAsync(todoItem);    await MobileService.SyncContext.PushAsync();}

Consultar una table local

public async Task<IEnumerable<TodoItem>> GetOpenItemsAsync(){    return await todoTable                 .Where(item => item.Complete == false)                 .ToEnumerableAsync();} 

¡Y mucho más!

Notificaciones con Notification Hub

Backend

Platform Notification Service

Notification Hub

1. Obtener un PNS

4. Enviar a dispositivos

2. Almacenar el PNS 3b. Solicitud de notificaciónUsa conexiones de dispositivos

3a. Solicitud de notificación

Usar tags lógicos

5. Manejar dispositivos

• Archivos sincronizados con Azure Storage• Online/Offline

Sincronización de archivos

Código compartido • Acceso a APIs nativas 100% • Gran rendimiento

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Mobile

C# Server

Linux/MonoCoreCLRAzure

Shared C# Client/Server

Mobile + Server =

Comienza hoyxamarin.com/downloadxamarin.com/azurexamarin.com/dev-ops