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

Post on 19-May-2015

390 views 2 download

Tags:

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 of Building connected apps – Patterns, Practices and Mobile Services by Mike Benkovich

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

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