SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Sasha Goldshtein
CTO, SELA Group

@goldshtn
blog.sashag.net

Windows Azure Mobile
Services

© Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com
Who Are We? App Developers
What Do We Hate? Backends
We need one backend for all our
mobile apps, scaled by the cloud
Oh, and it should cost about $0-5 /
month for a small, simple app
Backend as a Service
Windows 8 & Windows Phone
iOS & Android
HTML & JavaScript
Data & LINQ queries
Server scripts, scheduler
Authentication & WAADNEW
Custom APINEW
Source control and NPMNEW
Push, notification hubsNEW
Windows Azure Mobile Services
Portal

Demo
Initializing The Mobile Service
Client
The application key is for development
iOS
Windows 8 / Windows PhoneIn Android use user
purposes only. / production,
authentication to limit access to data
ms = new MobileServiceClient(
[MSClient clientWithApplicationURLString:
"https://rentahome.azure-mobile.net"
"https://rentahome.azure-mobile.net",
"..." /*API key*/);
applicationKey:"..."];
Accessing Data
// Windows 8 and Windows Phone
var apartments = await ms.GetTable<Apartment>()
.Where(a => a.Bedrooms > 2).ToListAsync();
// Android
ms.getTable(Apartment.class).where().
.field("bedrooms").gt(2).execute(...);
// iOS
NSPredicate *pred = [NSPredicate
predicateWithFormat:@"bedrooms > 2"];
[[client getTable:@"apartment"] readWhere:pred
completion:^...];
Server Scripts
CRUD operations can pass through a custom
script
Use for validation, data enrichment, etc.
Scripts are written in JavaScript and run on Node.js
Can access several Node modules:
request, push, …
function insert(item, user, request) {
if (item.address.length === 0) {
request.respond(400);
} else {
request.execute();
}
}
Custom API
Add custom HTTP endpoints to your mobile
service
Very useful for external access
exports.post = function(request, response) {
sharedHub.send_ad(request.body.message, function(error) {
if (error) {
response.send(500, 'Error sending ad: ' + error);
} else {
response.send(200);
}
});
};
Enriching Data with Server Scripts

