SlideShare a Scribd company logo
1 of 13
Обзор MS Azure Mobile Services: 
использование custom behavior, SDKs, API и т.д. 
Матюкевич Сергей 
.NET Developer в Altoros 
www.altoros.com
Features 
 Simple and fast back-end development for mobile 
apps 
 Easy scaling 
 SQL Server and MongoDB support 
 A variety of handy in-built features (e.g., single 
sign-on with Active Directory, Facebook, Twitter 
and other services, push notifications, etc.) 
 .NET and Node.js back-end support 
Подробнее: azure.microsoft.com/en-us/services/mobile-services
Drawbacks 
 Limited extensibility
Create a mobile service
Create DB schema and register Table 
operations
Add some custom behavior 
function insert(item, user, request) { 
var todoItemTable = tables.getTable('TodoItem'); 
if (request.parameters.duplicateText === 'false') { 
todoItemTable.where({ 
text: item.text, 
complete: false 
}).read({ 
success: insertItemIfNotComplete 
}); 
} else { 
request.execute(); 
} 
function insertItemIfNotComplete(existingItems) { 
if (existingItems.length > 0) { 
request.respond(statusCodes.CONFLICT, 
"Duplicate items are not allowed."); 
} else { 
// Insert the item as normal. 
request.execute(); 
}
Use one of the provided SDKs 
(JS in the example) 
<script src='http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.1.2.min.js'></script> 
var MobileServiceClient = WindowsAzure.MobileServiceClient; 
var client = new MobileServiceClient('AppUrl', 'AppKey'); 
var todoItemTable = client.getTable('todoitem'); 
var query = todoItemTable.where({ 
complete: false 
}).read().done(function (results) { 
alert(JSON.stringify(results)); 
}, function (err) { 
alert("Error: " + err); 
});
Observe actual requests to API 
GET /tables/todoitem?$filter=(complete+eq+false) HTTP/1.1 
SELECT * 
FROM TodoItem 
WHERE ISNULL(complete, 0) = 0
Use some additional features like 
sorting, filtering, and pagination 
query.where({ 
complete: false 
}) 
.select('id', 'assignee') 
.orderBy('assignee') 
.take(10) 
.read().done(function (results) { 
alert(JSON.stringify(results)); 
}, function (err) { 
alert("Error: " + err);
Create custom API
Authentication 
 In-built identity providers (Microsoft Account, 
Facebook, Twitter, Google, Azure Active Directory) 
 A possibility to implement custom identity provider 
 A possibility to restrict access to the tables per 
operation (Read, Insert, Update, Delete) 
 A possibility to work with a user identity in custom 
scripts to implement more advanced authorization 
logic
Additional services 
 Schedule background jobs 
 Send e-mails and SMS 
 Send push notifications 
 Monitor performance 
 ...
Больше материалов – в наших аккаунтах в социальных сетях: 
slideshare.net/AltorosBY 
facebook.com/AltorosDevelopment 
twitter.com/AltorosBY

More Related Content

What's hot

HTML5 and Mobile
HTML5 and MobileHTML5 and Mobile
HTML5 and Mobile
doodoofish
 

What's hot (14)

JQuery Overview
JQuery OverviewJQuery Overview
JQuery Overview
 
Building an End-to-End AngularJS Application
Building an End-to-End AngularJS ApplicationBuilding an End-to-End AngularJS Application
Building an End-to-End AngularJS Application
 
Built in filters
Built in filtersBuilt in filters
Built in filters
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and Combine
 
Emberjs as a rails_developer
Emberjs as a rails_developer Emberjs as a rails_developer
Emberjs as a rails_developer
 
How routing works in angular js
How routing works in angular jsHow routing works in angular js
How routing works in angular js
 
Architecture, Auth, and Routing with uiRouter
Architecture, Auth, and Routing with uiRouterArchitecture, Auth, and Routing with uiRouter
Architecture, Auth, and Routing with uiRouter
 
Ember.js for Big Profit
Ember.js for Big ProfitEmber.js for Big Profit
Ember.js for Big Profit
 
Adventures in Facebook®: Lessons Learned from a Landmark webOS App
Adventures in Facebook®: Lessons Learned from a Landmark webOS AppAdventures in Facebook®: Lessons Learned from a Landmark webOS App
Adventures in Facebook®: Lessons Learned from a Landmark webOS App
 
Exemplo de Fluxograma de Arquitetura aplicativo
Exemplo de Fluxograma de Arquitetura aplicativoExemplo de Fluxograma de Arquitetura aplicativo
Exemplo de Fluxograma de Arquitetura aplicativo
 
How To Manage API Request with AXIOS on a React Native App
How To Manage API Request with AXIOS on a React Native AppHow To Manage API Request with AXIOS on a React Native App
How To Manage API Request with AXIOS on a React Native App
 
HTML5 and Mobile
HTML5 and MobileHTML5 and Mobile
HTML5 and Mobile
 
Designing REST API
Designing REST APIDesigning REST API
Designing REST API
 
I Love API's 2015 Conference Overview
I Love API's 2015 Conference OverviewI Love API's 2015 Conference Overview
I Love API's 2015 Conference Overview
 

Viewers also liked

Action Controller Overview, Season 2
Action Controller Overview, Season 2Action Controller Overview, Season 2
Action Controller Overview, Season 2
RORLAB
 
Strategy-Based Instruction in English Class
Strategy-Based Instruction in English ClassStrategy-Based Instruction in English Class
Strategy-Based Instruction in English Class
Bangkok University
 

Viewers also liked (8)

Statecharts with Stativus
Statecharts with StativusStatecharts with Stativus
Statecharts with Stativus
 
Action Controller Overview, Season 2
Action Controller Overview, Season 2Action Controller Overview, Season 2
Action Controller Overview, Season 2
 
Test Driven Development with Chef
Test Driven Development with ChefTest Driven Development with Chef
Test Driven Development with Chef
 
Metaprogramming With Ruby
Metaprogramming With RubyMetaprogramming With Ruby
Metaprogramming With Ruby
 
Concurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple SpacesConcurrent Programming with Ruby and Tuple Spaces
Concurrent Programming with Ruby and Tuple Spaces
 
Strategy-Based Instruction in English Class
Strategy-Based Instruction in English ClassStrategy-Based Instruction in English Class
Strategy-Based Instruction in English Class
 
Making Young Learners Independent the LEGO method
Making Young Learners Independent the LEGO methodMaking Young Learners Independent the LEGO method
Making Young Learners Independent the LEGO method
 
Teacing by Principles - Form - Focused Instruction - Chapter 20
Teacing by Principles - Form - Focused Instruction - Chapter 20Teacing by Principles - Form - Focused Instruction - Chapter 20
Teacing by Principles - Form - Focused Instruction - Chapter 20
 

Similar to Microsoft Azure Mobile Services

CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on Android
Sven Haiges
 
node.js practical guide to serverside javascript
node.js practical guide to serverside javascriptnode.js practical guide to serverside javascript
node.js practical guide to serverside javascript
Eldar Djafarov
 
20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介
Justin Lee
 

Similar to Microsoft Azure Mobile Services (20)

A different thought angular js part-3
A different thought   angular js part-3A different thought   angular js part-3
A different thought angular js part-3
 
Knockoutjs UG meeting presentation
Knockoutjs UG meeting presentationKnockoutjs UG meeting presentation
Knockoutjs UG meeting presentation
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
Writing HTML5 Web Apps using Backbone.js and GAE
Writing HTML5 Web Apps using Backbone.js and GAEWriting HTML5 Web Apps using Backbone.js and GAE
Writing HTML5 Web Apps using Backbone.js and GAE
 
Reduxing like a pro
Reduxing like a proReduxing like a pro
Reduxing like a pro
 
Building Large jQuery Applications
Building Large jQuery ApplicationsBuilding Large jQuery Applications
Building Large jQuery Applications
 
Intoduction on Playframework
Intoduction on PlayframeworkIntoduction on Playframework
Intoduction on Playframework
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 
Intoduction to Play Framework
Intoduction to Play FrameworkIntoduction to Play Framework
Intoduction to Play Framework
 
Managing JavaScript Dependencies With RequireJS
Managing JavaScript Dependencies With RequireJSManaging JavaScript Dependencies With RequireJS
Managing JavaScript Dependencies With RequireJS
 
Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
 
Cnam azure 2014 mobile services
Cnam azure 2014   mobile servicesCnam azure 2014   mobile services
Cnam azure 2014 mobile services
 
CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on Android
 
node.js practical guide to serverside javascript
node.js practical guide to serverside javascriptnode.js practical guide to serverside javascript
node.js practical guide to serverside javascript
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介
 
Android+ax+app+wcf
Android+ax+app+wcfAndroid+ax+app+wcf
Android+ax+app+wcf
 

More from Olga Lavrentieva

«Обзор возможностей Open cv»
«Обзор возможностей Open cv»«Обзор возможностей Open cv»
«Обзор возможностей Open cv»
Olga Lavrentieva
 

More from Olga Lavrentieva (20)

15 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v415 10-22 altoros-fact_sheet_st_v4
15 10-22 altoros-fact_sheet_st_v4
 
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive PerformanceСергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
Сергей Ковалёв (Altoros): Practical Steps to Improve Apache Hive Performance
 
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности CassandraАндрей Козлов (Altoros): Оптимизация производительности Cassandra
Андрей Козлов (Altoros): Оптимизация производительности Cassandra
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущее
 
Brug - Web push notification
Brug  - Web push notificationBrug  - Web push notification
Brug - Web push notification
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
 
Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"Максим Жилинский: "Контейнеры: под капотом"
Максим Жилинский: "Контейнеры: под капотом"
 
Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"Александр Протасеня: "PayPal. Различные способы интеграции"
Александр Протасеня: "PayPal. Различные способы интеграции"
 
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"Сергей Черничков: "Интеграция платежных систем в .Net приложения"
Сергей Черничков: "Интеграция платежных систем в .Net приложения"
 
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
Антон Шемерей «Single responsibility principle в руби или почему instanceclas...
 
Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»Егор Воробьёв: «Ruby internals»
Егор Воробьёв: «Ruby internals»
 
Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»Андрей Колешко «Что не так с Rails»
Андрей Колешко «Что не так с Rails»
 
Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»
 
Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»Сергей Алексеев «Парное программирование. Удаленно»
Сергей Алексеев «Парное программирование. Удаленно»
 
«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»«Почему Spark отнюдь не так хорош»
«Почему Spark отнюдь не так хорош»
 
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
«Cassandra data modeling – моделирование данных для NoSQL СУБД Cassandra»
 
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
«Практика построения высокодоступного решения на базе Cloud Foundry Paas»
 
«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»«Дизайн продвинутых нереляционных схем для Big Data»
«Дизайн продвинутых нереляционных схем для Big Data»
 
«Обзор возможностей Open cv»
«Обзор возможностей Open cv»«Обзор возможностей Open cv»
«Обзор возможностей Open cv»
 
«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Microsoft Azure Mobile Services

  • 1. Обзор MS Azure Mobile Services: использование custom behavior, SDKs, API и т.д. Матюкевич Сергей .NET Developer в Altoros www.altoros.com
  • 2. Features  Simple and fast back-end development for mobile apps  Easy scaling  SQL Server and MongoDB support  A variety of handy in-built features (e.g., single sign-on with Active Directory, Facebook, Twitter and other services, push notifications, etc.)  .NET and Node.js back-end support Подробнее: azure.microsoft.com/en-us/services/mobile-services
  • 3. Drawbacks  Limited extensibility
  • 4. Create a mobile service
  • 5. Create DB schema and register Table operations
  • 6. Add some custom behavior function insert(item, user, request) { var todoItemTable = tables.getTable('TodoItem'); if (request.parameters.duplicateText === 'false') { todoItemTable.where({ text: item.text, complete: false }).read({ success: insertItemIfNotComplete }); } else { request.execute(); } function insertItemIfNotComplete(existingItems) { if (existingItems.length > 0) { request.respond(statusCodes.CONFLICT, "Duplicate items are not allowed."); } else { // Insert the item as normal. request.execute(); }
  • 7. Use one of the provided SDKs (JS in the example) <script src='http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.1.2.min.js'></script> var MobileServiceClient = WindowsAzure.MobileServiceClient; var client = new MobileServiceClient('AppUrl', 'AppKey'); var todoItemTable = client.getTable('todoitem'); var query = todoItemTable.where({ complete: false }).read().done(function (results) { alert(JSON.stringify(results)); }, function (err) { alert("Error: " + err); });
  • 8. Observe actual requests to API GET /tables/todoitem?$filter=(complete+eq+false) HTTP/1.1 SELECT * FROM TodoItem WHERE ISNULL(complete, 0) = 0
  • 9. Use some additional features like sorting, filtering, and pagination query.where({ complete: false }) .select('id', 'assignee') .orderBy('assignee') .take(10) .read().done(function (results) { alert(JSON.stringify(results)); }, function (err) { alert("Error: " + err);
  • 11. Authentication  In-built identity providers (Microsoft Account, Facebook, Twitter, Google, Azure Active Directory)  A possibility to implement custom identity provider  A possibility to restrict access to the tables per operation (Read, Insert, Update, Delete)  A possibility to work with a user identity in custom scripts to implement more advanced authorization logic
  • 12. Additional services  Schedule background jobs  Send e-mails and SMS  Send push notifications  Monitor performance  ...
  • 13. Больше материалов – в наших аккаунтах в социальных сетях: slideshare.net/AltorosBY facebook.com/AltorosDevelopment twitter.com/AltorosBY