SlideShare une entreprise Scribd logo
1  sur  31
Building a chat app with
Windows Azure Mobile Services
29 march 2014, Timisoara
Global Windows Azure Bootcamp
Flavius Radu Demian
Software developer, Avaelgo
I really like programming, especially web and mobile
Please feel free to ask questions any time and don’t be shy
Knowledge is power 
flaviusdemian91@yahoo.com | flavius.demian@gmail.com | @slowarad
Expectations
Learn how to use mobile services
Learn when to use mobile services
Learn the strengths and limitations of mobile services
Learn that mobile services wants to be friend with everyone
Make you curious  => go home and play with it
Agenda
Overview
Storage
Custom API
Authentication & Authorization
Scheduler
Diagnostics & Logging
Scale
Cool Third Party Add-Ons
Design of the chat app
Review
A visual representation
Overview
Clients for:
Windows Store, Windows Phone 8, iOS, Android, Javascript
You can add a cloud backend to your app in minutes without
the need for server code
The backend login can be written in node.js or c# (preview)
The SDK’s are open source (on github) , it’s integrated with GIT
Overview
Easily manipulate data (filters)
Easily authenticate users
Send push notifications
Integrate your favorite services
Great community
Server side logic
Node.js
Is a software platform for scalable server-side and networking
applications
Applications are written in JavaScript can be run within the
Node.js runtime on Windows, Mac OS X and Linux with no
changes
It is written in
Storage
Windows Azure SQL Database
Dynamic schema on/off
REST API generated per table -> Data centric platform
Access your data through :
Portal, SQL Management Studio, Rest API
Storage
JSON to SQL data types conversions
“Data Centric” Server Logic
Backend runs Node JS on small azure VM’s
“Interceptors” exposed for all CRUD requests to all tables
You get access to a predefined set of node modules :
request, console, push.*, tables, statusCodes, azure, mssql
Custom API
You can write your own API very easily and quickly
If you need you can add extra Node JS packages
exports.get = function(req, res) { /* code here */ }
exports.post = function(req, res) {/* code here */ }
Small demo time part 1
Login in the portal and create a mobile service
Set GIT credentials and get repository
Create some tables, show interceptors
Create a custom API
See list of predefined packages -> click here
Push notifications
The notification provider server maintains a "persistent IP
connection" with your device in order to deliver notifications
when the app needs to 'say' something to you.
Payload limited, specific to platform
The global push object is used to send push notifications
Success and Error callbacks are provided
Push notifications
Platform specific providers:
Push notifications overview
1) The app requests a channel from the
Notifications Provider
2) The app sends the channel url to
Mobile Services which stores it
3) When a notification is sent, Mobile
Services executes something like this:
push.mpns.send(channelUri….)
Windows Phone case study
4) The notification goes through the Notifications Provider which forwards it to the device
Authentication & Authorization
You can make provide quick auth in your app with
Facebook Twitter Google Microsoft
and Windows Azure Active Directory
Authorization
Table level authorization for CRUD operation
Everyone -> any request by anyone is accepted
Anyone with Application Key -> app key is sent on the request
distributed (default)
Authenticated Users -> users authenticated with one of the
mentioned identity providers
Authorization
Table level authorization for CRUD operation (*cont)
Scripts and Admins -> registers scripts or requests via the
master key
The application key is not secure and should not be used to
authenticate users of your app, especially in production
Scheduler
Run jobs on simple or complex recurring schedules such as:
1) Send broadcast push notifications
2) Processing or resizing stored images
Invoking a Web Service over HTTP/s
Post a message to a Windows Azure Storage Queue, etc
Diagnostics and Logging
View diagnostics directly in the portal including :
1) API calls
2) CPU time
3) Data Out
LoggingConsole.* operations like console.log and console.error
provide an easy means to debug your server side scripts.
Scale
Compute - scale between shared and reserved mode
Increase/decrease your instance count
Storage ability to scale out your mobile service tenant(s) to a
dedicated SQL DB
Ability to scale up your SQL DB from web through business to
150GB
Small demo time part 2
Push notifications
Authentication
Authorization
Diagnostics
Logging
Scale
Cool Third Party Add-Ons
Real time communication Emails SMS
Design - Database
Tables: users, channels, messages
Channel
ChannelUri
RegistrationId
UserProviderId
DeviceType
Message
FromId
ToId
DeviceType
FromName
FromPicture
User
ProviderId
Name
Picture
AccessToken
AccessTokenSecret
Design - Functionalities
Integrate Azure Mobile Services
Integrate with social media providers
Store data to cloud after auth ( user and channel related data )
Retrieve the rest of the users you can talk to (custom API)
Send message functionality
Receive message functionality
Logout functionality
Design – send push to web
Let’s show some code
But first let’s see a short teaser
Review of Azure Mobile Services
Create a scalable and secure backend for your Windows, Android
and iOS apps
Store data in the cloud
Easily authenticate users
Send push notifications
Review of Azure Mobile Services
Consume your favorite services
Monitor, alert, and auto scale
Cheap and FREE in some cases -> click here
Preview: No availability Service Level Agreement
Paid: General Availability: 99.9%
Thanks
Any questions?

