XAM04 - Mobile Services
multipiattaforma con Xamarin
Nicolò Carandini
n.carandini@mahiz.it - @tpcware
http://blog.tpcware.com/
#CDays15 – Milano 24, 25 e 26 Marzo 2015
Grazie a
Platinum
Sponsor
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Agenda
• Microsoft Azure Mobile Services
• Panoramica dei servizi offerti
• Creazione e sviluppo del backend
• Xamarin e i Mobile Services, dalla teoria alla pratica
• Strategie di condivisione del codice
• Creazione della solution
• Configurazione deli servizi lato cloud
• Utilizzazione dei servizi lato client (iOS, Android, Windows)
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Microsoft Azure Mobile Services
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
REST API for Data Management
Backend Logic
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
NodeJS backend Vs .NET backend
• NodeJS
• Nasce come una soluzione semplice da impostare ed usare
• Non consente l’utilizzo di tutte le soluzioni di storage
• .NET
• E’ un progetto WebAPI da gestire in locale e pubblicare con Visual Studio.
• Si può creare dal portale di Azure (scegliendo .NET come backend)
• Si può creare direttamente da Visual Studio 2013 (update 2 e succ.)
• Essendo un progetto VS si hanno tutti i vantaggi ad esso collegati: source
control, uso dei NuGet package (Azure Storage, Redis cache, Newtonsoft Json,
ecc.).
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Demo
• Creazione di un servizio Azure Mobile Service con backend .NET
direttamente in Visual Studio
• Creazione di una Xamarin.Forms app che usa i Mobile Services
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Data Storage
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Data Sync per applicazioni mobile
• Non è una replica completa del database
• Cross platform (Windows Phone / iOS / Android)
• Usa SQLite client side (sostituibile con altro db locale)
• Funziona con tutti i database server side
• Sincronizzazione esplicita a livello di tabella (push & pull)
• Consente la risoluzione dei conflitti tramite optimistic concurrency
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Risoluzione dei conflitti
• Record Versioning Vs Record Locking
• Optimistic concurrency
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Optimistic concurrency
• Ogni inserimento incrementa il valore della versione
• Se una push trova un valore di versioning sul server maggiore di
quello del record locale da salvare, allora si ha un conflitto.
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Risoluzione dei conflitti di sincronizzazione
• Se l’utente (o la logica applicativa) rinuncia alla modifica in favore dei
dati presenti sul server, i dati presenti sul server vengono utilizzati per
aggiornare la copia locale (refresh)
• Se invece si vuole forzare l’aggiornamento dei dati presenti sul server
con la copia locale, allora occorre aggiornare il valore locale di
versione al valore presente sul server, e poi rieseguire la push.
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Strategie di risoluzione conflitti multipli
• ACID (Atomicity, Consistency, Isolation, Durability)
• User Interface / User Experience
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Requisiti per lavorare offline
• Installare Azure Mobile Services SQLiteStore
• Installare Azure Mobile Services
• Installare SQLite per Windows 8.1 (VSIX)
• Installare SQLite per Windows Phone 8.1 (VSIX)
• Aggiungere i riferimenti di SQLite ai rispettivi progetti
• Modificare la configurazione della Solution
• Aggiungere «Version» alle classi DTO
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
demo
Creazione di un’App che "funziona" sia online che offline con sincronizzazione e
risoluzione dei conflitti.
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Xamarin & Mobile Services
1. Installare:
• Visual Studio 2013 /2015
• Azure SDK
• Xamarin
2. Creare il servizio su Azure
3. Scaricare l’app per Xamarin
4. Aggiornare i NuGet packages
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Condivisione del codice
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Recap
• Azure Mobile Service funziona bene con Xamarin
• Centralizzazione della logica di programma e di utilizzazione dei servizi
• Unificazione delle funzionalità di:
• Autenticazione
• Push notification nelle tre diverse piattaforme iOS/Android/Windows
#CDays14 – Milano 25, 26 e 27 Febbraio 2014
Q&A
Tutto il materiale di questa sessione su
http://www.communitydays.it/
Lascia subito il feedback su questa sessione,
potrai essere estratto per i nostri premi!
Seguici su
Twitter @CommunityDaysIT
Facebook http://facebook.com/cdaysit
#CDays15

