Azure Mobile Services
Mobile Services <3 Web API
Filip Ekberg
Page / Copyright ©2014 by Readify Pty Ltd2 @fekberg
Page
Filip EkbergC# MVP
http://fekberg.com
@fekberg
C# Smorgasbord
/ Copyright ©2014 by Readify Pty Ltd3
Page
Agenda› Quick re-cap: What is Azure Mobile Services?
› The .NET Backend for Mobile Services
› Offline Data
› Alternative Data Stores
/ Copyright ©2014 by Readify Pty Ltd4
@fekberg
Page
What is Azure Mobile Services?
/ Copyright ©2014 by Readify Pty Ltd5
@fekberg
Page
Scalable backend in the cloud› Runs in Azure
› Backed by Node.JS
› Dynamic data schema
/ Copyright ©2014 by Readify Pty Ltd6
@fekberg
Page
Cross-platform capabilities› iOS
› Android
› .NET
› REST API
/ Copyright ©2014 by Readify Pty Ltd7
@fekberg
Page
Push Notifications› Windows Store
› Windows Phone
› Android
› iOS
/ Copyright ©2014 by Readify Pty Ltd8
@fekberg
Page
Authentication & Authorization› Microsoft Account
› AD
› Twitter
› Facebook
› Google
/ Copyright ©2014 by Readify Pty Ltd9
@fekberg
Page
NodeJS/ Copyright ©2014 by Readify Pty Ltd10
@fekberg
Page
The .NET Backend for Mobile Services
/ Copyright ©2014 by Readify Pty Ltd11
@fekberg
Page
Powerful backend with WebAPI
/ Copyright ©2014 by Readify Pty Ltd12
@fekberg
Page
Host Anywhere
/ Copyright ©2014 by Readify Pty Ltd13
@fekberg
Page
Cross-Platform capabilities
/ Copyright ©2014 by Readify Pty Ltd14
@fekberg
Page
Debugging in the cloud
/ Copyright ©2014 by Readify Pty Ltd15
@fekberg
Page
DemoUsing WebAPI and Mobile Services
/ Copyright ©2014 by Readify Pty Ltd16
@fekberg
Page
Going Offline
/ Copyright ©2014 by Readify Pty Ltd17
@fekberg
Page
Different connectivity patterns› Always connected with High-Speed Internet
› Always connected with Mobile Internet Connection
› Occasionally Connected
› Barely Connected
/ Copyright ©2014 by Readify Pty Ltd18
@fekberg
Page
We need to cater for all connectivity patterns
/ Copyright ©2014 by Readify Pty Ltd19
@fekberg
Page
Delivering data costs money!
/ Copyright ©2014 by Readify Pty Ltd20
@fekberg
Page
Managing Offline Data
/ Copyright ©2014 by Readify Pty Ltd21
@fekberg
Page
Out of the box support for SQLite
/ Copyright ©2014 by Readify Pty Ltd22
@fekberg
Page
Synchronizing Data
/ Copyright ©2014 by Readify Pty Ltd23
@fekberg
Page
Handling concurrency
/ Copyright ©2014 by Readify Pty Ltd24
@fekberg
Page
Who wins in a collision?
/ Copyright ©2014 by Readify Pty Ltd25
@fekberg
Page
Concurrency Strategies
/ Copyright ©2014 by Readify Pty Ltd26
@fekberg
Page
Optimistic Concurrency› No locks!
› Notified about conflicts
› Ask the end-user which version to take?
/ Copyright ©2014 by Readify Pty Ltd27
@fekberg
Page
Advanced Conflict Resolution› Can we merge data?
/ Copyright ©2014 by Readify Pty Ltd28
@fekberg
Page
DemoTaking Data Offline
/ Copyright ©2014 by Readify Pty Ltd29
@fekberg
Page
Alternative Data Stores
/ Copyright ©2014 by Readify Pty Ltd30
@fekberg
Page
Use your on-premises solution
/ Copyright ©2014 by Readify Pty Ltd31
@fekberg
Page
Supports a wide range of stores
/ Copyright ©2014 by Readify Pty Ltd32
@fekberg
Page
DemoGoing offline with SQL Server &
MongoDB
/ Copyright ©2014 by Readify Pty Ltd33
@fekberg
Page
Summary› Mobile Services just got a whole lot more powerful
› Create a powerful backend using WebAPI
› We can easily debug our WebAPI once in the cloud
› Offline data let’s us cater for all usage patterns
› Support for a wide range of different data stores
› Synchronization problems(collisions) can be handled
in multiple ways
/ Copyright ©2014 by Readify Pty Ltd34
@fekberg
Page
Questions?
/ Copyright ©2014 by Readify Pty Ltd35
@fekberg
Page
Thank you!
http://fekberg.com
@fekberg
C# Smorgasbord
/ Copyright ©2014 by Readify Pty Ltd36