SlideShare a Scribd company logo
1 of 47
Solution Building Blocks
Abhishek Sur
Microsoft MVP
Microsoft Azure
My Publications
A comprehensive book on .NET Expert guide book
with expert advices on development.
Part 1 includes Visual Studio, Memory Management,
Windows 8, ASP.NET, WPF, Architecture etc.
A comprehensive book on .NET Expert guide book
with expert advices on development.
Part 2 includes Debugging, WCF, Windows Phone, Testing
TFS, Extensibility, Windows Azure etc.
Agenda
3
Mobile Services Features and Demos
Advanced Features Scaling and Pricing
Questions
What is Mobile Services?
4
Storage
Authentication
Logic
Push
Scheduler
Demo: Getting Started
Your first Mobile Service
Structured Storage
• Powered by SQL Database
• Supports rich querying capabilities
• Dynamic Schematization
• Data management in:
• Azure Portal
• SQL Portal (Silverlight)
• SQL Management Studio
• REST API
• Azure CLI Tools
• SQL CLI
6Microsoft Azure
The REST API
7
Action HTTP Method URL Suffix
Create POST /TodoItem
Read GET /TodoItem?filter=id%3D42
Update PATCH /TodoItem/id
Delete DELETE /TodoItem/id
Microsoft Azure
Base Endpoint: https://MobileService.azure-
mobile.net/tables/*
JSON to SQL Type Mappings
8
JSON Type T-SQL Type
Numeric values (integer, decimal,
floating point)
Float(53)
Boolean bit
DateTime DateTimeOffset(3)
String Nvarchar(max)
Microsoft Azure
Auto-generated Columns
• id – unique guid
• __createdAt – date
• __updatedAt – date
• __version – timestamp
• Helps with concurrency and offline
9Microsoft Azure
Backend Logic:
JavaScript & .NET
Server Side Table Scripts
11
Node.js scripts
Intercept CRUD
requests to tables
Passes through to SQL
by default
Fully customizable
.NET Web API
backend in
Visual Studio
MongoDB, Table
Storage, SQL out of the
box
Node Modules
12
request push.*
console mssql
tables azure
sendgrid
pusher
twilio
Demo: Customizing Logic
Adding Data Validation
.NET Backend
• Web API based w/ additional functionality, developed in and deployed
from Visual Studio
• TableController data context can map to SQL, Table Storage, Mongo, etc
• Pull in NuGet modules and other .NET libraries
• Set permissions with attributes on classes
• Local Debug
14Microsoft Azure
Custom API
• Non-table based endpoints
• Accessible from
• GET
• POST
• PUT
• PATCH
• DELETE
• For node.js logic in scripts like table endpoints
• For .NET delivered through a WebAPI
• Expose any functionality you want
15Microsoft Azure
File Storage
• Don’t store files in Mobile Services DB
• Use Mobile Service to provide a Valet Key Pattern to Blob Storage,
aka BLOB SAS
• Create table / custom API script to talk to Blob Storage
• Script generates Shared Access Signature (SAS) URL
• Script returns SAS URL to client app
• Client app uploads data to blob storage directly
• Store file URL in Mobile Service DB as needed
• Blob storage costs less and is built for redundant file storage
• Resource Broker extension for .NET and Node backends
16Microsoft Azure
Push Notifications
Push Notification Flow
18Microsoft Azure
Demo: Adding Push Notifications
Notification Hubs
• Separate from Mobile Services
• Can be used regardless of whether you’re storing data in Azure
• Extremely scalable push notifications
• Cross platform support
• Push to iOS, Android, Kindle, Windows Phone, Windows Store
• Tags (i.e. tie my registration to this topic or user ID)
• Templates (i.e. when I get a push, send it in this format)
• Server SDKs for .NET, Java, and Node (also open as REST API)
20Microsoft Azure
Authorization
&
Authentication
Data Authorization
Per HTTP method auth options:
• App Key Required
• Not ideal for production use
• Everyone
• Authenticated Users
• Admins and other scripts
• Requires Master Key as header
401 Unauthorized response if security check fails
22Microsoft Azure
User Auth Flow (server)
23Microsoft Azure
GOOGLE
FACEBOOK
TWITTER
MOBILE SERVICE
DEVICE
MICROSOFT
ACCOUNT
AAD
User Auth Flow (client)
24Microsoft Azure
GOOGLE
FACEBOOK
TWITTER
MOBILE SERVICE
DEVICE
MICROSOFT
ACCOUNT
AAD
The User object
User.level
• Admin
• Authenticated
• Anonymous
User.userId
• Provider:id or undefined
User.getIdentities()
• UserId
• Provider Access Token / Secret
• Basic user information (i.e. name, username, locale, picture, link)
25Microsoft Azure
Demo: Adding Auth
Lock Down and Login
Offline Sync
Offline support
TableController
(with optimistic
concurrency)
Mobile ServiceDevice
SQL Database
BYOD
MongoDB
Table Storage
SQLite
Explicit Push/Pull
Conflict resolution
Offline Sync: Potential Uses
• Improve app responsiveness by caching server data
locally on the device
• Make apps resilient against intermittent network
connectivity
• Allow end-users to create and modify data even when
there is no network access, supporting scenarios with
little or no connectivity
• Sync data across multiple devices and detect conflicts
when the same record is modified by two devices
29
Scheduler
Scheduled Jobs
• Executes a script on defined schedule
• Can be run on demand
• Ideal for any backend data processing job
• Length / frequency based of Mobile Service tier
31Microsoft Azure
Script
Source
Control
Script Source Control
• Creates a Git repo in Azure
• Node.js only, turned on by default
• Access table, scheduler, custom API, shared scripts and permissions
• Pushing changes triggers a redeploy of your Mobile Service
• Enables installing NPM modules (for Node backends)
• Shared Scripts
• Create scripts that can be used from all other scripts in your Service
33Microsoft Azure
Diagnostics
Logging
Scale
Diagnostics, Logging, Scale
35
API Calls, # of Devices,
Data Out
Console Logging (auto
error logging)
Scale Service Based off API
Calls
Auto-scale to Save Money
Free Tier for Mobile Free Tier for SQL
Mobile Service Scaling
 Free: 500k calls / month / subscription
 Basic: 1.5M calls / unit (6) / month
 Standard: 15M calls / unit (10) / month
Microsoft Azure
Demo: Scaling
Leaving Free Mode and Turning on AutoScale
Command
Line
Interface
CLI
39
Create / Delete Services Inspect / Delete Table Data
Create / Update / Delete
Tables and Permissions
Create / Upload / Delete
Scripts
Scale Up / Down Services Much More Across Azure
Demo: Using the CLI
Mobile Service Tiers
41
General Availability
99.9%
Free Basic Standard
Usage
Restrictions
Up to 10 services,
Up to 500 Active
Devices*
N/A N/A
API Calls 500K
(per subscription)
1.5M
(per unit)
15M
(per unit)
Scale N/A Up to 6 (in portal) Up to 10 (in portal)
Scheduled
Jobs
Limited Included Included
SQL
Database
(required)
20MB free DB 20MB free DB 20MB free DB
*Active devices refers to the number of physical devices and
emulators that make at least one call to or receive a push
notification from your mobile service.
Azure Mobile Services
42
Storage
Authentication
Logic
Push
Scheduler
Resources
• Get a FREE Microsoft Azure Trial Account:
• http://azure.microsoft.com
• Videos, Tutorials, and More
• http://azure.microsoft.com/mobile
• SDK Source Code on GitHub
• https://github.com/Azure/azure-mobile-services
• Contact Details
• <Contact Info>
43Microsoft Azure
Get started
Visit azure.microsoft.com
Azure
footprint
16 regions worldwide in 2014
Fortune 500 using Azure
>57% >250k
Active websites
Greater than
1,000,000
SQL Databases in Azure
>20TRILLION
storage
objects >300MILLION
AD users
>13BILLION
authentication/wk
>2
MILLION
requests/sec >1MILLION
Developers
registered with
Visual Studio
Online

More Related Content

What's hot

BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...
BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...
BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...mfrancis
 
Андрей Бойко - Azure Web App для PHP и Node.Js разработчиков
Андрей Бойко -  Azure Web App для PHP и Node.Js разработчиковАндрей Бойко -  Azure Web App для PHP и Node.Js разработчиков
Андрей Бойко - Azure Web App для PHP и Node.Js разработчиковHackraft
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business ToolkitVan Staub, MBA
 
Sharepoint as a service platform
Sharepoint as a service platformSharepoint as a service platform
Sharepoint as a service platformKashif Akram
 
Online Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UIOnline Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UILohith Goudagere Nagaraj
 
Introduction à Application Insights
Introduction à Application InsightsIntroduction à Application Insights
Introduction à Application InsightsMSDEVMTL
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Red Hat Developers
 
Asp.net core 1.0 (Peter Himschoot)
Asp.net core 1.0 (Peter Himschoot)Asp.net core 1.0 (Peter Himschoot)
Asp.net core 1.0 (Peter Himschoot)Visug
 
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T JackettCloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T JackettBrian T. Jackett
 
Drupal DevOps on Microsoft Azure Websites
Drupal DevOps on Microsoft Azure WebsitesDrupal DevOps on Microsoft Azure Websites
Drupal DevOps on Microsoft Azure WebsitesCory Fowler
 
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud EnvironmentsAutomation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud EnvironmentsMichael Rüefli
 
IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationVan Staub, MBA
 
C# Advanced L10-Workflow Foundation
C# Advanced L10-Workflow FoundationC# Advanced L10-Workflow Foundation
C# Advanced L10-Workflow FoundationMohammad Shaker
 
Go Serverless with Cosmos DB, Azure Functions and Blazor
Go Serverless with Cosmos DB, Azure Functions and BlazorGo Serverless with Cosmos DB, Azure Functions and Blazor
Go Serverless with Cosmos DB, Azure Functions and BlazorTimothy McAliley
 
Function of OneLogin
Function of OneLoginFunction of OneLogin
Function of OneLogin慶 宮澤
 
OneLogin qpstudy_20160716
OneLogin qpstudy_20160716OneLogin qpstudy_20160716
OneLogin qpstudy_20160716慶 宮澤
 
How to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in ContainersHow to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in ContainersWSO2
 
Develop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft TeamsDevelop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft TeamsMarkus Moeller
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 WorkflowsDamir Dobric
 

What's hot (20)

BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...
BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...
BEA's microService Architecture and OSGi- How Customers Benefit - Craig Blitz...
 
Андрей Бойко - Azure Web App для PHP и Node.Js разработчиков
Андрей Бойко -  Azure Web App для PHP и Node.Js разработчиковАндрей Бойко -  Azure Web App для PHP и Node.Js разработчиков
Андрей Бойко - Azure Web App для PHP и Node.Js разработчиков
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business Toolkit
 
Developing Sandbox Solutions
Developing Sandbox SolutionsDeveloping Sandbox Solutions
Developing Sandbox Solutions
 
Sharepoint as a service platform
Sharepoint as a service platformSharepoint as a service platform
Sharepoint as a service platform
 
Online Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UIOnline Spreadsheet for your Web Applications using Kendo UI
Online Spreadsheet for your Web Applications using Kendo UI
 
Introduction à Application Insights
Introduction à Application InsightsIntroduction à Application Insights
Introduction à Application Insights
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
 
Asp.net core 1.0 (Peter Himschoot)
Asp.net core 1.0 (Peter Himschoot)Asp.net core 1.0 (Peter Himschoot)
Asp.net core 1.0 (Peter Himschoot)
 
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T JackettCloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
 
Drupal DevOps on Microsoft Azure Websites
Drupal DevOps on Microsoft Azure WebsitesDrupal DevOps on Microsoft Azure Websites
Drupal DevOps on Microsoft Azure Websites
 
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud EnvironmentsAutomation 2.0 - Automation Tools for Hybrid Cloud Environments
Automation 2.0 - Automation Tools for Hybrid Cloud Environments
 
IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme Customization
 
C# Advanced L10-Workflow Foundation
C# Advanced L10-Workflow FoundationC# Advanced L10-Workflow Foundation
C# Advanced L10-Workflow Foundation
 
Go Serverless with Cosmos DB, Azure Functions and Blazor
Go Serverless with Cosmos DB, Azure Functions and BlazorGo Serverless with Cosmos DB, Azure Functions and Blazor
Go Serverless with Cosmos DB, Azure Functions and Blazor
 
Function of OneLogin
Function of OneLoginFunction of OneLogin
Function of OneLogin
 
OneLogin qpstudy_20160716
OneLogin qpstudy_20160716OneLogin qpstudy_20160716
OneLogin qpstudy_20160716
 
How to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in ContainersHow to Deploy WSO2 Enterprise Integrator in Containers
How to Deploy WSO2 Enterprise Integrator in Containers
 
Develop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft TeamsDevelop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft Teams
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 Workflows
 

Viewers also liked

SQL Server2012 Enhancements
SQL Server2012 EnhancementsSQL Server2012 Enhancements
SQL Server2012 EnhancementsAbhishek Sur
 
Introduction to XAML and its features
Introduction to XAML and its featuresIntroduction to XAML and its features
Introduction to XAML and its featuresAbhishek Sur
 
Asp.net performance
Asp.net performanceAsp.net performance
Asp.net performanceAbhishek Sur
 
F12 debugging in Ms edge
F12 debugging in Ms edgeF12 debugging in Ms edge
F12 debugging in Ms edgeAbhishek Sur
 
Working with Azure Resource Manager Templates
Working with Azure Resource Manager TemplatesWorking with Azure Resource Manager Templates
Working with Azure Resource Manager TemplatesAbhishek Sur
 
AMicrosoft azure hyper v recovery manager overview
AMicrosoft azure hyper v recovery manager overviewAMicrosoft azure hyper v recovery manager overview
AMicrosoft azure hyper v recovery manager overviewAbhishek Sur
 
Stream Analytics Service in Azure
Stream Analytics Service in AzureStream Analytics Service in Azure
Stream Analytics Service in AzureAbhishek Sur
 

Viewers also liked (7)

SQL Server2012 Enhancements
SQL Server2012 EnhancementsSQL Server2012 Enhancements
SQL Server2012 Enhancements
 
Introduction to XAML and its features
Introduction to XAML and its featuresIntroduction to XAML and its features
Introduction to XAML and its features
 
Asp.net performance
Asp.net performanceAsp.net performance
Asp.net performance
 
F12 debugging in Ms edge
F12 debugging in Ms edgeF12 debugging in Ms edge
F12 debugging in Ms edge
 
Working with Azure Resource Manager Templates
Working with Azure Resource Manager TemplatesWorking with Azure Resource Manager Templates
Working with Azure Resource Manager Templates
 
AMicrosoft azure hyper v recovery manager overview
AMicrosoft azure hyper v recovery manager overviewAMicrosoft azure hyper v recovery manager overview
AMicrosoft azure hyper v recovery manager overview
 
Stream Analytics Service in Azure
Stream Analytics Service in AzureStream Analytics Service in Azure
Stream Analytics Service in Azure
 

Similar to Comprehensive guide to building mobile apps with Microsoft Azure Mobile Services

Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesAymeric Weinbach
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureKen Cenerelli
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile ServicesMarco Parenzan
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureGameLandVN
 
Cloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With AzureCloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With AzureVinh Nguyen Quang
 
Windows Azure - Mobile Services
Windows Azure - Mobile ServicesWindows Azure - Mobile Services
Windows Azure - Mobile ServicesJose R Jara
 
Serverless Application Development with Azure
Serverless Application Development with AzureServerless Application Development with Azure
Serverless Application Development with AzureCallon Campbell
 
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
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API ManagementCallon Campbell
 
Azure functions: Build apps faster with serverless architecture (March 2018)
Azure functions: Build apps faster with serverless architecture (March 2018)Azure functions: Build apps faster with serverless architecture (March 2018)
Azure functions: Build apps faster with serverless architecture (March 2018)Callon Campbell
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure FunctionsCallon Campbell
 
From Zero to Serverless
From Zero to ServerlessFrom Zero to Serverless
From Zero to ServerlessChad Green
 
Tokyo azure meetup #8 azure update, august
Tokyo azure meetup #8   azure update, augustTokyo azure meetup #8   azure update, august
Tokyo azure meetup #8 azure update, augustTokyo Azure Meetup
 
Tokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustTokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustKanio Dimitrov
 
Serverless with Azure Functions
Serverless with Azure FunctionsServerless with Azure Functions
Serverless with Azure FunctionsAndreas Willich
 
What's New for the Windows Azure Developer? Lots! (July 2013)
What's New for the Windows Azure Developer?  Lots! (July 2013)What's New for the Windows Azure Developer?  Lots! (July 2013)
What's New for the Windows Azure Developer? Lots! (July 2013)Michael Collier
 
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...DataArt
 
Get started azure- Azure Mobile Services
Get started azure- Azure Mobile ServicesGet started azure- Azure Mobile Services
Get started azure- Azure Mobile ServicesSenthamil Selvan
 
Developing scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .netDeveloping scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .netCallon Campbell
 

Similar to Comprehensive guide to building mobile apps with Microsoft Azure Mobile Services (20)

Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
Cloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With AzureCloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With Azure
 
Windows Azure - Mobile Services
Windows Azure - Mobile ServicesWindows Azure - Mobile Services
Windows Azure - Mobile Services
 
Serverless Application Development with Azure
Serverless Application Development with AzureServerless Application Development with Azure
Serverless Application Development with Azure
 
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
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Services
 
Exposing services with Azure API Management
Exposing services with Azure API ManagementExposing services with Azure API Management
Exposing services with Azure API Management
 
Azure functions: Build apps faster with serverless architecture (March 2018)
Azure functions: Build apps faster with serverless architecture (March 2018)Azure functions: Build apps faster with serverless architecture (March 2018)
Azure functions: Build apps faster with serverless architecture (March 2018)
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
From Zero to Serverless
From Zero to ServerlessFrom Zero to Serverless
From Zero to Serverless
 
Tokyo azure meetup #8 azure update, august
Tokyo azure meetup #8   azure update, augustTokyo azure meetup #8   azure update, august
Tokyo azure meetup #8 azure update, august
 
Tokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustTokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, August
 
Serverless with Azure Functions
Serverless with Azure FunctionsServerless with Azure Functions
Serverless with Azure Functions
 
What's New for the Windows Azure Developer? Lots! (July 2013)
What's New for the Windows Azure Developer?  Lots! (July 2013)What's New for the Windows Azure Developer?  Lots! (July 2013)
What's New for the Windows Azure Developer? Lots! (July 2013)
 
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
 
Get started azure- Azure Mobile Services
Get started azure- Azure Mobile ServicesGet started azure- Azure Mobile Services
Get started azure- Azure Mobile Services
 
Developing scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .netDeveloping scalable enterprise serverless applications on azure with .net
Developing scalable enterprise serverless applications on azure with .net
 

More from Abhishek Sur

Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabricAbhishek Sur
 
Building a bot with an intent
Building a bot with an intentBuilding a bot with an intent
Building a bot with an intentAbhishek Sur
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesAbhishek Sur
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to conceptsAbhishek Sur
 
Designing azure compute and storage infrastructure
Designing azure compute and storage infrastructureDesigning azure compute and storage infrastructure
Designing azure compute and storage infrastructureAbhishek Sur
 
Service bus to build Bridges
Service bus to build BridgesService bus to build Bridges
Service bus to build BridgesAbhishek Sur
 
Windows azure pack overview
Windows azure pack overviewWindows azure pack overview
Windows azure pack overviewAbhishek Sur
 
Di api di server b1 ws
Di api di server b1 wsDi api di server b1 ws
Di api di server b1 wsAbhishek Sur
 
Integrating cortana with wp8 app
Integrating cortana with wp8 appIntegrating cortana with wp8 app
Integrating cortana with wp8 appAbhishek Sur
 
Dev days Visual Studio 2012 Enhancements
Dev days Visual Studio 2012 EnhancementsDev days Visual Studio 2012 Enhancements
Dev days Visual Studio 2012 EnhancementsAbhishek Sur
 
Hidden Facts of .NET Language Gems
Hidden Facts of .NET Language GemsHidden Facts of .NET Language Gems
Hidden Facts of .NET Language GemsAbhishek Sur
 
ASP.NET 4.5 webforms
ASP.NET 4.5 webformsASP.NET 4.5 webforms
ASP.NET 4.5 webformsAbhishek Sur
 
Entity framework 4.0
Entity framework 4.0Entity framework 4.0
Entity framework 4.0Abhishek Sur
 
Overview of Azure and Cloud Computing
Overview of Azure and Cloud ComputingOverview of Azure and Cloud Computing
Overview of Azure and Cloud ComputingAbhishek Sur
 
The Magic of WPF & MVVM
The Magic of WPF & MVVMThe Magic of WPF & MVVM
The Magic of WPF & MVVMAbhishek Sur
 
Asynchronous handlers in asp.net
Asynchronous handlers in asp.netAsynchronous handlers in asp.net
Asynchronous handlers in asp.netAbhishek Sur
 
Memory Management & Garbage Collection
Memory Management & Garbage CollectionMemory Management & Garbage Collection
Memory Management & Garbage CollectionAbhishek Sur
 
How to become a Super Productive Developer
How to become a Super Productive DeveloperHow to become a Super Productive Developer
How to become a Super Productive DeveloperAbhishek Sur
 

More from Abhishek Sur (20)

Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabric
 
Building a bot with an intent
Building a bot with an intentBuilding a bot with an intent
Building a bot with an intent
 
Code review
Code reviewCode review
Code review
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and Features
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to concepts
 
Designing azure compute and storage infrastructure
Designing azure compute and storage infrastructureDesigning azure compute and storage infrastructure
Designing azure compute and storage infrastructure
 
Service bus to build Bridges
Service bus to build BridgesService bus to build Bridges
Service bus to build Bridges
 
Windows azure pack overview
Windows azure pack overviewWindows azure pack overview
Windows azure pack overview
 
Di api di server b1 ws
Di api di server b1 wsDi api di server b1 ws
Di api di server b1 ws
 
Integrating cortana with wp8 app
Integrating cortana with wp8 appIntegrating cortana with wp8 app
Integrating cortana with wp8 app
 
Dev days Visual Studio 2012 Enhancements
Dev days Visual Studio 2012 EnhancementsDev days Visual Studio 2012 Enhancements
Dev days Visual Studio 2012 Enhancements
 
Hidden Facts of .NET Language Gems
Hidden Facts of .NET Language GemsHidden Facts of .NET Language Gems
Hidden Facts of .NET Language Gems
 
ASP.NET 4.5 webforms
ASP.NET 4.5 webformsASP.NET 4.5 webforms
ASP.NET 4.5 webforms
 
Entity framework 4.0
Entity framework 4.0Entity framework 4.0
Entity framework 4.0
 
Why do I Love C#?
Why do I Love C#?Why do I Love C#?
Why do I Love C#?
 
Overview of Azure and Cloud Computing
Overview of Azure and Cloud ComputingOverview of Azure and Cloud Computing
Overview of Azure and Cloud Computing
 
The Magic of WPF & MVVM
The Magic of WPF & MVVMThe Magic of WPF & MVVM
The Magic of WPF & MVVM
 
Asynchronous handlers in asp.net
Asynchronous handlers in asp.netAsynchronous handlers in asp.net
Asynchronous handlers in asp.net
 
Memory Management & Garbage Collection
Memory Management & Garbage CollectionMemory Management & Garbage Collection
Memory Management & Garbage Collection
 
How to become a Super Productive Developer
How to become a Super Productive DeveloperHow to become a Super Productive Developer
How to become a Super Productive Developer
 

Recently uploaded

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Comprehensive guide to building mobile apps with Microsoft Azure Mobile Services

  • 1. Solution Building Blocks Abhishek Sur Microsoft MVP Microsoft Azure
  • 2. My Publications A comprehensive book on .NET Expert guide book with expert advices on development. Part 1 includes Visual Studio, Memory Management, Windows 8, ASP.NET, WPF, Architecture etc. A comprehensive book on .NET Expert guide book with expert advices on development. Part 2 includes Debugging, WCF, Windows Phone, Testing TFS, Extensibility, Windows Azure etc.
  • 3. Agenda 3 Mobile Services Features and Demos Advanced Features Scaling and Pricing Questions
  • 4. What is Mobile Services? 4 Storage Authentication Logic Push Scheduler
  • 5. Demo: Getting Started Your first Mobile Service
  • 6. Structured Storage • Powered by SQL Database • Supports rich querying capabilities • Dynamic Schematization • Data management in: • Azure Portal • SQL Portal (Silverlight) • SQL Management Studio • REST API • Azure CLI Tools • SQL CLI 6Microsoft Azure
  • 7. The REST API 7 Action HTTP Method URL Suffix Create POST /TodoItem Read GET /TodoItem?filter=id%3D42 Update PATCH /TodoItem/id Delete DELETE /TodoItem/id Microsoft Azure Base Endpoint: https://MobileService.azure- mobile.net/tables/*
  • 8. JSON to SQL Type Mappings 8 JSON Type T-SQL Type Numeric values (integer, decimal, floating point) Float(53) Boolean bit DateTime DateTimeOffset(3) String Nvarchar(max) Microsoft Azure
  • 9. Auto-generated Columns • id – unique guid • __createdAt – date • __updatedAt – date • __version – timestamp • Helps with concurrency and offline 9Microsoft Azure
  • 11. Server Side Table Scripts 11 Node.js scripts Intercept CRUD requests to tables Passes through to SQL by default Fully customizable .NET Web API backend in Visual Studio MongoDB, Table Storage, SQL out of the box
  • 12. Node Modules 12 request push.* console mssql tables azure sendgrid pusher twilio
  • 14. .NET Backend • Web API based w/ additional functionality, developed in and deployed from Visual Studio • TableController data context can map to SQL, Table Storage, Mongo, etc • Pull in NuGet modules and other .NET libraries • Set permissions with attributes on classes • Local Debug 14Microsoft Azure
  • 15. Custom API • Non-table based endpoints • Accessible from • GET • POST • PUT • PATCH • DELETE • For node.js logic in scripts like table endpoints • For .NET delivered through a WebAPI • Expose any functionality you want 15Microsoft Azure
  • 16. File Storage • Don’t store files in Mobile Services DB • Use Mobile Service to provide a Valet Key Pattern to Blob Storage, aka BLOB SAS • Create table / custom API script to talk to Blob Storage • Script generates Shared Access Signature (SAS) URL • Script returns SAS URL to client app • Client app uploads data to blob storage directly • Store file URL in Mobile Service DB as needed • Blob storage costs less and is built for redundant file storage • Resource Broker extension for .NET and Node backends 16Microsoft Azure
  • 19. Demo: Adding Push Notifications
  • 20. Notification Hubs • Separate from Mobile Services • Can be used regardless of whether you’re storing data in Azure • Extremely scalable push notifications • Cross platform support • Push to iOS, Android, Kindle, Windows Phone, Windows Store • Tags (i.e. tie my registration to this topic or user ID) • Templates (i.e. when I get a push, send it in this format) • Server SDKs for .NET, Java, and Node (also open as REST API) 20Microsoft Azure
  • 22. Data Authorization Per HTTP method auth options: • App Key Required • Not ideal for production use • Everyone • Authenticated Users • Admins and other scripts • Requires Master Key as header 401 Unauthorized response if security check fails 22Microsoft Azure
  • 23. User Auth Flow (server) 23Microsoft Azure GOOGLE FACEBOOK TWITTER MOBILE SERVICE DEVICE MICROSOFT ACCOUNT AAD
  • 24. User Auth Flow (client) 24Microsoft Azure GOOGLE FACEBOOK TWITTER MOBILE SERVICE DEVICE MICROSOFT ACCOUNT AAD
  • 25. The User object User.level • Admin • Authenticated • Anonymous User.userId • Provider:id or undefined User.getIdentities() • UserId • Provider Access Token / Secret • Basic user information (i.e. name, username, locale, picture, link) 25Microsoft Azure
  • 26. Demo: Adding Auth Lock Down and Login
  • 28. Offline support TableController (with optimistic concurrency) Mobile ServiceDevice SQL Database BYOD MongoDB Table Storage SQLite Explicit Push/Pull Conflict resolution
  • 29. Offline Sync: Potential Uses • Improve app responsiveness by caching server data locally on the device • Make apps resilient against intermittent network connectivity • Allow end-users to create and modify data even when there is no network access, supporting scenarios with little or no connectivity • Sync data across multiple devices and detect conflicts when the same record is modified by two devices 29
  • 31. Scheduled Jobs • Executes a script on defined schedule • Can be run on demand • Ideal for any backend data processing job • Length / frequency based of Mobile Service tier 31Microsoft Azure
  • 33. Script Source Control • Creates a Git repo in Azure • Node.js only, turned on by default • Access table, scheduler, custom API, shared scripts and permissions • Pushing changes triggers a redeploy of your Mobile Service • Enables installing NPM modules (for Node backends) • Shared Scripts • Create scripts that can be used from all other scripts in your Service 33Microsoft Azure
  • 35. Diagnostics, Logging, Scale 35 API Calls, # of Devices, Data Out Console Logging (auto error logging) Scale Service Based off API Calls Auto-scale to Save Money Free Tier for Mobile Free Tier for SQL
  • 36. Mobile Service Scaling  Free: 500k calls / month / subscription  Basic: 1.5M calls / unit (6) / month  Standard: 15M calls / unit (10) / month Microsoft Azure
  • 37. Demo: Scaling Leaving Free Mode and Turning on AutoScale
  • 39. CLI 39 Create / Delete Services Inspect / Delete Table Data Create / Update / Delete Tables and Permissions Create / Upload / Delete Scripts Scale Up / Down Services Much More Across Azure
  • 41. Mobile Service Tiers 41 General Availability 99.9% Free Basic Standard Usage Restrictions Up to 10 services, Up to 500 Active Devices* N/A N/A API Calls 500K (per subscription) 1.5M (per unit) 15M (per unit) Scale N/A Up to 6 (in portal) Up to 10 (in portal) Scheduled Jobs Limited Included Included SQL Database (required) 20MB free DB 20MB free DB 20MB free DB *Active devices refers to the number of physical devices and emulators that make at least one call to or receive a push notification from your mobile service.
  • 43. Resources • Get a FREE Microsoft Azure Trial Account: • http://azure.microsoft.com • Videos, Tutorials, and More • http://azure.microsoft.com/mobile • SDK Source Code on GitHub • https://github.com/Azure/azure-mobile-services • Contact Details • <Contact Info> 43Microsoft Azure
  • 45.
  • 47. Fortune 500 using Azure >57% >250k Active websites Greater than 1,000,000 SQL Databases in Azure >20TRILLION storage objects >300MILLION AD users >13BILLION authentication/wk >2 MILLION requests/sec >1MILLION Developers registered with Visual Studio Online

Editor's Notes

  1. Speaking Points: Topics covered in the session include What is Microsoft Azure What is Mobile Services, a feature of Azure Features and demos Advanced features throughout the session Scaling and pricing details Questions at the end
  2. Speaking Notes Azure Mobile Services is a Backend-as-a-Service Instead of you having to design, build, test, deploy, manage, and upgrade your whole backend, we do it for you Features of Mobile Services Storage – SQL DB Authentication – built in support for social providers w/ ability to custom auth Backend logic – data validation, logical flows, etc Push Notifications – across all major mobile platforms Scheduler – backend job processing
  3. Demo: Getting Started Go to the portal Create a new mobile service (Node backend works with most of deck) Walk through Getting started screen Choose platform Download quick start Run quick start Save and update data Show data in portal (Node) Walk through client code that deals with Mobile Service
  4. Speaking points Mobile Service easily connects to SQL Database SQL offers rich querying and indexing capabilities Dynamic Schematization means you don’t have to be a DBA and manage schema Data can be managed in: Azure Portal (read and delete data) SQL Portal (Silverlight) SQL Management Studio (windows) REST API (used by SDKs) Azure CLI tools SQL CLI (Node module)
  5. Speaking points This is the mapping for the REST API exposed by table storage Standard REST Anything that can talk REST can connect to your Mobile Service
  6. Speaking points JSON to SQL mapping Whatever JSON data type on left is passed in generates column of SQL type on right
  7. Speaking notes Auto-generated columns id – unique id used to handle querying, updating, and deleting specific rows createdAt, updatedAt, version help with optimistic concurrency (first update wins) Last three columns not pulled to client by default (Need to specify query parameter to get those back)
  8. Speaking points * Section change: Backend Logic
  9. Speaking points Node backend generates Node scripts for each table action Scripts intercept CRUD requests Pass to SQL by default Custom logic added here Edit in portal (NODE) .NET Backend creates Visual Studio project
  10. Speaking points Node backend comes with pre-included modules Request – make web requests against other services Push.* - perform push notifications Console – log information Mssql – call stored procedures / custom SQL Tables – OO way of accessing tables in backend Azure – access service bus, blob, table storage, notification hubs, etc Partners Sendgrid – send emails Pusher – web socket style communications Twilio – SMS and voice Most have a free tier you can use
  11. Demo: Customizing logic If using quick start Go into insert script and add validation to check length of item.text field Run app and show validation catching Show app still working if validation is fulfilled
  12. Speaking points .NET backend is currently in preview Bases off of Web API Develop and deploy in VS (also create new Mobile Services with VS project template) Debug locally Can pull in NuGet and other .NET libs TableController is base for accessing data, can be overridden to talk to Table Storage, Mongo, etc Permissions handled as attributes on classes
  13. Speaking points All scripts so far tied to a table action Custom APIs are non-table based endpoints Script functionality for normal HTTP methods
  14. File storage SQL DB for Mobile Services not ideal for file data storage Best practice is to use Mobile Service as Proxy Mobile Service script generates SAS URL Client uploads file to SAS URL Valet Key Pattern http://msdn.microsoft.com/en-us/library/dn568102.aspx
  15. Speaking points Section change: Push Notifications
  16. Speaking points Push notifications work the same no matter which client you’re working with Client talks to PNS to register for push Client gets token, passes to Mobile Service Mobile Service asks PNS to deliver payload to token / channel URI / registration ID PNS delivers push to client app PNS = Push Notification Service (i.e. MPNS, WNS, GCM, ADM, APNS)
  17. Demo: Adding Push Configure server side for push (Apple Dev portal / Android portal / Win Portal) Copy certificate / api key / etc to Azure portal Set up push on client Enable push from server to client
  18. Speaking points Notification Hubs are a separate service from Mobile Services but also used by Mobile Services Pushes to iOS, Android, Kindle, Windows Phone, Windows Store Extremely scalable (millions of pushes in minutes) Tags and templates Server SDKs: .NET, Java (beta), Node, REST API
  19. Speaking points Section change: Authorization and Authentication Controlling who can access what
  20. Speaking points Data auth – locking data down Default is App Key Required, great for pre-release time period Not production ready due to key’s accessibility in public apps Authenticated users – requests must contain user ID and matching auth token Admins and other scripts – only external requests with Master Key make it through Otherwise 401 is returned
  21. Speaking Points Server auth flow uses OAUTH Mobile Service is registered with provider to allow auth Client calls auth method and passes in provider name User authenticates, Mobile Service and provider do OAUTH User ID and token (for Mobile Service) returned to client Provider token / secret accessible in Mobile Service
  22. Speaking points Client flow uses SDKs for provider / platform User auths using SDK on client Provider token / secret sent to Mobile Service Mobile Service checks validity and hands back user ID and token
  23. Speaking points User level indicates if they’ve logged in or came across with master key User ID for user making the request GetIdentities can be called to get provider token / secret and basic information from provider
  24. Demo: adding auth Lock table operations down to authenticated users Attempt to access and show 401 on client Set up auth provider and mobile service in portal Add auth code to client Show auth working Add logic to insert script to tie data to user Add logic to read script to only fetch data user can access
  25. Speaking notes Subject change: Scheduler
  26. Speaking notes Subject change: Scheduler
  27. Speaking points Schedule jobs (scripts) can be run by the scheduler Ideal for any backend job processing (regular push notification, remove old data, etc) Length and how often you can run job based off tier of your mobile service
  28. Speaking points Subject change: Script source control
  29. Speaking points Script source control creates GIT repo for all scripts and permission JSON files Enables you to pull scripts down and edit locally Lets you create shared scripts to reuse code Enables installing of NPM modules (Node)
  30. Speaking points Subject change: diagnostics, logging, scale
  31. Speaking points Some default stats like # of api calls, # of devices connecting, amount of data out Api calls are important because that’s how mobile services’ scale is baed All console statements and errors go to logging area Auto-scaling helps save money Free tier for Mobile Services and SQL while developing
  32. Speaking points Scaling Free 500k / month / sub (across entire subscription is important distinction) Basic 1.5M / unit / month (up to 6 units) Standard 15M / unit / month (up to 10 units) More units available by contacting support
  33. Demo: Scaling Go to scaling tab Go to Standard mode Turn on auto-scaling Explain that additional units will only be turned on / used if you need them based off daily API calls
  34. Speaking points Section change: Command Line Interface
  35. Speaking points CLI allows you to do many different things within Azure Create new Mobile Services, read table data, update permissions and scripts, change scale, turn on and off features, etc Also allows you to do things outside Mobile Services (create VMs, read debug logs, etc)
  36. Demo: Using the CLI Open the CLI tools Perform some commands azure mobile list azure mobile table list <service-name> Reference: http://azure.microsoft.com/en-us/documentation/articles/mobile-services-manage-command-line-interface/
  37. Speaking points Review different tiers Mention that SQL database bills separately but is a full SQL DB and can be accessed from other resources (i.e. web sites, VMs)
  38. Speaking Notes Summarize earlier slide Azure Mobile Services is a Backend-as-a-Service Instead of you having to design, build, test, deploy, manage, and upgrade your whole backend, we do it for you Features of Mobile Services Storage – SQL DB Authentication – built in support for social providers w/ ability to custom auth Backend logic – data validation, logical flows, etc Push Notifications – across all major mobile platforms Scheduler – backend job processing
  39. Speaking points Sign up for a free Azure trial Mobile Services are free to develop with (to a point) on non-trial subscription Additional videos, tutorials, samples available SDK source code (for Mobile Services and Notification Hubs) available in GitHub