Mobile services multi-piattaforma con Xamarin

  • 1.
    XAM04 - MobileServices multipiattaforma con Xamarin Nicolò Carandini n.carandini@mahiz.it - @tpcware http://blog.tpcware.com/
  • 2.
    #CDays15 – Milano24, 25 e 26 Marzo 2015 Grazie a Platinum Sponsor
  • 3.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Agenda • Microsoft Azure Mobile Services • Panoramica dei servizi offerti • Creazione e sviluppo del backend • Xamarin e i Mobile Services, dalla teoria alla pratica • Strategie di condivisione del codice • Creazione della solution • Configurazione deli servizi lato cloud • Utilizzazione dei servizi lato client (iOS, Android, Windows)
  • 4.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Microsoft Azure Mobile Services
  • 5.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 REST API for Data Management Backend Logic
  • 6.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 NodeJS backend Vs .NET backend • NodeJS • Nasce come una soluzione semplice da impostare ed usare • Non consente l’utilizzo di tutte le soluzioni di storage • .NET • E’ un progetto WebAPI da gestire in locale e pubblicare con Visual Studio. • Si può creare dal portale di Azure (scegliendo .NET come backend) • Si può creare direttamente da Visual Studio 2013 (update 2 e succ.) • Essendo un progetto VS si hanno tutti i vantaggi ad esso collegati: source control, uso dei NuGet package (Azure Storage, Redis cache, Newtonsoft Json, ecc.).
  • 7.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Demo • Creazione di un servizio Azure Mobile Service con backend .NET direttamente in Visual Studio • Creazione di una Xamarin.Forms app che usa i Mobile Services
  • 8.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Data Storage
  • 9.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Data Sync per applicazioni mobile • Non è una replica completa del database • Cross platform (Windows Phone / iOS / Android) • Usa SQLite client side (sostituibile con altro db locale) • Funziona con tutti i database server side • Sincronizzazione esplicita a livello di tabella (push & pull) • Consente la risoluzione dei conflitti tramite optimistic concurrency
  • 10.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Risoluzione dei conflitti • Record Versioning Vs Record Locking • Optimistic concurrency
  • 11.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Optimistic concurrency • Ogni inserimento incrementa il valore della versione • Se una push trova un valore di versioning sul server maggiore di quello del record locale da salvare, allora si ha un conflitto.
  • 12.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Risoluzione dei conflitti di sincronizzazione • Se l’utente (o la logica applicativa) rinuncia alla modifica in favore dei dati presenti sul server, i dati presenti sul server vengono utilizzati per aggiornare la copia locale (refresh) • Se invece si vuole forzare l’aggiornamento dei dati presenti sul server con la copia locale, allora occorre aggiornare il valore locale di versione al valore presente sul server, e poi rieseguire la push.
  • 13.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Strategie di risoluzione conflitti multipli • ACID (Atomicity, Consistency, Isolation, Durability) • User Interface / User Experience
  • 14.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Requisiti per lavorare offline • Installare Azure Mobile Services SQLiteStore • Installare Azure Mobile Services • Installare SQLite per Windows 8.1 (VSIX) • Installare SQLite per Windows Phone 8.1 (VSIX) • Aggiungere i riferimenti di SQLite ai rispettivi progetti • Modificare la configurazione della Solution • Aggiungere «Version» alle classi DTO
  • 15.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 demo Creazione di un’App che "funziona" sia online che offline con sincronizzazione e risoluzione dei conflitti.
  • 16.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Xamarin & Mobile Services 1. Installare: • Visual Studio 2013 /2015 • Azure SDK • Xamarin 2. Creare il servizio su Azure 3. Scaricare l’app per Xamarin 4. Aggiornare i NuGet packages
  • 17.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Condivisione del codice
  • 18.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Recap • Azure Mobile Service funziona bene con Xamarin • Centralizzazione della logica di programma e di utilizzazione dei servizi • Unificazione delle funzionalità di: • Autenticazione • Push notification nelle tre diverse piattaforme iOS/Android/Windows
  • 19.
    #CDays14 – Milano25, 26 e 27 Febbraio 2014 Q&A Tutto il materiale di questa sessione su http://www.communitydays.it/ Lascia subito il feedback su questa sessione, potrai essere estratto per i nostri premi! Seguici su Twitter @CommunityDaysIT Facebook http://facebook.com/cdaysit #CDays15

Editor's Notes

  • #3 Slide da mostrare prima di iniziare la sessione – non rimuovere!
  • #20 Ultima slide, obbligatoria