Demo
Push
Prepare app for push from script
On trigger, send push notifications
Depends on platform
Unfortunately, push API differs for each platform
Channel = await PushNotificationChannelManager.
push.wns.sendToast02(channel.uri, {
text01: "New apartment added",
CreatePushNotificationChannelForApplicationAsync();
channelsTable.Insert(new Channel(Channel.Uri));
text02: apartment.address });
Notification Hubs
Register push messages based on the
Blast out templates for push notifications with
arbitrary and the tags
template custom tags
template =
var payload{=data: { message: '$(message)' } };
{ message : message };
hub.gcm.createTemplateRegistration(request.body.uri, });
hub.send(tag, payload, function(error, outcome) { ...tags,
template, registrationComplete);
Server-Side Push Support

Demo
Authentication
// iOS
if (!client.currentUser) {
[self presentViewController:[client
loginViewControllerWithProvider:@"twitter"
completion:(MSUser *user, NSError *err) ...
] animated:YES];
}
// Android
if (client.getCurrentUser() != null) {
client.login(
MobileServiceAuthenticationProvider.Twitter,
new UserAuthenticationCallback() ...);
}
Authentication

Demo
Summary
Windows Azure Mobile Services provide a
powerful and customizable backend for your
mobile apps
Code available at
http://github.com/goldshtn/rentahome
Questions
Sasha Goldshtein
CTO, SELA Group

@goldshtn
blog.sashag.net

Weitere ähnliche Inhalte

Was ist angesagt?

Build intelligent solutions using Azure
Build intelligent solutions using AzureBuild intelligent solutions using Azure
Build intelligent solutions using AzureMostafa
 
2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...
2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...
2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...Modern Workplace Conference Paris
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web AppsAyush Rathi
 
Microsoft Azure News - February 2022
Microsoft Azure News - February 2022Microsoft Azure News - February 2022
Microsoft Azure News - February 2022Daniel Toomey
 
Unleash office 365 with the power of cognitive services and microsoft graph api
Unleash office 365 with the power of cognitive services and microsoft graph apiUnleash office 365 with the power of cognitive services and microsoft graph api
Unleash office 365 with the power of cognitive services and microsoft graph apiEstelle Auberix
 
Azure app services 2 - Logic & Api Apps
Azure app services 2  -  Logic & Api AppsAzure app services 2  -  Logic & Api Apps
Azure app services 2 - Logic & Api AppsBill Chesnut
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformBizTalk360
 
Build Interactive Analytics using Power BI
Build Interactive Analytics using Power BIBuild Interactive Analytics using Power BI
Build Interactive Analytics using Power BIMostafa
 
2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power AppsKumton Suttiraksiri
 
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoO365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoNCCOMMS
 
20071204 Arc Ready Office As A Platform
20071204 Arc Ready Office As A Platform20071204 Arc Ready Office As A Platform
20071204 Arc Ready Office As A PlatformDavid Chou
 
4 Integrating azure monitor with power bi and power automate
4 Integrating azure monitor with power bi and power automate4 Integrating azure monitor with power bi and power automate
4 Integrating azure monitor with power bi and power automateKumton Suttiraksiri
 
Microsoft power platform
Microsoft power platformMicrosoft power platform
Microsoft power platformJenkins NS
 
Microsoft Azure News - January 2022
Microsoft Azure News - January 2022Microsoft Azure News - January 2022
Microsoft Azure News - January 2022Daniel Toomey
 
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerO365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerNCCOMMS
 
An Integration Platform to Support Vision 2025
An Integration Platform to Support Vision 2025An Integration Platform to Support Vision 2025
An Integration Platform to Support Vision 2025BizTalk360
 

Was ist angesagt? (20)

Build intelligent solutions using Azure
Build intelligent solutions using AzureBuild intelligent solutions using Azure
Build intelligent solutions using Azure
 
2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...
2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...
2018 10-17 J1 3C - Hybrid architectures with Amazon Web Services, Office 365 ...
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web Apps
 
Microsoft Azure News - February 2022
Microsoft Azure News - February 2022Microsoft Azure News - February 2022
Microsoft Azure News - February 2022
 
Unleash office 365 with the power of cognitive services and microsoft graph api
Unleash office 365 with the power of cognitive services and microsoft graph apiUnleash office 365 with the power of cognitive services and microsoft graph api
Unleash office 365 with the power of cognitive services and microsoft graph api
 
Azure app services 2 - Logic & Api Apps
Azure app services 2  -  Logic & Api AppsAzure app services 2  -  Logic & Api Apps
Azure app services 2 - Logic & Api Apps
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Services
 
Build Interactive Analytics using Power BI
Build Interactive Analytics using Power BIBuild Interactive Analytics using Power BI
Build Interactive Analytics using Power BI
 
2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps
 
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoO365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
 
20071204 Arc Ready Office As A Platform
20071204 Arc Ready Office As A Platform20071204 Arc Ready Office As A Platform
20071204 Arc Ready Office As A Platform
 
4 Integrating azure monitor with power bi and power automate
4 Integrating azure monitor with power bi and power automate4 Integrating azure monitor with power bi and power automate
4 Integrating azure monitor with power bi and power automate
 
LUIS and Bots
LUIS and BotsLUIS and Bots
LUIS and Bots
 
SPS Gulf : SharePoint 2013 Cloud Business App
SPS Gulf : SharePoint 2013 Cloud Business AppSPS Gulf : SharePoint 2013 Cloud Business App
SPS Gulf : SharePoint 2013 Cloud Business App
 
Azure: PaaS or IaaS
Azure: PaaS or IaaSAzure: PaaS or IaaS
Azure: PaaS or IaaS
 
Microsoft power platform
Microsoft power platformMicrosoft power platform
Microsoft power platform
 
Microsoft Azure News - January 2022
Microsoft Azure News - January 2022Microsoft Azure News - January 2022
Microsoft Azure News - January 2022
 
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerO365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
 
An Integration Platform to Support Vision 2025
An Integration Platform to Support Vision 2025An Integration Platform to Support Vision 2025
An Integration Platform to Support Vision 2025
 

Andere mochten auch

Equipes ágeis em 2012 - Lições aprendidas
Equipes ágeis em 2012 - Lições aprendidasEquipes ágeis em 2012 - Lições aprendidas
Equipes ágeis em 2012 - Lições aprendidasGuilherme Silveira
 
Valentine's Day - By Teacher Bruno
Valentine's Day - By Teacher BrunoValentine's Day - By Teacher Bruno
Valentine's Day - By Teacher BrunoAEC-Inglês
 
SharePoint Requires Technical & Content Governance - How to Get Started
SharePoint Requires Technical & Content Governance  - How to Get StartedSharePoint Requires Technical & Content Governance  - How to Get Started
SharePoint Requires Technical & Content Governance - How to Get StartedChristian Buckley
 
Introducao a machine learning na educacao
Introducao a machine learning na educacaoIntroducao a machine learning na educacao
Introducao a machine learning na educacaoGuilherme Silveira
 

Andere mochten auch (8)

News from Build 2013
News from Build 2013News from Build 2013
News from Build 2013
 
Arquitetura: chega de mesmice
Arquitetura: chega de mesmiceArquitetura: chega de mesmice
Arquitetura: chega de mesmice
 
Rest clients
Rest clientsRest clients
Rest clients
 
Equipes ágeis em 2012 - Lições aprendidas
Equipes ágeis em 2012 - Lições aprendidasEquipes ágeis em 2012 - Lições aprendidas
Equipes ágeis em 2012 - Lições aprendidas
 
Valentine's Day - By Teacher Bruno
Valentine's Day - By Teacher BrunoValentine's Day - By Teacher Bruno
Valentine's Day - By Teacher Bruno
 
Genomics and OpenHelix - Basic Intro 12apr09
Genomics and OpenHelix - Basic Intro 12apr09Genomics and OpenHelix - Basic Intro 12apr09
Genomics and OpenHelix - Basic Intro 12apr09
 
SharePoint Requires Technical & Content Governance - How to Get Started
SharePoint Requires Technical & Content Governance  - How to Get StartedSharePoint Requires Technical & Content Governance  - How to Get Started
SharePoint Requires Technical & Content Governance - How to Get Started
 
Introducao a machine learning na educacao
Introducao a machine learning na educacaoIntroducao a machine learning na educacao
Introducao a machine learning na educacao
 

Ähnlich wie Windows Azure Mobile Services

Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceTechWell
 
Rhinos have tea_on_azure
Rhinos have tea_on_azureRhinos have tea_on_azure
Rhinos have tea_on_azureCEDRIC DERUE
 
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...MUG-Lyon Microsoft User Group
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Servicesfatih demir
 
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
 
Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)Sujee Maniyam
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsSPC Adriatics
 
