SlideShare a Scribd company logo
1 of 55
“This weighty book gives clear guidance that will help
you build quality apps, starting with architectural
considerations, and then jumping into practical code
strategies.”
- Bryan Costanich, Vice President, Xamarin
“Dan Hermes’ extraordinary book is the most intelligent
work on cross-platform mobile development I’ve seen.”
– Jesse Liberty, Director of New Technology
Development, Falafel Software, Xamarin Certified
Developer / Xamarin MVP
Everybody Apps!
189M
downloads
a day
200mins on
phone
127mins in
apps
The average app user has 36 apps installed on his
or her phone.
Only 1/4 are used daily:
1/4 of apps are never used!
Why not?
Bad App Experiences
• Slow or laggy
• Crashes
• Unintuitive & bad UX
• Features not as advertised
• Data not available when you need it
Your app craves connection
more than you do.
http://opensignal.com/coverage-maps
No app is an island
Databases
Services
Authentication
Notifications
Files
 A platform-as-a-service (PaaS) offering of Microsoft Azure
 A ready-made backend so the developer can focus on the app
Storage
Authentication
Push
Courtesy of Microsoft
Courtesy of Microsoft
• Azure Portal for configuration of entities
• Server SDK in C# or Node.JS
• Client SDKs for Xamarin and third-party products
Let’s add a backend
Create a new Azure Mobile App
Quick Start in Settings and Connect a DB
• Easy Tables
• Entity Framework
For the demo just click Create ToDoItem Table:
Create your Tables
• Create a new Azure Mobile App backend
• Build, upload, and test the server project
• Create a client mobile application
or Just Use Azure’s Built-in Table API
Create a Table API using C#
Create a client mobile application
Create a Mobile Service
MobileService = new MobileServiceClient(
"https://myapp.azurewebsites.net");
Now let’s get to the data
Create Tables
IMobileServiceSyncTable<Store> table;
public async Task Init()
{
const string path = "syncstore.db";
var db = new MobileServiceSQLiteStore(path);
db.DefineTable<Store>();
}
var handler = new MobileServiceSyncHandler();
await MobileService.SyncContext.InitializeAsync(db, h);
table = MobileService.GetSyncTable<Store>();
Get and Modify Data
public async Task<IEnumerable<Store>> GetStoresAsync()
{
await table.PullAsync("allStores", table.CreateQuery());
return await table.ToEnumerableAsync();
}
public async Task<Store> AddStoreAsync (Store store)
{
await table.InsertAsync (store);
await table.PullAsync("allStores", table.CreateQuery());
await MobileService.SyncContext.PushAsync();
return store;
}
Table-based SQL database
Instances configurable using the Azure portal
Data management in:
Data Store
App
Data Access
Calls
Data Access
Calls
Data Access
Calls
Courtesy of Microsoft
Data Store
App
Repository
Create
Read
Update
Delete
Data Access
Calls
Data Access
Calls
Data Access
Calls
Courtesy of Microsoft
CRUD (Create, Read, Update, Delete)
 Create - Insert data
 Read - Query data
 Update - Change data
 Delete - Remove data
await todoTable.InsertAsync(item);
List<TodoItem> items = await todoTable.ToListAsync(); (or ToEnumerableAsync())
await todoTable.UpdateAsync(item);
await todoTable.DeleteAsync(item);
Cloud Data ServiceMobile
Device
Local data store
Cloud Data Service
Cloud data store
Courtesy of Microsoft
 PushAsync
 PullAsync
 PurgeAsync
Example: await mobileService.SyncContext.PushAsync();
Mobile
Device
SQLite
Local data store
Azure Mobile App
SQL Database
Cloud data store
PushAsync
PullAsync
PurgeAsync
MobileServicePushFailedException
Courtesy of Microsoft
but wait, there’s more…
GOOGLE
FACEBOOK
TWITTER
MOBILE SERVICE
DEVICE
MICROSOFT
Storage
Authentication
Push
Courtesy of Microsoft
Lunch!
Dan Hermes
Xamarin MVP, Microsoft MVP
Chief Executive Coder, Lexicon Systems
dan@lexiconsystemsinc.com www.mobilecsharpcafe.com @danhermes

More Related Content

What's hot

