SlideShare uma empresa Scribd logo
Mobile Services 
Ivan Paulovich | MVP ASP.NET 
http://www.100loop.com
Ivan Paulovich
Mobile Services 
• Monitoramento e gerenciamento 24x7 
• SSO com Active Directory, Facebook, Twitter, e Google 
• Push notifications 
• Dados em SQL, Table Storage, e MongoDB 
• Consome Office 365 e SharePoint 
• Apps offline podem sincronizar com a núvem
Principais Componentes 
Envio de Notificações 
Lógica no Servidor 
Autenticação e Autorização Armazenamento de Dados 
Agendamento de Tarefas 
Logs e Diagnósticos 
Escalabilidade
Introdução ao Mobile Services 
• Apresentação do Painel de Gerenciamento 
• https://manage.windowsazure.com/ 
• Criação de tabelas 
• Download de exemplos de códigos
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Demo
Autenticação e Autorização 
• Autenticação integrada a provedores 
• Autorização granular
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Demo
Tarefas Agendadas
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Demo
Chamar método de uma API
Windows Azure Mobile Services InfoTech 2014
Integração com Git
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Demo
Scripts de Servidor
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
Demo
Referências 
SDKs 
http://azure.microsoft.com/en-us/downloads/ 
Documentação do Mobile Services em Português 
http://azure.microsoft.com/pt-br/documentation/services/mobile-services/
Obrigado! 
http://fb.com/ivan.paulovich @ivanpaulovich 
ivan@100loop.com http://www.100loop.com

Mais conteúdo relacionado

PPTX
WebHooks no ASP.NET
PPTX
OneDay Baixada 2015 - Desenvolvimento para SharePoint
PPTX
Trabalhando com WebHooks no ASP.NET
PPTX
SharePoint Framework - Uma plataforma aberta e conectada
PPTX
Cenários de utilização do SharePoint com Azure
PDF
Separando a regra de negócios do Rails
PPTX
Integração entre o SharePoint e o Azure utilizando BCS - Azure Tech Nights
PPTX
Azure api apps – entendendo o que é azure app service
WebHooks no ASP.NET
OneDay Baixada 2015 - Desenvolvimento para SharePoint
Trabalhando com WebHooks no ASP.NET
SharePoint Framework - Uma plataforma aberta e conectada
Cenários de utilização do SharePoint com Azure
Separando a regra de negócios do Rails
Integração entre o SharePoint e o Azure utilizando BCS - Azure Tech Nights
Azure api apps – entendendo o que é azure app service

Mais procurados (6)

PPTX
Conhecendo SharePoint - Anhanguera IT Summit 2015
PPTX
Azure app service
PDF
WSO2 - Portfólio de Produtos, Soluções e Suportes
PDF
Server Plugins - Team Foundation Server
PPTX
Global Azure Bootcamp 2015 Curitiba
PPTX
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
Conhecendo SharePoint - Anhanguera IT Summit 2015
Azure app service
WSO2 - Portfólio de Produtos, Soluções e Suportes
Server Plugins - Team Foundation Server
Global Azure Bootcamp 2015 Curitiba
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
Anúncio

Destaque (9)

PPTX
Construindo Apps Com SignalR
PPTX
Construindo apps de tempo real com SignalR
PPTX
Construindo Apps com ASP.NET SignalR
PPTX
Conhecendo os recursos do ASP.NET Web API
PPTX
Levando sua aplicação para a nuvem
PPTX
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
PPTX
Mercado de ti e suas oportunidades
KEY
Mercado de TI: Carreiras, atuação e formação
PDF
Study: The Future of VR, AR and Self-Driving Cars
Construindo Apps Com SignalR
Construindo apps de tempo real com SignalR
Construindo Apps com ASP.NET SignalR
Conhecendo os recursos do ASP.NET Web API
Levando sua aplicação para a nuvem
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Mercado de ti e suas oportunidades
Mercado de TI: Carreiras, atuação e formação
Study: The Future of VR, AR and Self-Driving Cars
Anúncio

Semelhante a Windows Azure Mobile Services InfoTech 2014 (10)

