building connected apps – patterns, practices and mobile services by mike benkovich
DESCRIPTION
Today’s users don’t live on just a workstation or a laptop. With the proliferation of laptops, smart phones, and tablets people work from a variety of forms and clients. Building applications that can leverage a consistent view of identity, data and services will enable the workforce to be productive wherever they are. In this session we’ll explore how to design and build applications that span the various device forms and platforms using the tools and features of the Cloud that make it all possible and easy.TRANSCRIPT
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
Data Services
Scenarios
• Modern Mobile ApplicationsWindows Store, Windows Phone, iOS, Android, HTML
• Common ScenariosReduce the friction and work required by providing solutions to patterns to work with authentication, push notification, structured storage and more
• Rapid DevelopmentProvision and deploy solutions in minutes rather than days or weeks
What is Mobile Services?
AuthData
Server Logic
Scale
Logging
Diagnostics
Notifications
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
Get the toolsProvision a mobile
serviceNew application
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
Working with Data
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); } }
Working with Identity
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 - ComputeScale out instance countScale up VM size
Scale - StorageScale out mobile service tenant to dedicated SQL DBScale up SQL DB
Pricing during Preview
reserved mode
service level agreements
PreviewNo availability SLA*
General Availability99.9%
Shared Instance
Small instance is the only size available
Free - 10 applications with unlimited inbound data. Capped max of 165MB outbound data/day
Pay - SQL Database
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 sitehttp://www.Benkotips.com