Build Apps Faster With DigitalOcean App Platform
Build Apps Faster With DigitalOcean App PlatformBuild Apps Faster With DigitalOcean App Platform
Build Apps Faster With DigitalOcean App PlatformDigitalOcean
 
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsServerlessConf
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure FunctionsHernan Guzman
 
Application Insights for Integration Developers
Application Insights for Integration DevelopersApplication Insights for Integration Developers
Application Insights for Integration DevelopersSriram Hariharan
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSCodeOps Technologies LLP
 
How to Create a Geo-tracking Server for Mobile Devices Using Heroku's Helios
How to Create a Geo-tracking Server for Mobile Devices Using Heroku's HeliosHow to Create a Geo-tracking Server for Mobile Devices Using Heroku's Helios
How to Create a Geo-tracking Server for Mobile Devices Using Heroku's HeliosSalesforce Developers
 
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...Amazon Web Services
 
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo   SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo Sencha
 
CICD in the World of Serverless
CICD in the World of ServerlessCICD in the World of Serverless
CICD in the World of ServerlessSrushith Repakula
 
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014Samisa Abeysinghe
 
Joe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentJoe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentServerlessConf
 
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Serdal Kepil
 
Patrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to ServicefullPatrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to ServicefullServerlessConf
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoZia Consulting
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless ArchitectureCodePolitan
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API AppsBizTalk360
 
Microsoft power automate implementation
Microsoft power automate implementationMicrosoft power automate implementation
Microsoft power automate implementationAYUSHISHARMA295
 
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power PlatformPraveen Nair
 
Simple Ways to Get Your Organization to Adopt the AsyncAPI Spec
Simple Ways to Get Your Organization to Adopt the AsyncAPI SpecSimple Ways to Get Your Organization to Adopt the AsyncAPI Spec
Simple Ways to Get Your Organization to Adopt the AsyncAPI SpecAxway
 

What's hot (20)

Build Apps Faster With DigitalOcean App Platform
Build Apps Faster With DigitalOcean App PlatformBuild Apps Faster With DigitalOcean App Platform
Build Apps Faster With DigitalOcean App Platform
 
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure Functions
 
Application Insights for Integration Developers
Application Insights for Integration DevelopersApplication Insights for Integration Developers
Application Insights for Integration Developers
 
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESSWRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
WRITE SCALABLE COMMUNICATION APPLICATION WITH POWER OF SERVERLESS
 
How to Create a Geo-tracking Server for Mobile Devices Using Heroku's Helios
How to Create a Geo-tracking Server for Mobile Devices Using Heroku's HeliosHow to Create a Geo-tracking Server for Mobile Devices Using Heroku's Helios
How to Create a Geo-tracking Server for Mobile Devices Using Heroku's Helios
 
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
Using Red Hat’s OpenShift PaaS to Develop Scalable Applications on AWS (DMG21...
 
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo   SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
SenchaCon 2016: An Ext JS Dashboard for IoT Data - Dan Gallo
 
CICD in the World of Serverless
CICD in the World of ServerlessCICD in the World of Serverless
CICD in the World of Serverless
 
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
 
Joe Emison - 10X Product Development
Joe Emison - 10X Product DevelopmentJoe Emison - 10X Product Development
Joe Emison - 10X Product Development
 
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
Introducing amplify and full stack demo app built with vue.js, graph ql, auth...
 
Patrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to ServicefullPatrick Debois - From Serverless to Servicefull
Patrick Debois - From Serverless to Servicefull
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API Apps
 
Microsoft power automate implementation
Microsoft power automate implementationMicrosoft power automate implementation
Microsoft power automate implementation
 
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power Platform
 
Simple Ways to Get Your Organization to Adopt the AsyncAPI Spec
Simple Ways to Get Your Organization to Adopt the AsyncAPI SpecSimple Ways to Get Your Organization to Adopt the AsyncAPI Spec
Simple Ways to Get Your Organization to Adopt the AsyncAPI Spec
 

Viewers also liked

Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with AzureKris Wagner
 
Xamarin + azure Mobile Apps
Xamarin + azure Mobile AppsXamarin + azure Mobile Apps
Xamarin + azure Mobile Apps史也 久米
 
Xamarin Dev Days - Connected & Disconnected Apps with Azure Mobile Apps
Xamarin Dev Days - Connected & Disconnected Apps with Azure Mobile AppsXamarin Dev Days - Connected & Disconnected Apps with Azure Mobile Apps
Xamarin Dev Days - Connected & Disconnected Apps with Azure Mobile AppsGuy Barrette
 
Mobile UI Design Patterns
Mobile UI Design PatternsMobile UI Design Patterns
Mobile UI Design Patternsdanhermes
 
Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinPuja Pramudya
 
Xamarin & Azure - BFF, Really?
Xamarin & Azure - BFF, Really?Xamarin & Azure - BFF, Really?
Xamarin & Azure - BFF, Really?Benjamin Tam
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Tomasz Kopacz
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app serviceNabeel Khan
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile appsKen Cenerelli
 
The new Azure App Service Architecture
The new Azure App Service ArchitectureThe new Azure App Service Architecture
The new Azure App Service ArchitectureJoão Pedro Martins
 
Azure service fabric: a gentle introduction
Azure service fabric: a gentle introductionAzure service fabric: a gentle introduction
Azure service fabric: a gentle introductionAlessandro Melchiori
 
Distributed Computing made easy with Service Fabric
Distributed Computing made easy with Service FabricDistributed Computing made easy with Service Fabric
Distributed Computing made easy with Service FabricBizTalk360
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?João Pedro Martins
 
Microservices and Azure App Services
Microservices and Azure App ServicesMicroservices and Azure App Services
Microservices and Azure App ServicesDamir Dobric
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Alexander Feschenko
 
AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)Amazon Web Services
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup
 
