2. 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
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 di un servizio Azure Mobile Service con backend .NET
direttamente inVisual Studio 2013
8. 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. 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.
11. 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.
12. Strategie di risoluzione conflitti multipli
• ACID (Atomicity, Consistency, Isolation, Durability)
• User Interface / User Experience
13. 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
14. Demo
• Creazione di un’App che "funziona" sia online che offline con
sincronizzazione e risoluzione dei conflitti.