Contenu connexe

Tendances

SPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You WantSPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You WantNCCOMMS
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...BlueMetalInc
 
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
O365Con18 - Introduction to Azure Web Applications  - Eric ShuppsO365Con18 - Introduction to Azure Web Applications  - Eric Shupps
O365Con18 - Introduction to Azure Web Applications - Eric ShuppsNCCOMMS
 
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나영욱 김
 
Deeper into Windows 10 Development
Deeper into Windows 10 DevelopmentDeeper into Windows 10 Development
Deeper into Windows 10 DevelopmentShahed Chowdhuri
 
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows AzureMigrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows AzureEric Shupps
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Ivo Jansch
 
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...Windows Developer
 
Introduction to azure web applications for office and share point developers
Introduction to azure web applications for office and share point developersIntroduction to azure web applications for office and share point developers
Introduction to azure web applications for office and share point developersJoAnna Cheshire
 
Highly Scalable User Experience Design: Vaadin and Magnolia
Highly Scalable User Experience Design: Vaadin and MagnoliaHighly Scalable User Experience Design: Vaadin and Magnolia
Highly Scalable User Experience Design: Vaadin and MagnoliaMagnolia
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienChris O'Brien
 
Automate+ Final Presentation
Automate+ Final PresentationAutomate+ Final Presentation
Automate+ Final PresentationSanat Maharjan
 
Introduction to Azure Web Applications
Introduction to Azure Web ApplicationsIntroduction to Azure Web Applications
Introduction to Azure Web ApplicationsJoAnna Cheshire
 
Web driver interface
Web driver interfaceWeb driver interface
Web driver interfaceDucat
 
Plugin vs Workflow in Microsoft Dynamics CRM
Plugin vs Workflow in Microsoft Dynamics CRMPlugin vs Workflow in Microsoft Dynamics CRM
Plugin vs Workflow in Microsoft Dynamics CRMAli Sharifi
 
SPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web ApplicationsSPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web ApplicationsNCCOMMS
 

Tendances (20)

SPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You WantSPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You Want
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
O365Con18 - Introduction to Azure Web Applications  - Eric ShuppsO365Con18 - Introduction to Azure Web Applications  - Eric Shupps
O365Con18 - Introduction to Azure Web Applications - Eric Shupps
 
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나
20140424 Android / iOS 개발자를 위한 Microsoft BaaS 세미나
 
Deeper into Windows 10 Development
Deeper into Windows 10 DevelopmentDeeper into Windows 10 Development
Deeper into Windows 10 Development
 
Vaadin codemotion 2014
Vaadin codemotion 2014Vaadin codemotion 2014
Vaadin codemotion 2014
 
Power Apps community call-June 2020
Power Apps community call-June 2020Power Apps community call-June 2020
Power Apps community call-June 2020
 
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows AzureMigrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
Migrating Legacy On-Premise Applications to SharePoint Online and Windows Azure
 
Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)Building an SSO platform in php (Zendcon 2010)
Building an SSO platform in php (Zendcon 2010)
 
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
Build 2017 - B8013 - Developing on Windows Server: Innovation for today and t...
 
Introduction to azure web applications for office and share point developers
Introduction to azure web applications for office and share point developersIntroduction to azure web applications for office and share point developers
Introduction to azure web applications for office and share point developers
 
Highly Scalable User Experience Design: Vaadin and Magnolia
Highly Scalable User Experience Design: Vaadin and MagnoliaHighly Scalable User Experience Design: Vaadin and Magnolia
Highly Scalable User Experience Design: Vaadin and Magnolia
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'Brien
 
Vaadin NYC Meetup
Vaadin NYC MeetupVaadin NYC Meetup
Vaadin NYC Meetup
 
Automate+ Final Presentation
Automate+ Final PresentationAutomate+ Final Presentation
Automate+ Final Presentation
 
Introduction to Azure Web Applications
Introduction to Azure Web ApplicationsIntroduction to Azure Web Applications
Introduction to Azure Web Applications
 
Web driver interface
Web driver interfaceWeb driver interface
Web driver interface
 
Plugin vs Workflow in Microsoft Dynamics CRM
Plugin vs Workflow in Microsoft Dynamics CRMPlugin vs Workflow in Microsoft Dynamics CRM
Plugin vs Workflow in Microsoft Dynamics CRM
 
SPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web ApplicationsSPUnite17 Introduction to Azure Web Applications
SPUnite17 Introduction to Azure Web Applications
 
Mule esb stripe
Mule esb stripeMule esb stripe
Mule esb stripe
 

Similaire à Building a chat app with windows azure mobile

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
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureKen Cenerelli
 
Windows azure mobile services and windows phone 8
Windows azure mobile services and windows phone 8Windows azure mobile services and windows phone 8
Windows azure mobile services and windows phone 8Karthikeyan Anbarasan (AK)
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricSpiffy
 
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
 
Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champKumton Suttiraksiri
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesAymeric Weinbach
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupratneshsinghparihar
 
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
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile ServicesMarco Parenzan
 
Introducing Windows Azure
Introducing Windows Azure Introducing Windows Azure
Introducing Windows Azure Mohamed Samy
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with AzureKris Wagner
 
Windows azure mobile services from start to rest
Windows azure mobile services from start to restWindows azure mobile services from start to rest
Windows azure mobile services from start to restAidan Casey
 
Build intelligent solutions using ms azure
Build intelligent solutions using ms azureBuild intelligent solutions using ms azure
Build intelligent solutions using ms azureMostafa
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesAidan Casey
 
Building a mobile application for dot netnuke v3
Building a mobile application for dot netnuke v3Building a mobile application for dot netnuke v3
Building a mobile application for dot netnuke v3brchapman
 
Azure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphonesAzure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphonesMarco Parenzan
 

Similaire à Building a chat app with windows azure mobile (20)

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
 
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 and windows phone 8
Windows azure mobile services and windows phone 8Windows azure mobile services and windows phone 8
Windows azure mobile services and windows phone 8
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App Fabric
 
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
 
Pragatheswarakumar_v1.0
Pragatheswarakumar_v1.0Pragatheswarakumar_v1.0
Pragatheswarakumar_v1.0
 
Microsoft graph and power platform champ
Microsoft graph and power platform   champMicrosoft graph and power platform   champ
Microsoft graph and power platform champ
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
 
App V
App VApp V
App V
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetup
 
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)
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services
 
Introducing Windows Azure
Introducing Windows Azure Introducing Windows Azure
Introducing Windows Azure
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
 
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 from start to rest
Windows azure mobile services from start to restWindows azure mobile services from start to rest
Windows azure mobile services from start to rest
 
Build intelligent solutions using ms azure
Build intelligent solutions using ms azureBuild intelligent solutions using ms azure
Build intelligent solutions using ms azure
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile services
 
Building a mobile application for dot netnuke v3
Building a mobile application for dot netnuke v3Building a mobile application for dot netnuke v3
Building a mobile application for dot netnuke v3
 
Azure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphonesAzure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphones
 

Plus de Flavius-Radu Demian

C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossFlavius-Radu Demian
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossFlavius-Radu Demian
 
ALM on the shoulders of Giants - Visual Studio Online
ALM on the shoulders of Giants - Visual Studio OnlineALM on the shoulders of Giants - Visual Studio Online
ALM on the shoulders of Giants - Visual Studio OnlineFlavius-Radu Demian
 

Plus de Flavius-Radu Demian (8)

Mobile growth with Xamarin
Mobile growth with XamarinMobile growth with Xamarin
Mobile growth with Xamarin
 
MVVM frameworks - MvvmCross
MVVM frameworks - MvvmCrossMVVM frameworks - MvvmCross
MVVM frameworks - MvvmCross
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
 
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCrossC# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
C# everywhere - Building Cross-Platform Apps with Xamarin and MvvmCross
 
ALM on the shoulders of Giants - Visual Studio Online
ALM on the shoulders of Giants - Visual Studio OnlineALM on the shoulders of Giants - Visual Studio Online
ALM on the shoulders of Giants - Visual Studio Online
 
Universal apps
Universal appsUniversal apps
Universal apps
 
Security in windows azure
Security in windows azureSecurity in windows azure
Security in windows azure
 
Fundaments of Knockout js
Fundaments of Knockout jsFundaments of Knockout js
Fundaments of Knockout js
 

Dernier

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
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 WorkerThousandEyes
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
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 educationjfdjdjcjdnsjd
 
"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 ...Zilliz
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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
 
"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 ...
 