Building microservices with azure functions
Building microservices with azure functionsBuilding microservices with azure functions
Building microservices with azure functionsJustin Maurer
 

Viewers also liked (20)

Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with Azure
 
Xamarin + azure Mobile Apps
Xamarin + azure Mobile AppsXamarin + azure Mobile Apps
Xamarin + azure Mobile Apps
 
Xamarin Dev Days - Connected & Disconnected Apps with Azure Mobile Apps
Xamarin Dev Days - Connected & Disconnected Apps with Azure Mobile AppsXamarin Dev Days - Connected & Disconnected Apps with Azure Mobile Apps
Xamarin Dev Days - Connected & Disconnected Apps with Azure Mobile Apps
 
Mobile UI Design Patterns
Mobile UI Design PatternsMobile UI Design Patterns
Mobile UI Design Patterns
 
Cross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with XamarinCross Platform Mobile Development with Xamarin
Cross Platform Mobile Development with Xamarin
 
Xamarin & Azure - BFF, Really?
Xamarin & Azure - BFF, Really?Xamarin & Azure - BFF, Really?
Xamarin & Azure - BFF, Really?
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
 
Introdução ao Azure Mobile Apps
Introdução ao Azure Mobile AppsIntrodução ao Azure Mobile Apps
Introdução ao Azure Mobile Apps
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app service
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile apps
 
The new Azure App Service Architecture
The new Azure App Service ArchitectureThe new Azure App Service Architecture
The new Azure App Service Architecture
 
Azure service fabric: a gentle introduction
Azure service fabric: a gentle introductionAzure service fabric: a gentle introduction
Azure service fabric: a gentle introduction
 
Distributed Computing made easy with Service Fabric
Distributed Computing made easy with Service FabricDistributed Computing made easy with Service Fabric
Distributed Computing made easy with Service Fabric
 
Azure app services API apps
Azure app services API appsAzure app services API apps
Azure app services API apps
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
 
Microservices and Azure App Services
Microservices and Azure App ServicesMicroservices and Azure App Services
Microservices and Azure App Services
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
 
Building microservices with azure functions
Building microservices with azure functionsBuilding microservices with azure functions
Building microservices with azure functions
 

Similar to Azure Mobile Apps with Xamarin

Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsAlexandre Marreiros
 
Connected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsConnected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsAmal Dev
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinPranav Ainavolu
 
ASAS 2013 - Architecture for dynamic mobile forms at MoreApps
ASAS 2013 - Architecture for dynamic mobile forms at MoreApps ASAS 2013 - Architecture for dynamic mobile forms at MoreApps
ASAS 2013 - Architecture for dynamic mobile forms at MoreApps Avisi B.V.
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarinMohit Chhabra
 
