Utiliser Azure Mobile Services comme backend pour mon application Modern UI
description
Transcript of Utiliser Azure Mobile Services comme backend pour mon application Modern UI
Developer Day
Utiliser Azure Mobile Services comme backend pour mon application Modern UI
Sébastien PUTIERConsultant .Net, MCNEXThttp://sputier.com
Bastien VINCENTConsultant .Net, MCNEXT
MCNEXTSpécialiste Microsoft
Implanté à Paris et Lyon
Webagency spécialiste web et SharePointImplanté à Paris
Spécialiste MicrosoftImplanté à Genève
Spécialiste iPhone / iPadImplanté à Paris
MCNEXT160 collaborateurs 15 millions de CA+35% de croissance annuelle depuis 2007Membre du « Microsoft Apps circle »
Certifié Gold partner
Agenda
AgendaQu’est ce que c’est ? 10’
Les doigts dans le code 30’ Création d’un Mobile Service Stockage de données Authentification des utilisateurs Notifications «Push»
Trucs et astuces 10’
Questions / Réponses 5’
Qu’est-ce que c’est ?Windows Azure Mobile Services
PrésentationDes fonctionnalités sympas Du stockage dans le cloud La gestion des notifications “Push” Une authentification des utilisateurs simplifiée Une passerelle vers le “grand frère” : Windows Azure
Un service simple Un (petit) SDK est fourni par Microsoft : http://bit.ly/R8keSj Possibilité d’utiliser directement REST pour utiliser le stockage
Un service en Preview Jeune : disponible depuis Août 2012 (mais déjà une MAJ majeure !) Gratuit à configuration minimale
PrésentationUtilisable sur iOS !Depuis le 16 Octobre, il est possible de créer un backend Azure Mobile Service pour une application iOS : Une possibilité de cibler beaucoup plus d’utilisateurs avec une
couche services déjà entièrement gérée Et plein d’Objective-C pour ceux qui aiment ça !
Open Source !Source du SDK WinRT/.Net & iOS disponible sur GitHub :https://github.com/WindowsAzure/azure-mobile-services
License Apache
Pourquoi l’utiliser ?Des fonctionnalités courantesLa majorité des applications mobiles utilise le stockage de données et l’authentification…
… Et bon nombre n’ont pas besoin de plus !
SimplicitéNécessite peu de configuration et peu de code pour fonctionner :
Exemples : Le schéma des tables est dynamique par défaut (mais verrouillable)Il n’est pas nécessaire de coder une passerelle WCF pour accéder aux données
Pourquoi l’utiliser ?AuthentificationLe service permet d’abstraire le développeur des problématiques d’authentification et des problèmes de sécurité liés.
A ce jour, 4 fournisseurs d’authentification sont supportés : Microsoft (Live) Facebook Google Twitter
LimitationsStockageLe serveur qui reçoit les requêtes est en Node.JS donc : Les types de données complexes ne sont pas supportés. Possibilité d’utiliser les types simples suivants :
Numeriques Booleens Chaines de caractères
AuthentificationA ce jour, il n’est pas possible d’intégrer un “custom provider” au service d’authentification
Tarification (pour la preview)Mode “Shared instance” Vos Mobile Services tournent sur les mêmes machines Il est possible de créer jusqu’à 10 Services Chaque service a un quota de 165Mo sortant par jour (l’entrant est illimité) Et tout ça, gratuitement !
Mode “Reserved instance” Vos Mobile Services sont répartis (par utilisateur) selon leur emplacement géographique :
les Services en Amérique de l’Ouest tournent sur des machines qui sont réservées à ce groupe
Il est possible de créer jusqu’à 100 Services Seul le trafic sortant est facturé
Les doigts dans le codeWindows Azure Mobile Services
TablesPermissions4 niveaux d’autorisations sur les tables :
Publique Uniquement à partir de l’application associée Uniquement les utilisateurs authentifiés Uniquement scripts et admins
Scripts : des triggers en… Javascript ! Le serveur qui reçoit les requêtes est en Node.JS Possibilité de créer des triggers complexes sur les operations CRUD
Envoi de notifications Mise à jour de données en cascade Appels de Web Services distants Logs personnalisés en utilisant la permission “script et admin” …
Stockage de données Namespace du SDK : Microsoft.WindowsAzure.MobileServices
Utilisation de la classe MobileServiceClient pour se connecter au service
Utilisation de la classe MobileServiceTable pour requêter la base
=> Il est extrêmement simple de créer une application connectée à une base de données avec WAMS
DemoCréation d’un Mobile Service & Stockage de données
Authentification des utilisateursFournisseur d’authentification : Microsoft AccountL’authentification des utilisateurs se fait sur des comptes Live
La mise en place se fait en 3 étapes Configuration de Live Connect Configuration du Mobile Service Du code Javascript (juste un peu) et .Net (à peine plus)
Autres fournisseursLa procédure de mise en place est similaire : Il suffit d’enregistrer son application auprès du fournisseur, de faire un peu de configuration sur le Mobile Service, et de coder !
DemoAuthentification des utilisateurs
Notifications «Push»Configuration en 3 étapes Enregistrer l’application sur le Windows Store Récupérer des infos spécifiques à l’application sur le portail Live Connect Configurer le Mobile Service avec ces infos (Accessoirement, vérifier que l’application est bien “Toast Capable”)
Du code, du code, du code ! Envoi de la notification à partir du serveur en JavaScript Code côté client pour récupérer le channel qui va bien, et ainsi recevoir les notifications
Un peu de doc pour aiderLa doc de WNS (dont la liste des methodes utilisables pour l’envoi de notifications) est disponible à l’adresse :http://bit.ly/WDnf2J
Notifications «autres»SMSIl est possible d’envoyer des SMS via l’envoi de requêtes HTTP à partir de vos scripts Node.JS.
Le service est payant (partenaire de Microsoft : Twilio), mais les clients Azure ont 1000 SMS offerts à leur inscription sur http://www.twilio.com
EmailIl est possible d’envoyer des mails via la “classe” SendGrid à partir de vos scripts Node.JS.
Le service est payant (partenaire de Microsoft : SendGrid), mais les clients Azure ont droit à 25000 mails gratuits par mois.Informations et souscriptions )à l’adresse http://www.sendgrid.com/azure.html
DemoNotifications
Trucs et astucesWindows Azure Mobile Services
Azure en complément de WAMSIl est possible d’accéder à du stockage Azure à partir du serveur Node.JS grâce au module “azure”.
Pourquoi faire ? Vous faites du data-mining avec les Azure Tables et vous voulez nourrir ces tables à
partir de vos applications basées sur WAMS Vous vous intégrez à un système existant base sur Azure et vous voulez utiliser WAMS
comme passerelle A vous d’inventer les scenarios !
Exemples de code disponibles sur le Windows Azure Node.js Developer Center : https://www.windowsazure.com/en-us/develop/nodejs/data/
Stockage de données en baseStockage partiel d’une entitéVous ne voulez pas stocker certaines propriétés d’une classe ?
Utilisez les attributs (bien connus) [DataMember], [IgnoreDataMember], etc… !
Stockage de données en baseStockage d’un type non supportéVous voulez stocker une valeur de type DateTime, enum, ou autre ?
Ces types ne sont pas supportés par WAMS, il faut donc implementer un IDataMemberJsonConverter qui sérialisera ou désérialisera votre objet dans une chaine de caractères.
Un attribut [DataMemberJsonConverter] sur la propriété à stocker et hop !
DemoTrucs & Astuces
Q & RWindows Azure Mobile Services
Merci !Rendez vous sur le stand d’INext !