Azure Mobile Services, entenda o que é, suas vantagens e como começar

Olá pessoal, estou retomando as atividades do blog e irei começar uma serie de artigos sobre backend para aplicativos móveis e para dar a largada hoje irei apresentar o Azure Mobile Services.

Backend as a Service

Antes de partimos para o Azure Mobile Services é util entender o que é Backend as a Service, ou BaaS (por vezes referido como MBaaS).

Atualmente vivemos em um mundo de dispositivos conectados, Androids, iPhones, Windows Phones, Tablets e computadores através da Web. Partindo deste ponto os desenvolvedores demandaram um novo modelo de computação em nuvem que consiste em agrupar serviços comuns a estes dispositivos de forma a tornar mais fácil a instalação, utilização e gerenciamento de aplicações que são executadas no backend rodando em nuvem.

BaaS é uma abordagem para oferecer para desenvolvedores web e de aplicativos móveis, uma maneira de conectar as suas aplicações para armazenamento e processamento backend e ao mesmo tempo proporcionar características comuns, tais como gerenciamento de usuários, notificações via push, integração com redes sociais, autenticação e outras características que os usuários móveis demandam a partir da utilização de aplicativos.

Estes serviços são oferecidos através de SDKs e APIs, e são caracterizados em sua maioria por:

  • Eficiência - Reduzir a sobrecarga em todos os aspectos de desenvolvimento de aplicativos móveis, aumentando a eficiência em todas as fases de desenvolvimento.
  • Reduzir o tempo de "go to market” - Minimizar os obstáculos para tomar um aplicativo móvel da ideia à produção.
  • Otimizado para smartphones e tablets - Oferece recursos para otimização de dados e trafego de rede para aplicativos móveis e web, reduzindo problemas de fragmentação em cenários de desenvolvimento cross platform.
  • Infra-estrutura segura e escalável - Fornece uma infra-estrutura completa que lida com escalabilidade, segurança, desempenho e outras dores de cabeça operacionais, deixando com que os desenvolvedores se preocupem apenas com o código de seu aplicativo.
  • API comum (no mesmo stack) - BaaS traz recursos comuns e essenciais de API em uma única pilha, impedindo que os desenvolvedores de ter que implementa-los separadamente.

O objetivo claro do BaaS é fazer é fazer com que desenvolvedores mantenham o foco em gerar valor agregado ao seu aplicativo sem ter que se preocupar com o backend economizando com infra-estrutura e administração de sistemas.

Agora como o Azure Mobile Services implementa os conceitos de BaaS?

O que é o Azure Mobile Services

Agora que você já sabe o que é BaaS, vai entender de forma mais simples o que é o Azure Mobile Services, ele nada mais é que um serviço baseado em API, que fornece um conjunto de recursos de forma simples, escalável, customizada e gerenciável, permitindo que desenvolvedores utilizem armazenamento de dados, autenticação integrada, notificações via push e integração com redes sociais, tudo isso através de uma SDK suporte a desenvolvimento nativo iOS, Android, Windows, ou cross platform com Xamarin, PhoneGap, Sencha e Cordova.

Funcionalidades do Azure Mobile Services

As principais funcionalidades são:

  • Armazenamento de dados - Fornece um potente controle e flexibilidade para você armazenar seus dados seja com Azure SQL Server, Azure Table Storage, Blob Storage ou Mongo Db.
  • Autenticação: Você pode utilizar de maneira simples autenticação e autorização em seus aplicativos utilizando credenciais de redes sociais como Facebook, Twitter, Google e/ou Microsoft, assim como utilizar sua conta corporativa do Active Directory e ainda criar o seu próprio provedor de autenticação.
  • Notificações por push: O envio de push notifications é facilitado no Azure Mobile Services, de forma simples e rápida integrado ao Azure Notification Hubs permite que você envie milhões de notificações em pouco minutos, suportando multiplataforma e segmentação.
  • API backend: Uma curiosidade é que a primeira versão liberado do Azure Mobile Services suportava apenas API’s escritas utilizando NodeJS e em seguida foi adicionado o suporte ao ASP.NET Web API.
  • Suporte a Offline: Para aplicativos moveis o Azure Mobile Services possui suporte a sincronização de dados offline / online out-of-the-box.

Mas e agora? JavaScript ou .NET para o meu backend?

Para responder essa pergunta é mais fácil entendermos as diferenças do backend em .NET

  • Tabelas e Banco de dados: Utilizando backend .NET, você vai precisar definir suas tabelas/data-model utilizando code first e as alterações no modelo de dados devem ser propagadas utilizando Migration do Entity Framework.
  • API: Como backend .NET utiliza o Web API 2, você vai trabalhar com Actions e Controllers e tera que definir as permissões de acesso para os mesmos.

Como começar?

Para começar com o Azure Mobile Services, se você já não possui uma conta do Microsoft Azure, você vai precisar cria-lá em https://azure.microsoft.com/pt-br/pricing/free-trial/ (caso você tenha duvidas me envie uma mensagem pelo Twitter que eu te ajudo)

Com a conta já criada o passo a passo é simples:
  • Acesse o portal de gerenciamento (https://manage.windowsazure.com), cliquem em New, Compute, depois em Mobile Services e por fim em Create.
  • Na janela New Mobile Service, você deve informar:
  • URL do serviço, ou seja por onde ele será acessado;
  • Escolher se deseja utilizar uma base de dados pre-existente ou não;
  • Determinar a região de onde o seu serviço sera disponibilizado;
  • Linguagem do do backend que você deseja implementar, NodeJS ou ASP.NET Web API.
  • Escolher se deseja ou não configurar de forma avançada as notificações por push.

Independente do backend escolhido, na janela Specify Database Settings, você deve informar as configurações do seu banco ou apenas usuário e senha de um banco já existente.

Com isso o seu serviço será criado:

Próximos passos e segunda parte deste artigo

No próximo artigo eu irei avançar e colocaremos a mão na massa durante a criação de um Azure Mobile Services, mas antes disso eu gostaria de perguntar o que vocês gostariam de ver no próximo artigo?

Forte Abraço

William S. Rodriguez

Microsoft & Xamarin MVP, C# mobile developer, community enthusiast & #Xamarin crusader.

Curitiba, PR, Brasil http://williamsrz.com.br

Subscribe to C#, Xamarin, Mobile & Cloud addicted

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!