Resume new it_format
Resume new it_formatResume new it_format
Resume new it_formatRajiv Saini
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformUtkarsh Shukla
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupratneshsinghparihar
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - MozillaRobert Nyman
 
Get started azure- Azure Mobile Services
Get started azure- Azure Mobile ServicesGet started azure- Azure Mobile Services
Get started azure- Azure Mobile ServicesSenthamil Selvan
 
Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsWinWire Technologies Inc
 
300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud PlatformMobileMonday Tel-Aviv
 

Ähnlich wie Windows Azure Mobile Services (20)

Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile Workforce
 
Rhinos have tea_on_azure
Rhinos have tea_on_azureRhinos have tea_on_azure
Rhinos have tea_on_azure
 
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
Global Windows Azure Bootcamp : Cedric Derue Rhinos have tea on azure. (spons...
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
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
 
Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)Iphone client-server app with Rails backend (v3)
Iphone client-server app with Rails backend (v3)
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile Apps
 
Resume new it_format
Resume new it_formatResume new it_format
Resume new it_format
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetup
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
Get started azure- Azure Mobile Services
Get started azure- Azure Mobile ServicesGet started azure- Azure Mobile Services
Get started azure- Azure Mobile Services
 
Android CI and Appium
Android CI and AppiumAndroid CI and Appium
Android CI and Appium
 
Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile Apps
 
300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform300 - Multiplatform Apps on Google Cloud Platform
300 - Multiplatform Apps on Google Cloud Platform
 
