SlideShare une entreprise Scribd logo
1  sur  21
Building Connected Apps with
Mobile Services
Mike Benkovich - @mbenko
mike@benko.com
Session Objectives and Takeaways
What is Mobile Services?
What are the components?
Where to get the tools
How to get started
Why Mobile Services?
• Apps are everywhere
• Where’s the Data
• Who’s using it
• Minimize custom code
• Speed to market
Where does it run?
• Web
• Windows
• Android
• iOS
• Windows Phone
• etc…
Data
Svc
Data
Identity
Connected Patterns
• Create a Data Store
• Add services
• Host it somewhere
• Make it work
Data
Svc
Data
Identity
Scenarios
• Modern Mobile Applications
Windows Store, Windows Phone, iOS, Android, HTML
• Common Scenarios
Reduce the friction and work required by providing solutions to
patterns to work with authentication, push
notification, structured storage and more
• Rapid Development
Provision and deploy solutions in minutes rather than days or
weeks
What is Mobile Services?
To get started…
• Windows Azure subscription
• Database for storing information
– SQL Azure for rapid provisioning and
deployment
– Dynamic Schema
• Service configuration and scaling
– Scripting on data
– Identity and notifications
• SDK to enable identity and notifications
Code to instantiate Mobile Services
• In Application object add code to create
an instance of your Mobile Service
• Call methods to operate on the
service…i.e.
public static MobileServiceClient MobileService = new MobileServiceClient(
"https://demoapp123.azure-mobile.net/",
"OxxAAAAbbbCCCCCddEEEfffGGGh12345"
);
private void ButtonSave_Click(object sender, RoutedEventArgs e)
{
var todoItem = new TodoItem { Text = TodoInput.Text };
InsertTodoItem(todoItem);
}
Storage
• SQL Database partitioned by schema
– Appx.ToDoItem
– Appy.ToDoItem
• Manage data by standard SQL tools
– SQL Management Studio
– Portal
– REST API
– CLI Tools
Work with SQL
• Tables created in portal
• Dynamic SQL Enabled
• Create poco classes and persist as
tables
Identity
• Use existing identity providers like Oauth
– Microsoft, Twitter, Facebook, Google, etc.
• Authorize to work with data
• Table options
– Everyone
– With application key
– Authenticated users
– Admins
Add code to trigger
authentication
private MobileServiceUser user;
private async System.Threading.Tasks.Task Authenticate()
{
while (user == null)
{
string message;
try
{
user = await App.MobileService
.LoginAsync(MobileServiceAuthenticationProvider.Facebook);
message =
string.Format("You are now logged in - {0}", user.UserId);
}
catch (InvalidOperationException)
{
message = "You must log in. Login Required";
}
MessageBox.Show(message);
}
}
Server logic
• Scheduled jobs
• Notification services
• Diagnostics, logging and scale
Diagnostics, Logging and
Scale
• Diagnostics
– API calls
– CPU Time
– Data Out
• Logging
– console.error(…)
– console.log(…)
– …
Scale - Compute
Scale out instance count
Scale up VM size
Scale - Storage
Scale out mobile service tenant to
dedicated SQL DB
Scale up SQL DB
Pricing during Preview
reserved mode
service level
agreements
Preview
No availability SLA*
General Availability
99.9%
Private VM - Small instance
is the only size available
Free - unlimited inbound
data. 165MB outbound
data/day, excess charged.
Pay - SQL Database,
Compute same reduced rate
as Web Sites i.e 33%
discount, excess outbound
transfers starting at
$0.12/GB
Up to 100 applications
shared mode
Summary
• Learn and understand the patterns for
connected applications
• Use available tools and technologies to
make it simpler
• Try Azure Mobile Services today for FREE!
http://aka.ms/AzureTrialMB
• More info on my site
http://www.Benkotips.com

Contenu connexe

Plus de Codemotion