PPTX
Deep dive into Windows Azure Mobile Services - Ricardo Costa
PDF
Plugue seu Aplicativo a Nuvem no The Developers Conference, Mobile Cloud Hack...
PDF
Plugue seu Aplicativo a Nuvem no Codificando Night Week 2016
PPTX
Azure mobile services
PPT
Windows Phone 7 & Windows Azure
PPTX
GWAB 2014 - Brasília - Explorando o poder do SaaS no Azure
PDF
OWASP Mobile Top 10
PDF
Plugue seu Aplicativo a Nuvem no The Developers Conference, Florianópolis 2016
PPTX
Segurança em aplicativos móveis de comunicação - Cnasi 2016
PDF
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Plugue seu Aplicativo a Nuvem no The Developers Conference, Mobile Cloud Hack...
Plugue seu Aplicativo a Nuvem no Codificando Night Week 2016
Azure mobile services
Windows Phone 7 & Windows Azure
GWAB 2014 - Brasília - Explorando o poder do SaaS no Azure
OWASP Mobile Top 10
Plugue seu Aplicativo a Nuvem no The Developers Conference, Florianópolis 2016
Segurança em aplicativos móveis de comunicação - Cnasi 2016
OWASP Mobile Top 10 - Principais Riscos no Desenvolvimento Seguro de Aplicaçõ...

Mais de Ivan Paulovich (13)

PDF
DDD Tactical Design with Clean Architecture - Ivan Paulovich
PDF
Clean Architecture Essentials - Stockholm Software Craftsmanship
PDF
Clean Architecture Essentials @ivanpaulovich
PPTX
Building rich domain models with ddd and tdd ivan paulovich - betsson
PPTX
Moving to Microservices
PPTX
Produzindo e consumindo um stream de eventos
PDF
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
PDF
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
PDF
Aggregates com Event Sourcing
PPTX
Estudo do eShopOnContainers
PPTX
Introdução ao Domain-Driven-Design (DDD)
PPTX
Princípios SOLID de OO usando .NET
PPTX
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
DDD Tactical Design with Clean Architecture - Ivan Paulovich
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials @ivanpaulovich
Building rich domain models with ddd and tdd ivan paulovich - betsson
Moving to Microservices
Produzindo e consumindo um stream de eventos
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Aggregates com Event Sourcing
Estudo do eShopOnContainers
Introdução ao Domain-Driven-Design (DDD)
Princípios SOLID de OO usando .NET
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH

Último (7)

PPTX
Curso de Windows 11 resumido na prática.pptx
PPTX
Mapeamento de Objeto para Tabela Relacional
PDF
apresentacao introducao computacao ead.pdf
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
Dos requisitos ao código: como criar código rastreável em PHP
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Curso de Windows 11 resumido na prática.pptx
Mapeamento de Objeto para Tabela Relacional
apresentacao introducao computacao ead.pdf
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Evolução em código: algoritmos genéticos com PHP
Dos requisitos ao código: como criar código rastreável em PHP
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO

Windows Azure Mobile Services InfoTech 2014

