Azure Mobile Services
con il .NET Framework
Nicolò Carandini – MVP Visual C#
Agenda
• Overview of Azure Mobile Services
• REST API to expose CRUD and backend logic implementation
• NodeJS backend
• .NET backend
• Data sync for app that must work online and offline
• How to handle real use cases when using .NET backend
Windows Mobile Services
REST API for Data Management
Backend Logic
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 progettoWebAPI da gestire in locale e pubblicare conVisual Studio.
• Si può creare dal portale di Azure (scegliendo .NET come backend)
• Si può creare direttamente daVisual Studio 2013 (update 2 e succ.)
• Essendo un progettoVS si hanno tutti i vantaggi ad esso collegati: source
control, uso dei NuGet package (Azure Storage, Redis cache, Newtonsoft
Json, ecc.).
Demo
• Creazione di un servizio Azure Mobile Service con backend .NET
direttamente inVisual Studio 2013
Data Storage
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
Risoluzione dei conflitti
• RecordVersioningVs Record Locking
• Optimistic concurrency
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.
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.
Strategie di risoluzione conflitti multipli
• ACID (Atomicity, Consistency, Isolation, Durability)
• User Interface / User Experience
Requisiti per lavorare offline
• Installare Azure Mobile Services SQLiteStore
• Installare Azure Mobile Services
• Installare SQLite perWindows 8.1 (VSIX)
• Installare SQLite perWindows Phone 8.1 (VSIX)
• Aggiungere i riferimenti di SQLite ai rispettivi progetti
• Modificare la configurazione della Solution
• Aggiungere «Version» alle classi DTO
Demo
• Creazione di un’App che "funziona" sia online che offline con
sincronizzazione e risoluzione dei conflitti.
Q & A
Contatti OverNet Education
OverNet Education
info@overneteducation.it
www.overneteducation.it
Tel. 02 365738
@overnete
www.facebook.com/OverNetEducation
www.linkedin.com/company/overnet-solutions

Azure Mobile Services con il .NET Framework

  • 1.
    Azure Mobile Services conil .NET Framework Nicolò Carandini – MVP Visual C#
  • 2.
    Agenda • Overview ofAzure Mobile Services • REST API to expose CRUD and backend logic implementation • NodeJS backend • .NET backend • Data sync for app that must work online and offline • How to handle real use cases when using .NET backend
  • 3.
  • 4.
    REST API forData Management Backend Logic
  • 5.
    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 progettoWebAPI da gestire in locale e pubblicare conVisual Studio. • Si può creare dal portale di Azure (scegliendo .NET come backend) • Si può creare direttamente daVisual Studio 2013 (update 2 e succ.) • Essendo un progettoVS si hanno tutti i vantaggi ad esso collegati: source control, uso dei NuGet package (Azure Storage, Redis cache, Newtonsoft Json, ecc.).
  • 6.
    Demo • Creazione diun servizio Azure Mobile Service con backend .NET direttamente inVisual Studio 2013
  • 7.
  • 8.
    Data Sync perapplicazioni 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
  • 9.
    Risoluzione dei conflitti •RecordVersioningVs Record Locking • Optimistic concurrency
  • 10.
    Optimistic concurrency • Ogniinserimento 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.
  • 11.
    Risoluzione dei conflittidi 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.
  • 12.
    Strategie di risoluzioneconflitti multipli • ACID (Atomicity, Consistency, Isolation, Durability) • User Interface / User Experience
  • 13.
    Requisiti per lavorareoffline • Installare Azure Mobile Services SQLiteStore • Installare Azure Mobile Services • Installare SQLite perWindows 8.1 (VSIX) • Installare SQLite perWindows Phone 8.1 (VSIX) • Aggiungere i riferimenti di SQLite ai rispettivi progetti • Modificare la configurazione della Solution • Aggiungere «Version» alle classi DTO
  • 14.
    Demo • Creazione diun’App che "funziona" sia online che offline con sincronizzazione e risoluzione dei conflitti.
  • 15.
  • 16.
    Contatti OverNet Education OverNetEducation info@overneteducation.it www.overneteducation.it Tel. 02 365738 @overnete www.facebook.com/OverNetEducation www.linkedin.com/company/overnet-solutions