SlideShare uma empresa Scribd logo
1 de 16
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

Mais conteúdo relacionado

Mais procurados

SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSGianluca Hotz
 
#vBrownBag.IT - Session 2
#vBrownBag.IT - Session 2#vBrownBag.IT - Session 2
#vBrownBag.IT - Session 2Andrea Mauro
 
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti festival ICT 2016
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseGianluca Hotz
 
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoIl Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoCA Technologies Italia
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaGianluca Hotz
 
SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC VMUG IT
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureMarco Obinu
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseGianluca Hotz
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?VMUG IT
 
Azure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBAzure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBDavide Benvegnù
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
Mobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinMobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinNicolò Carandini
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1MongoDB
 
Software Defined Storage
Software Defined Storage Software Defined Storage
Software Defined Storage VMUG IT
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database LedgerGianluca Hotz
 
Achieving The Efficient Enterprise Developing Virtualization Strategies
Achieving The Efficient Enterprise  Developing Virtualization StrategiesAchieving The Efficient Enterprise  Developing Virtualization Strategies
Achieving The Efficient Enterprise Developing Virtualization StrategiesNuova Periodici
 

Mais procurados (20)

SQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWSSQL Server Failover Cluster Instances con Amazon FSx in AWS
SQL Server Failover Cluster Instances con Amazon FSx in AWS
 
#vBrownBag.IT - Session 2
#vBrownBag.IT - Session 2#vBrownBag.IT - Session 2
#vBrownBag.IT - Session 2
 
Azure sql database
Azure sql databaseAzure sql database
Azure sql database
 
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
festival ICT 2013: Windows Server 2012 R2: Lo Storage Enterprise per Tutti
 
SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybase
 
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | MilanoIl Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
Il Cloud chiavi in mano | Matteo Occhipinti (CA Technologies) | Milano
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC SDS,la pietra d’angolo dell SDDC
SDS,la pietra d’angolo dell SDDC
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
 
SQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with PolybaseSQL Server Data Virtualization with Polybase
SQL Server Data Virtualization with Polybase
 
ASP.NET Core essentials
ASP.NET Core essentialsASP.NET Core essentials
ASP.NET Core essentials
 
Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?Veeam - Always-on Enterprise: chimera o realtà?
Veeam - Always-on Enterprise: chimera o realtà?
 
Azure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDBAzure No-Sql approach: DocumentDB
Azure No-Sql approach: DocumentDB
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Mobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinMobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con Xamarin
 
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1
MongoDB Atlas: il modo migliore per eseguire MongoDB in ambiente cloud 1
 
Software Defined Storage
Software Defined Storage Software Defined Storage
Software Defined Storage
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
Achieving The Efficient Enterprise Developing Virtualization Strategies
Achieving The Efficient Enterprise  Developing Virtualization StrategiesAchieving The Efficient Enterprise  Developing Virtualization Strategies
Achieving The Efficient Enterprise Developing Virtualization Strategies
 

Semelhante a Azure Mobile Services con il .NET Framework

Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...Marco Parenzan
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioningNicolò Carandini
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioningNicolò Carandini
 
Una web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft AzureUna web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft AzureDavide Benvegnù
 
Realizzare una WebFarm bilanciata e scalabile con Microsoft Azure
Realizzare una WebFarm bilanciata e scalabile con Microsoft AzureRealizzare una WebFarm bilanciata e scalabile con Microsoft Azure
Realizzare una WebFarm bilanciata e scalabile con Microsoft Azurefestival ICT 2016
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaYashi Italia
 
IaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudIaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudGianluca Hotz
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
 
Introduzione a Microsoft Azure
Introduzione a Microsoft AzureIntroduzione a Microsoft Azure
Introduzione a Microsoft AzureRoberto Albano
 
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Italia
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016Gaetano Paternò
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for DevelopersLuca Milan
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il MobilePietro Libro
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Emanuele Zanchettin
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
 
Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...
Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...
Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...Pipeline Srl
 

Semelhante a Azure Mobile Services con il .NET Framework (20)

Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioning
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioning
 
Una web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft AzureUna web farm bilanciata e scalabile con Microsoft Azure
Una web farm bilanciata e scalabile con Microsoft Azure
 
Realizzare una WebFarm bilanciata e scalabile con Microsoft Azure
Realizzare una WebFarm bilanciata e scalabile con Microsoft AzureRealizzare una WebFarm bilanciata e scalabile con Microsoft Azure
Realizzare una WebFarm bilanciata e scalabile con Microsoft Azure
 
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi ItaliaDifferenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
Differenze tra Windows Server 2012 R2 su e Server 2016 Yashi Italia
 
IaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloudIaaS and PaaS relational databases in the cloud
IaaS and PaaS relational databases in the cloud
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Introduzione a Microsoft Azure
Introduzione a Microsoft AzureIntroduzione a Microsoft Azure
Introduzione a Microsoft Azure
 
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
Yashi Enterprise e Microsoft Perchè aggiornare a windows server 2012 r2
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016DevOpsHerous 2016 - 29/10/2016
DevOpsHerous 2016 - 29/10/2016
 
Azure WebSites for Developers
Azure WebSites for DevelopersAzure WebSites for Developers
Azure WebSites for Developers
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...
Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...
Software Virtualization & Streaming: eliminare intere fasi dell’ IMAC (Instal...
 

Mais de Nicolò Carandini

Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteNicolò Carandini
 
The absolute need of Secure Http
The absolute need of Secure HttpThe absolute need of Secure Http
The absolute need of Secure HttpNicolò Carandini
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
Code review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareCode review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareNicolò Carandini
 
The Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyThe Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyNicolò Carandini
 
Universal Apps localization and globalization
Universal Apps localization and globalizationUniversal Apps localization and globalization
Universal Apps localization and globalizationNicolò Carandini
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaNicolò Carandini
 
Sviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioSviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioNicolò Carandini
 
Web in real time con signalR
Web in real time con signalRWeb in real time con signalR
Web in real time con signalRNicolò Carandini
 

Mais de Nicolò Carandini (20)

Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
The absolute need of Secure Http
The absolute need of Secure HttpThe absolute need of Secure Http
The absolute need of Secure Http
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Code review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareCode review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live Share
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
The Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyThe Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure Galaxy
 
Game matching with SignalR
Game matching with SignalRGame matching with SignalR
Game matching with SignalR
 
Swagger loves WebAPI
Swagger loves WebAPISwagger loves WebAPI
Swagger loves WebAPI
 
Xamarin Workbooks
Xamarin WorkbooksXamarin Workbooks
Xamarin Workbooks
 
Swagger per tutti
Swagger per tuttiSwagger per tutti
Swagger per tutti
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
Swagger pertutti
Swagger pertuttiSwagger pertutti
Swagger pertutti
 
Windows 10 design
Windows 10 designWindows 10 design
Windows 10 design
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 
Universal Apps localization and globalization
Universal Apps localization and globalizationUniversal Apps localization and globalization
Universal Apps localization and globalization
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e Katana
 
Sviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioSviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual Studio
 
Web in real time con signalR
Web in real time con signalRWeb in real time con signalR
Web in real time con signalR
 

Azure Mobile Services con il .NET Framework

  • 1. Azure Mobile Services con il .NET Framework Nicolò Carandini – MVP Visual C#
  • 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
  • 4. REST API for Data 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 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
  • 9. Risoluzione dei conflitti • RecordVersioningVs Record Locking • 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.
  • 15. Q & A
  • 16. 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