Notas do Editor

  • #9: http://azure.microsoft.com/en-us/documentation/articles/mobile-services-html-get-started/
  • #13: http://azure.microsoft.com/en-us/documentation/articles/mobile-services-html-get-started-users/ ------------------ <div id="logged-in"> Você está conectado como <span id="login-name"></span>. <button id="log-out">Fazer logoff</button> </div> <div id="logged-out"> Você não está conectado. <button>Fazer Logon</button> </div> ------------------ function refreshAuthDisplay() { var isLoggedIn = client.currentUser !== null; $("#logged-in").toggle(isLoggedIn); $("#logged-out").toggle(!isLoggedIn); if (isLoggedIn) { $("#login-name").text(client.currentUser.userId); refreshTodoItems(); } } function logIn() { client.login("facebook").then(refreshAuthDisplay, function(error){ alert(error); }); } function logOut() { client.logout(); refreshAuthDisplay(); $('#summary').html('<strong>You must login to access data.</strong>'); } // On page init, fetch the data and set up event handlers $(function () { refreshAuthDisplay(); $('#summary').html('<strong>You must login to access data.</strong>'); $("#logged-out button").click(logIn); $("#logged-in button").click(logOut); });
  • #17: var updatesTable = tables.getTable('Updates'); var request = require('request'); var twitterUrl = "https://api.twitter.com/1.1/search/tweets.json?q=DebateNaRecord&result_type=recent"; // Get the service configuration module. var config = require('mobileservice-config'); // Get the stored Twitter consumer key and secret. var consumerKey = config.twitterConsumerKey, consumerSecret = config.twitterConsumerSecret // Get the Twitter access token from app settings. var accessToken= config.appSettings.TWITTER_ACCESS_TOKEN, accessTokenSecret = config.appSettings.TWITTER_ACCESS_TOKEN_SECRET; function GetUpdates() { // Check what is the last tweet we stored when the job last ran // and ask Twitter to only give us more recent tweets appendLastTweetId( twitterUrl, function twitterUrlReady(url){ // Create a new request with OAuth credentials. request.get({ url: url, oauth: { consumer_key: consumerKey, consumer_secret: consumerSecret, token: accessToken, token_secret: accessTokenSecret }}, function (error, response, body) { if (!error && response.statusCode == 200) { var results = JSON.parse(body).statuses; if(results){ console.log('Fetched ' + results.length + ' new results from Twitter'); results.forEach(function (tweet){ if(!filterOutTweet(tweet)){ var update = { twitterId: tweet.id, text: tweet.text, author: tweet.user.screen_name, date: tweet.created_at }; updatesTable.insert(update); } }); } } else { console.error('Could not contact Twitter'); } }); }); } // Find the largest (most recent) tweet ID we have already stored // (if we have stored any) and ask Twitter to only return more // recent ones function appendLastTweetId(url, callback){ updatesTable .orderByDescending('twitterId') .read({success: function readUpdates(updates){ if(updates.length){ callback(url + '&since_id=' + (updates[0].twitterId + 1)); } else { callback(url); } }}); } function filterOutTweet(tweet){ // Remove retweets and replies return (tweet.text.indexOf('RT') === 0 || tweet.to_user_id); }
  • #19: http://azure.microsoft.com/pt-br/documentation/articles/mobile-services-html-call-custom-api/ exports.post = function(request, response) { var mssql = request.service.mssql; var sql = "UPDATE todoitem SET complete = 1 " + "WHERE complete = 0; SELECT @@ROWCOUNT as count"; mssql.query(sql, { success: function(results) { if(results.length == 1) response.send(200, results[0]); } }) }; exports.get = function(request, response) { response.send(statusCodes.OK, { message : 'Hello World!' }); }; <button id="buttonCompleteAll">Complete All</button> var completeAllTodoItems = function () { // Asynchronously call the custom API using the POST method. client.invokeApi("completeall", { body: null, method: "post" }).done(function (results) { var message = results.result.count + " item(s) marked as complete."; alert(message); refreshTodoItems(); }, function(error) { alert(error.message); }); }; $('#buttonCompleteAll').click(function () { completeAllTodoItems(); });
  • #26: https://code.msdn.microsoft.com/windowsapps/Capture-Store-and-Email-34005240
  • #29: var SendGrid = require('sendgrid').SendGrid; function insert(item, user, request) { request.execute({ success: function() { // After the record has been inserted, send the response immediately to the client request.respond(); // Send the email in the background sendEmail(item); } }); function sendEmail(item) { var sendgrid = new SendGrid('azure_f043f759701e2a9c5c21b90ef0c3b703@azure.com', 'yhtmFS0wS69jQ59'); sendgrid.send({ to: 'ivan@100loop.com', from: 'admin@todoitem.com', subject: 'New to-do item', text: 'A new to-do was added: ' + item.text }, function(success, message) { // If the email failed to send, log it as an error so we can investigate if (!success) { console.error(message); } }); } }
  • #31: http://azure.microsoft.com/pt-br/documentation/articles/mobile-services-html-call-custom-api/ <button id="buttonCompleteAll">Complete All</button> var completeAllTodoItems = function () { // Asynchronously call the custom API using the POST method. client.invokeApi("completeall", { body: null, method: "post" }).done(function (results) { var message = results.result.count + " item(s) marked as complete."; alert(message); refreshTodoItems(); }, function(error) { alert(error.message); }); }; $('#buttonCompleteAll').click(function () { completeAllTodoItems(); });