CV- Abdul Haneef
CV- Abdul HaneefCV- Abdul Haneef
CV- Abdul Haneef
 

Mehr von Sasha Goldshtein

Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing LandscapeSasha Goldshtein
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerSasha Goldshtein
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF AbyssSasha Goldshtein
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkSasha Goldshtein
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSasha Goldshtein
 
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinC# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinSasha Goldshtein
 
Modern Backends for Mobile Apps
Modern Backends for Mobile AppsModern Backends for Mobile Apps
Modern Backends for Mobile AppsSasha Goldshtein
 
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013Sasha Goldshtein
 
Mastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionMastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionSasha Goldshtein
 
Delivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in MinutesDelivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in MinutesSasha Goldshtein
 
Building Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET BackendBuilding Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET BackendSasha Goldshtein
 
Building iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesBuilding iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesSasha Goldshtein
 
Attacking Web Applications
Attacking Web ApplicationsAttacking Web Applications
Attacking Web ApplicationsSasha Goldshtein
 
First Steps in Android Development
First Steps in Android DevelopmentFirst Steps in Android Development
First Steps in Android DevelopmentSasha Goldshtein
 
First Steps in iOS Development
First Steps in iOS DevelopmentFirst Steps in iOS Development
First Steps in iOS DevelopmentSasha Goldshtein
 

Mehr von Sasha Goldshtein (20)

Modern Linux Tracing Landscape
Modern Linux Tracing LandscapeModern Linux Tracing Landscape
Modern Linux Tracing Landscape
 
The Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF PrimerThe Next Linux Superpower: eBPF Primer
The Next Linux Superpower: eBPF Primer
 
Staring into the eBPF Abyss
Staring into the eBPF AbyssStaring into the eBPF Abyss
Staring into the eBPF Abyss
 
Visual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET FrameworkVisual Studio 2015 and the Next .NET Framework
Visual Studio 2015 and the Next .NET Framework
 
Swift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS XSwift: Apple's New Programming Language for iOS and OS X
Swift: Apple's New Programming Language for iOS and OS X
 
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with XamarinC# Everywhere: Cross-Platform Mobile Apps with Xamarin
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
 
Modern Backends for Mobile Apps
Modern Backends for Mobile AppsModern Backends for Mobile Apps
Modern Backends for Mobile Apps
 
.NET Debugging Workshop
.NET Debugging Workshop.NET Debugging Workshop
.NET Debugging Workshop
 
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
 
Mastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and ProductionMastering IntelliTrace in Development and Production
Mastering IntelliTrace in Development and Production
 
Introduction to RavenDB
Introduction to RavenDBIntroduction to RavenDB
Introduction to RavenDB
 
State of the Platforms
State of the PlatformsState of the Platforms
State of the Platforms
 
Delivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in MinutesDelivering Millions of Push Notifications in Minutes
Delivering Millions of Push Notifications in Minutes
 
Building Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET BackendBuilding Mobile Apps with a Mobile Services .NET Backend
Building Mobile Apps with a Mobile Services .NET Backend
 
Building iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile ServicesBuilding iOS and Android Apps with Mobile Services
Building iOS and Android Apps with Mobile Services
 
Task and Data Parallelism
Task and Data ParallelismTask and Data Parallelism
Task and Data Parallelism
 
What's New in C++ 11?
What's New in C++ 11?What's New in C++ 11?
What's New in C++ 11?
 
Attacking Web Applications
Attacking Web ApplicationsAttacking Web Applications
Attacking Web Applications
 
First Steps in Android Development
First Steps in Android DevelopmentFirst Steps in Android Development
First Steps in Android Development
 
First Steps in iOS Development
First Steps in iOS DevelopmentFirst Steps in iOS Development
First Steps in iOS Development
 