Connected & Disconnected Apps With Azure Mobile Apps
Connected & Disconnected Apps With Azure Mobile AppsConnected & Disconnected Apps With Azure Mobile Apps
Connected & Disconnected Apps With Azure Mobile AppsAlejandro Ruiz Varela
 
Connected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with XamarinConnected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with XamarinRui Marinho
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformLohith Goudagere Nagaraj
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtrutyRon Favali
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for LaunchCraig Phares
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformUtkarsh Shukla
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friendsAntonio Peric-Mazar
 
Pivotal Developer-Ready Infrastructure Slides
Pivotal Developer-Ready Infrastructure SlidesPivotal Developer-Ready Infrastructure Slides
Pivotal Developer-Ready Infrastructure SlidesVMware Tanzu
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBIZZ
 
Offline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and ReactOffline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and ReactIlia Idakiev
 

Similar to Azure Mobile Apps with Xamarin (20)

Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected apps
 
Connected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile AppsConnected & Disconnected Apps with Azure Mobile Apps
Connected & Disconnected Apps with Azure Mobile Apps
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with Xamarin
 
ASAS 2013 - Architecture for dynamic mobile forms at MoreApps
ASAS 2013 - Architecture for dynamic mobile forms at MoreApps ASAS 2013 - Architecture for dynamic mobile forms at MoreApps
ASAS 2013 - Architecture for dynamic mobile forms at MoreApps
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
 
Connected & Disconnected Apps With Azure Mobile Apps
Connected & Disconnected Apps With Azure Mobile AppsConnected & Disconnected Apps With Azure Mobile Apps
Connected & Disconnected Apps With Azure Mobile Apps
 
Connected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with XamarinConnected & Disconnected Apps with Xamarin
Connected & Disconnected Apps with Xamarin
 
Azure mobile services
Azure mobile servicesAzure mobile services
Azure mobile services
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Services
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik Platform
 
Azue_Serverless.pptx
Azue_Serverless.pptxAzue_Serverless.pptx
Azue_Serverless.pptx
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends
 
Pivotal Developer-Ready Infrastructure Slides
Pivotal Developer-Ready Infrastructure SlidesPivotal Developer-Ready Infrastructure Slides
Pivotal Developer-Ready Infrastructure Slides
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with Worklight
 
Offline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and ReactOffline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and React
 

More from danhermes

Developing Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with XamarinDeveloping Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with Xamarindanhermes
 
Xamarin Navigation Patterns
Xamarin Navigation PatternsXamarin Navigation Patterns
Xamarin Navigation Patternsdanhermes
 
Xamarin Navigation Patterns
Xamarin Navigation PatternsXamarin Navigation Patterns
Xamarin Navigation Patternsdanhermes
 
Building Mobile Apps for Business
Building Mobile Apps for BusinessBuilding Mobile Apps for Business
Building Mobile Apps for Businessdanhermes
 
How App Usability, Functionality, and Analysis are Changing with Mobile
  How App Usability, Functionality, and Analysis are Changing with Mobile  How App Usability, Functionality, and Analysis are Changing with Mobile
How App Usability, Functionality, and Analysis are Changing with Mobiledanhermes
 
Cross platform mobile development in c#
Cross platform mobile development in c#Cross platform mobile development in c#
Cross platform mobile development in c#danhermes
 
What can mobile do for me
What can mobile do for meWhat can mobile do for me
What can mobile do for medanhermes
 
Agile Development in .NET
Agile Development in .NETAgile Development in .NET
Agile Development in .NETdanhermes
 
Mastering human communication patterns
Mastering human communication patternsMastering human communication patterns
Mastering human communication patternsdanhermes
 

More from danhermes (9)

Developing Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with XamarinDeveloping Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with Xamarin
 
Xamarin Navigation Patterns
Xamarin Navigation PatternsXamarin Navigation Patterns
Xamarin Navigation Patterns
 
Xamarin Navigation Patterns
Xamarin Navigation PatternsXamarin Navigation Patterns
Xamarin Navigation Patterns
 