Building a chat app with windows azure mobile

  • 1. Building a chat app with Windows Azure Mobile Services 29 march 2014, Timisoara Global Windows Azure Bootcamp
  • 2. Flavius Radu Demian Software developer, Avaelgo I really like programming, especially web and mobile Please feel free to ask questions any time and don’t be shy Knowledge is power  flaviusdemian91@yahoo.com | flavius.demian@gmail.com | @slowarad
  • 3. Expectations Learn how to use mobile services Learn when to use mobile services Learn the strengths and limitations of mobile services Learn that mobile services wants to be friend with everyone Make you curious  => go home and play with it
  • 4. Agenda Overview Storage Custom API Authentication & Authorization Scheduler Diagnostics & Logging Scale Cool Third Party Add-Ons Design of the chat app Review
  • 6. Overview Clients for: Windows Store, Windows Phone 8, iOS, Android, Javascript You can add a cloud backend to your app in minutes without the need for server code The backend login can be written in node.js or c# (preview) The SDK’s are open source (on github) , it’s integrated with GIT
  • 7. Overview Easily manipulate data (filters) Easily authenticate users Send push notifications Integrate your favorite services Great community
  • 8. Server side logic Node.js Is a software platform for scalable server-side and networking applications Applications are written in JavaScript can be run within the Node.js runtime on Windows, Mac OS X and Linux with no changes It is written in
  • 9. Storage Windows Azure SQL Database Dynamic schema on/off REST API generated per table -> Data centric platform Access your data through : Portal, SQL Management Studio, Rest API
  • 10. Storage JSON to SQL data types conversions
  • 11. “Data Centric” Server Logic Backend runs Node JS on small azure VM’s “Interceptors” exposed for all CRUD requests to all tables You get access to a predefined set of node modules : request, console, push.*, tables, statusCodes, azure, mssql
  • 12. Custom API You can write your own API very easily and quickly If you need you can add extra Node JS packages exports.get = function(req, res) { /* code here */ } exports.post = function(req, res) {/* code here */ }
  • 13. Small demo time part 1 Login in the portal and create a mobile service Set GIT credentials and get repository Create some tables, show interceptors Create a custom API See list of predefined packages -> click here
  • 14. Push notifications The notification provider server maintains a "persistent IP connection" with your device in order to deliver notifications when the app needs to 'say' something to you. Payload limited, specific to platform The global push object is used to send push notifications Success and Error callbacks are provided
  • 16. Push notifications overview 1) The app requests a channel from the Notifications Provider 2) The app sends the channel url to Mobile Services which stores it 3) When a notification is sent, Mobile Services executes something like this: push.mpns.send(channelUri….) Windows Phone case study 4) The notification goes through the Notifications Provider which forwards it to the device
  • 17. Authentication & Authorization You can make provide quick auth in your app with Facebook Twitter Google Microsoft and Windows Azure Active Directory
  • 18. Authorization Table level authorization for CRUD operation Everyone -> any request by anyone is accepted Anyone with Application Key -> app key is sent on the request distributed (default) Authenticated Users -> users authenticated with one of the mentioned identity providers
  • 19. Authorization Table level authorization for CRUD operation (*cont) Scripts and Admins -> registers scripts or requests via the master key The application key is not secure and should not be used to authenticate users of your app, especially in production
  • 20. Scheduler Run jobs on simple or complex recurring schedules such as: 1) Send broadcast push notifications 2) Processing or resizing stored images Invoking a Web Service over HTTP/s Post a message to a Windows Azure Storage Queue, etc
  • 21. Diagnostics and Logging View diagnostics directly in the portal including : 1) API calls 2) CPU time 3) Data Out LoggingConsole.* operations like console.log and console.error provide an easy means to debug your server side scripts.
  • 22. Scale Compute - scale between shared and reserved mode Increase/decrease your instance count Storage ability to scale out your mobile service tenant(s) to a dedicated SQL DB Ability to scale up your SQL DB from web through business to 150GB
  • 23. Small demo time part 2 Push notifications Authentication Authorization Diagnostics Logging Scale
  • 24. Cool Third Party Add-Ons Real time communication Emails SMS
  • 25. Design - Database Tables: users, channels, messages Channel ChannelUri RegistrationId UserProviderId DeviceType Message FromId ToId DeviceType FromName FromPicture User ProviderId Name Picture AccessToken AccessTokenSecret
  • 26. Design - Functionalities Integrate Azure Mobile Services Integrate with social media providers Store data to cloud after auth ( user and channel related data ) Retrieve the rest of the users you can talk to (custom API) Send message functionality Receive message functionality Logout functionality
  • 27. Design – send push to web
  • 28. Let’s show some code But first let’s see a short teaser
  • 29. Review of Azure Mobile Services Create a scalable and secure backend for your Windows, Android and iOS apps Store data in the cloud Easily authenticate users Send push notifications
  • 30. Review of Azure Mobile Services Consume your favorite services Monitor, alert, and auto scale Cheap and FREE in some cases -> click here Preview: No availability Service Level Agreement Paid: General Availability: 99.9%