Plus de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Building connected apps – Patterns, Practices and Mobile Services by Mike Benkovich

  • 1. Building Connected Apps with Mobile Services Mike Benkovich - @mbenko mike@benko.com
  • 2. Session Objectives and Takeaways What is Mobile Services? What are the components? Where to get the tools How to get started
  • 3. Why Mobile Services? • Apps are everywhere • Where’s the Data • Who’s using it • Minimize custom code • Speed to market
  • 4. Where does it run? • Web • Windows • Android • iOS • Windows Phone • etc… Data Svc Data Identity
  • 5. Connected Patterns • Create a Data Store • Add services • Host it somewhere • Make it work Data Svc Data Identity
  • 6.
  • 7. Scenarios • Modern Mobile Applications Windows Store, Windows Phone, iOS, Android, HTML • Common Scenarios Reduce the friction and work required by providing solutions to patterns to work with authentication, push notification, structured storage and more • Rapid Development Provision and deploy solutions in minutes rather than days or weeks
  • 8. What is Mobile Services?
  • 9. To get started… • Windows Azure subscription • Database for storing information – SQL Azure for rapid provisioning and deployment – Dynamic Schema • Service configuration and scaling – Scripting on data – Identity and notifications • SDK to enable identity and notifications
  • 10.
  • 11. Code to instantiate Mobile Services • In Application object add code to create an instance of your Mobile Service • Call methods to operate on the service…i.e. public static MobileServiceClient MobileService = new MobileServiceClient( "https://demoapp123.azure-mobile.net/", "OxxAAAAbbbCCCCCddEEEfffGGGh12345" ); private void ButtonSave_Click(object sender, RoutedEventArgs e) { var todoItem = new TodoItem { Text = TodoInput.Text }; InsertTodoItem(todoItem); }
  • 12. Storage • SQL Database partitioned by schema – Appx.ToDoItem – Appy.ToDoItem • Manage data by standard SQL tools – SQL Management Studio – Portal – REST API – CLI Tools
  • 13. Work with SQL • Tables created in portal • Dynamic SQL Enabled • Create poco classes and persist as tables
  • 14.
  • 15. Identity • Use existing identity providers like Oauth – Microsoft, Twitter, Facebook, Google, etc. • Authorize to work with data • Table options – Everyone – With application key – Authenticated users – Admins
  • 16. Add code to trigger authentication private MobileServiceUser user; private async System.Threading.Tasks.Task Authenticate() { while (user == null) { string message; try { user = await App.MobileService .LoginAsync(MobileServiceAuthenticationProvider.Facebook); message = string.Format("You are now logged in - {0}", user.UserId); } catch (InvalidOperationException) { message = "You must log in. Login Required"; } MessageBox.Show(message); } }
  • 17.
  • 18. Server logic • Scheduled jobs • Notification services • Diagnostics, logging and scale
  • 19. Diagnostics, Logging and Scale • Diagnostics – API calls – CPU Time – Data Out • Logging – console.error(…) – console.log(…) – … Scale - Compute Scale out instance count Scale up VM size Scale - Storage Scale out mobile service tenant to dedicated SQL DB Scale up SQL DB
  • 20. Pricing during Preview reserved mode service level agreements Preview No availability SLA* General Availability 99.9% Private VM - Small instance is the only size available Free - unlimited inbound data. 165MB outbound data/day, excess charged. Pay - SQL Database, Compute same reduced rate as Web Sites i.e 33% discount, excess outbound transfers starting at $0.12/GB Up to 100 applications shared mode
  • 21. Summary • Learn and understand the patterns for connected applications • Use available tools and technologies to make it simpler • Try Azure Mobile Services today for FREE! http://aka.ms/AzureTrialMB • More info on my site http://www.Benkotips.com

Notes de l'éditeur

  1. Slide Objectives:Detail what Mobile Services provides as far as Diagnostics, Logging and Scale is concernedSpeaking Points: Note when moving a Mobile Service from a multi-tenant DB to its own. Currently data is not automatically migrated.
  2. Notes:More Details here - http://www.windowsazure.com/en-us/pricing/details/#header-0 SLAWhile Mobile Services is in preview, it can be used with apps in production, if customers ask for SLA and support, both can be provided by the product team upon request as part of the early adopters program, contact zumosla@microsoft.com for details.