Building Mobile Apps for Business
Building Mobile Apps for BusinessBuilding Mobile Apps for Business
Building Mobile Apps for Business
 
How App Usability, Functionality, and Analysis are Changing with Mobile
  How App Usability, Functionality, and Analysis are Changing with Mobile  How App Usability, Functionality, and Analysis are Changing with Mobile
How App Usability, Functionality, and Analysis are Changing with Mobile
 
Cross platform mobile development in c#
Cross platform mobile development in c#Cross platform mobile development in c#
Cross platform mobile development in c#
 
What can mobile do for me
What can mobile do for meWhat can mobile do for me
What can mobile do for me
 
Agile Development in .NET
Agile Development in .NETAgile Development in .NET
Agile Development in .NET
 
Mastering human communication patterns
Mastering human communication patternsMastering human communication patterns
Mastering human communication patterns
 

Azure Mobile Apps with Xamarin

Editor's Notes

  1. Julie Larson-Green – Microsoft, Xbox Division
  2. Google survey
  3. 17
  4. Left: Online - connected Right: Offline - disconnected
  5. Extremely powerful You can do almost anything your backend would ever need to do with Azure. Data storage, authentication/authorization, push notifications, custom APIs, blob storage, etc. Flexible Need something lightweight? Azure is there. Need something robust and powerful? Azure is there. C# clients I’m a frontend developer, I care a lot about how easy this makes MY job (selfish) Many C# clients are written by Java developers, etc. Easy to use C# client Abstracts away much of pain of using a RESTful API C# Features Async / Await / TPL Uses C# idioms Properties, Fluent API Seems obvious, but not always true (first class citizen)
  6. Notes: App Service aims to automate the creation of very common line-of-business mobile and web functionality The developers can focus on developing the parts of the app that are unique as opposed to the boilerplate, typical scenarios that must be re-created for each application
  7. Notes: Azure Mobile Apps is an app type of Azure App Service (others types include Web Apps, API Apps, and Logic Apps) Users don’t really care (and usually don’t know) what a mobile app is using for it’s backend Users care most about enjoying the app experience Devs should therefore spend most of their time building the best client experience they can Azure Mobile Apps helps devs by providing common mobile app backend features in a turnkey manner Data storage powered by SQL Database (but you don’t have to be a Database Admin to use it) User Authentication and Data Authorization Push Notifications (using services built into Android, iOS, Windows, and more) Other topics not covered in this lesson: Backend job processing using the scheduler Backend Logic Image and text courtesy of Microsoft
  8. References: Image courtesy of Microsoft
  9. Notes: By following the step-by-step wizard-like process in App Service in the browser, you can add common functionality that’s pre-configured to work with your Azure instance and other apps and services you’ve built in your Azure instance
  10. Notes: Select New > Web + Mobile > Mobile App
  11. Notes: Select New > Web + Mobile > Mobile App 1 Connect to a Database (create a DB connection) 2 Create a table API (C# or Node.js) 3 Configure your client application
  12. What if a GetAll should only return favorites for that user.
  13. What if a GetAll should only return favorites for that user.
  14. Notes: You can download the solution to a Mac and open it in Xamarin Studio, or you can download the solution to a Windows computer and open it in Visual Studio using a networked Mac for building the iOS app. Extract the project that you downloaded, and then open it in Xamarin Studio or Visual Studio.
  15. Add Azure Nuget
  16. What if a GetAll should only return favorites for that user.
  17. What if a GetAll should only return favorites for that user.
  18. Notes: Calls to the data store can be made in the app directly from the places in the app that need data. This is a functional approach, but eventually can lead to unmaintainable, spaghetti code. In professional grade apps this is considered an anti-pattern, a programming practice to avoid. In formal terms this hard-coded approach violates Separation of Concerns (SOC)
  19. Notes: CRUD is the standard set of database transactions needed as an interface for most projects. Item is an object of type TodoItem. It must have an ID property for many of these transactions. Tip: When executing a query using an untyped table object, you must explicitly specify the OData query string by calling ReadAsync.
  20. Notes: Create and Read are good academic terms but a bit stodgy for method names. Let’s use New and Get instead. Initialization is done in the service’s constructor, AzureDataService (), or in an explicitly called initializer like Initialize().
  21. Notes: Create and Read are good academic terms but perhaps a bit stodgy for method names. Let’s use New and Get instead.
  22. Notes:
  23. Notes: Sync local SQLite database with Azure cloud data store (SQL Database). These are the ways: PushAsync - takes local changes to all tables and applies them to Azure cloud data store Push is executed on the whole context, not on particular tables. It’s implemented this way to maintain the relationships between rows in different tables, i.e. foreign keys. PullAsync -  grab data from Azure and bring it local to the device – automatically pushes first  This is the most commonly-used offline sync function. PurgeAsync - deletes items in local table that match the query param – automatically pushes first Generally used when ‘soft deletes’ not enabled on server.
  24. Notes: Azure Mobile Client SDK 3.0 brought some changes The SQLite Batteries initialization is now required for all Oses. For Android, the path folder for the MobileServiceClient call is not supplied. This must be determined manually. Generally this is done in the Android project and injected back into the Xamarin.Forms PCL. Define a SQLitePath class in the Xamarin.Forms project with a property called PathName. public class SQLitePath { public static string PathName { get; set; } = "localstore.db"; } In the AzureDataServicesSync contructor shown in the slide, replace the ‘store’ assignment with this code: var path = "localstore.db"; path = SQLitePath.PathName; var store = new MobileServiceSQLiteStore(path); In Android activity (such as MainActivity.cs) SQLitePath.PathName = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), SQLitePath.PathName); if (!File.Exists(SQLitePath.PathName)) { File.Create(SQLitePath.PathName).Dispose(); } See detail in Lab 5.
  25. Notes: First PullSync parameter “allTasks” is a name given to the query generated by the next parameter. Second parameter creates query to select all rows in the TodoTable.
  26. Notes: PushAsync, PullAsync, PurgeAsync are the ways to sync data using the Azure Mobile Client API. More in the next slide. All writes go to the local SQLite database. Nothing goes to Azure unless we sync explicitly using PushAsync, PullAsync, or PurgeAsync. Sync errors throw MobileServicePushFailedException
  27. Notes:
  28. What if a GetAll should only return favorites for that user.
  29. Notes: There are two forms of auth and the first we’ll talk about is server auth This is a basic Oauth flow The client device calls a method in the SDK which opens a webview which goes to a specific auth provider The user authenticates The provider hands back information to the Mobile Service The Mobile Service creates an identity which it hands back to the client Future requests from the client contain that identity (though it needs to be cached locally for app restarts) The Mobile Service now has Graph access to the provider
  30. SO Hard! Azure makes it easy Huge value in having this integrated with data... you can just say fire a push IF
  31. Notes: Some of the items in the store are free and some are available for a fee. The fees charged can also be based on the level of service, frequently revolving around volume of use The items in the store are pieces of a larger or enterprise-level app that may be helpful Email sending/management with SendGrid or Office365 Enterprise-level third-party integration with services like SharePoint, SalesForce and QuickBooks API access for enterprise-level data services like Bing Search or Global Address Validation Some items are entire Azure-configured applications or content management systems (CMSes) like WordPress, Umbraco, Drupal, etc. This can speed up the application development process and save time and money Most of the items in the Azure Marketplace are built with cloud-computing and Azure in mind, removing some of the common Azure-related development tasks Azure Active Directory is Microsoft’s multi-tenant, cloud-based directory and identity management service. It provides single sign on access to all integrated apps and services. It includes identity management functionality such as multi-factor authentication, password management, role based access control, auditing and security monitoring and alerting More on the Azure Marketplace: https://azure.microsoft.com/en-us/marketplace/
  32. Notes: Azure Mobile Apps is an app type of Azure App Service (others types include Web Apps, API Apps, and Logic Apps) Users don’t really care (and usually don’t know) what a mobile app is using for it’s backend Users care most about enjoying the app experience Devs should therefore spend most of their time building the best client experience they can Azure Mobile Apps helps devs by providing common mobile app backend features in a turnkey manner Data storage powered by SQL Database (but you don’t have to be a Database Admin to use it) User Authentication and Data Authorization Push Notifications (using services built into Android, iOS, Windows, and more) Other topics not covered in this lesson: Backend job processing using the scheduler Backend Logic Image and text courtesy of Microsoft