Azure – I servizi mobili

10 nov 2014 22:05

_Logo Dopo aver provato alcuni servizi backend dedicati allo sviluppo mobile sono ritornato alla piattaforma cloud di Microsoft (Azure). Ottimo servizio, buoni prezzi e possibilità illimitate grazie alle molte funzionalità disponibili e alle tante possibilità di personalizzazione.

Come accennato ho testato alcuni servizi di backend (tra cui App42, Buddy e Parse). In tutti i casi le funzionalità disponibili e l’offerta gratuita sono ottime, ma in generale posso evidenziare:

  • che superato il livello base i costi diventano molto alti e l’incremento non è proporzionale al crescere delle domanda di risorse;
  • che il livello di personalizzazione è limitato (in alcuni casi è possibile scrivere server code in JavaScript o in Java);
  • che il supporto al mondo .NET è in alcuni casi messo in secondo piano (ad esempio lo SDK di Parse aveva un bug che impediva qualsiasi tipo di connessione al backend… hanno impiegato più di una settimana per sistemarlo!)
  • che come sempre “le cose fatte da se sono meglio” ;-).

Ho quindi pensato che fosse più conveniente e flessibile tornare ad utilizzare i servizi Azure, data anche l’esperienza positiva fin qui avuta nell’utilizzo di ASP.NET.

Sebbene non vi sia un offerta iniziale come per altri provider, i sottoscrittori dei Servizi Mobili posso sfruttare:

  • I servizi mobili esposti come Web API per costruire un back-end completo e personalizzato.
  • SQL Azure: un database conosciuto e a basso costo, facilmente gestibili dal portale e dai propri servizi di back-end.
  • Azure Storage: giga e giga di spazio per memorizzare media e qualsiasi altro tipo di dato, comprese tabelle noSQL. Ottimo anche il servizio Azure Binary Large Object.
  • Azure Web Sites: non solo siti ma anche servizi cloud esposti tramite Web API.
  • Notifiche push cross-platform.
  • Autenticazione: utilizzando Microsoft Account, Facebook, Twitter e Google. Oltre ad Azure Active directory per interfacciare i propri domini.

Per partire è sufficiente creare, dal portale, un nuovo servizi mobile e scaricare il progetto di esempio per la piattaforma che si preferisce (Windows Phone, Windows Store, Xamarin, JavaScript). In tutti i casi oltre al progetto client è incluso anche il progetto Web che corrisponde al back-end esposto tramite Web API. Il progetto di esempio è un piccolo tool di gestione ToDo.

Consiglio di partire da seguenti articoli, al termine dei quali potrete ottenere, con un proprio modello e un po’ di logica personalizzata un applicativo completo di autenticazione, database nel cloud, modalità offline e che sfrutta le notifiche ai client:

Purtroppo c’è un problema abbastanza fastidioso: le librerie disponibili su Azure non sono aggiornatissime e quindi i pacchetti NuGet del progetto di esempio vengono segnalate come da aggiornare, ma se procedete ad ottenere le nuove versioni potreste non poter più pubblicare il servizio, in particolar per i pacchetti OData. Bisogna quindi procedere con attenzione altrimenti il rollback potrebbe essere difficile, soprattutto per soluzioni complesse.

L’offerta di partenza completamente gratuita è interessante sebbene, come detto, non paragonabile a quella di altri provider specializzati:

  • 10 servizi mobile (con limite a 500K chiamate API giornaliere);
  • 5 GB di traffico in uscita (quello in entrata è gratuito);
  • un SQL Database da 20 MB;
  • 1 milione di notifiche push.

I costi per scalare questa prima configurazione rimangono comunque contenuti e con pochi Euro mensili si possono ottenere un database da mezzo giga e diversi centinai di GB di storage (file, table o cache). Purtroppo non ho ancora cifre precise e dopo un paio di mesi di utilizzo l’unica incognita rimane il costo all’aumentare del traffico.

Tag: Azure