Kürzlich hochgeladen

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Kürzlich hochgeladen (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Windows Azure Mobile Services

  • 1. Sasha Goldshtein CTO, SELA Group @goldshtn blog.sashag.net Windows Azure Mobile Services © Copyright SELA software & Education Labs Ltd. | 14-18 Baruch Hirsch St Bnei Brak, 51202 Israel | www.selagroup.com
  • 2. Who Are We? App Developers What Do We Hate? Backends
  • 3. We need one backend for all our mobile apps, scaled by the cloud Oh, and it should cost about $0-5 / month for a small, simple app
  • 4. Backend as a Service Windows 8 & Windows Phone iOS & Android HTML & JavaScript Data & LINQ queries Server scripts, scheduler Authentication & WAADNEW Custom APINEW Source control and NPMNEW Push, notification hubsNEW
  • 5. Windows Azure Mobile Services Portal Demo
  • 6. Initializing The Mobile Service Client The application key is for development iOS Windows 8 / Windows PhoneIn Android use user purposes only. / production, authentication to limit access to data ms = new MobileServiceClient( [MSClient clientWithApplicationURLString: "https://rentahome.azure-mobile.net" "https://rentahome.azure-mobile.net", "..." /*API key*/); applicationKey:"..."];
  • 7. Accessing Data // Windows 8 and Windows Phone var apartments = await ms.GetTable<Apartment>() .Where(a => a.Bedrooms > 2).ToListAsync(); // Android ms.getTable(Apartment.class).where(). .field("bedrooms").gt(2).execute(...); // iOS NSPredicate *pred = [NSPredicate predicateWithFormat:@"bedrooms > 2"]; [[client getTable:@"apartment"] readWhere:pred completion:^...];
  • 8. Server Scripts CRUD operations can pass through a custom script Use for validation, data enrichment, etc. Scripts are written in JavaScript and run on Node.js Can access several Node modules: request, push, … function insert(item, user, request) { if (item.address.length === 0) { request.respond(400); } else { request.execute(); } }
  • 9. Custom API Add custom HTTP endpoints to your mobile service Very useful for external access exports.post = function(request, response) { sharedHub.send_ad(request.body.message, function(error) { if (error) { response.send(500, 'Error sending ad: ' + error); } else { response.send(200); } }); };
  • 10. Enriching Data with Server Scripts Demo
  • 11. Push Prepare app for push from script On trigger, send push notifications Depends on platform Unfortunately, push API differs for each platform Channel = await PushNotificationChannelManager. push.wns.sendToast02(channel.uri, { text01: "New apartment added", CreatePushNotificationChannelForApplicationAsync(); channelsTable.Insert(new Channel(Channel.Uri)); text02: apartment.address });
  • 12. Notification Hubs Register push messages based on the Blast out templates for push notifications with arbitrary and the tags template custom tags template = var payload{=data: { message: '$(message)' } }; { message : message }; hub.gcm.createTemplateRegistration(request.body.uri, }); hub.send(tag, payload, function(error, outcome) { ...tags, template, registrationComplete);
  • 14. Authentication // iOS if (!client.currentUser) { [self presentViewController:[client loginViewControllerWithProvider:@"twitter" completion:(MSUser *user, NSError *err) ... ] animated:YES]; } // Android if (client.getCurrentUser() != null) { client.login( MobileServiceAuthenticationProvider.Twitter, new UserAuthenticationCallback() ...); }
  • 16. Summary Windows Azure Mobile Services provide a powerful and customizable backend for your mobile apps Code available at http://github.com/goldshtn/rentahome
  • 17. Questions Sasha Goldshtein CTO, SELA Group @goldshtn blog.sashag.net

Hinweis der Redaktion

  1. Open the portal, show the general service settings and the dashboard that kind of gives you an app skeleton for free.Then, show the data tab with the tables we have, and basic data manipulation on these tables.Mention the concept of server scripts on CRUD operations – but don’t show these scripts yet.
  2. Show the insert script on the apartments table.Explain that we’re using geocoding to obtain coordinates for the apartment, and we’re also pulling some information from Twitter (the user’s display name) – this will be explained later when we discuss authentication.
  3. Show the channels table that contains the channels and the device types – this is necessary because the push semantics are different for each platform.Show the insert script on the apartments table again, and explain that it uses four different methods of the push module to deliver the push to the appropriate platform.
  4. Demo the full app experience on all four platforms: login, add a new apartment, show push on other devices, delete an apartment, view maps (based on coordinates provided by the server).