Des applications "Windows 8" étendues au cloud grâce à SkyDrive

Conception de Windows 8

Vision en coulisses de l'équipe d'ingénierie Windows

Des applications "Windows 8" étendues au cloud grâce à SkyDrive

  • Comments 0

Pour faire suite au récent billet consacré à l'ouverture des sessions Windows 8 à l'aide d'un identifiant Windows Live ID, nous souhaitons maintenant aborder l'utilisation de SkyDrive à partir des nouvelles applications de style Metro de Windows 8. Les applications utilisent automatiquement SkyDrive pour permettre l'itinérance des paramètres et les applications elles-mêmes sont itinérantes. Malgré tout, nous savons que les développeurs sont impatients de savoir comment ils pourront faciliter la vie de leurs clients et permettre à ces derniers d'accéder à leurs données quel que soit l'appareil utilisé. Pour ce faire, puisque chaque détenteur de compte Windows Live ID dispose gratuitement d'un espace de stockage sur le cloud, SkyDrive constitue le moyen idéal. Dans ce billet, nous expliquons aux développeurs comment créer des applications de style Metro utilisant directement l'espace de stockage SkyDrive. Voici notre tout premier billet contenant du code ; nous en publierons d'autres prochainement ! Ce billet a été rédigé par Mike Torres, responsable de l'équipe SkyDrive Devices and Roaming. --Steven

Bien que la tendance soit à l'augmentation du nombre d'appareils par utilisateur, nombreux sont ceux qui continuent à stocker tous leurs fichiers importants sur un seul et même PC ou dispositif de stockage. Malheureusement, ces utilisateurs n'ont donc pas accès à leurs fichiers à partir des autres appareils. Ces fichiers sont associés à un « emplacement » : un PC de bureau, un ordinateur portable, une clé USB, etc. Lorsque vous n'avez pas accès à cet emplacement, vous ne pouvez pas accéder à vos documents ou vos photos. Non seulement l'accès à vos fichiers est difficile (voire impossible), mais en plus le partage de ces fichiers avec des utilisateurs connectés à un autre réseau peut s'avérer extrêmement complexe.

Grâce au cloud, les internautes peuvent désormais accéder facilement à leurs contenus, où qu'ils se trouvent ou presque. Les fichiers sont conservés à un seul emplacement et accessibles sur n'importe quel appareil pouvant se connecter à Internet, en tout point du globe. Le stockage des fichiers dans le cloud facilite également le partage de photos et la collaboration en temps réel sur des documents. Cependant, le cloud reste encore peu utilisé par le grand public pour l'accès aux contenus.

Lors du discours d'ouverture de la conférence //build/, Chris Jones a confirmé que chaque client de Windows 8 disposera d'un espace SkyDrive : un seul et même cloud pour tous, permettant de stocker les fichiers importants de chaque utilisateur de façon centralisée, de les rendre accessibles instantanément et de faciliter leur partage. Au cours de la conférence, plusieurs sessions ont également montré aux développeurs d'applications Windows 8 comment connecter leurs applications au cloud par le biais de Live Connect et du SDK Live. En utilisant ces deux outils conjointement, les applications de style Metro peuvent utiliser le cloud Live pour permettre l'authentification unique par identifiant Windows Live ID et l'accès aux données personnelles (documents, photos, vidéos, etc.) stockées sur SkyDrive, avec l'autorisation de l'utilisateur.

Si vous envisagez de développer une application de style Metro pour Windows 8, ce billet peut vous être utile. Il explique en effet comment mettre en œuvre l'authentification unique et accéder aux données stockées sur SkyDrive (avec l'autorisation de l'utilisateur, bien évidemment), afin de mieux personnaliser votre application de style Metro.

Connexion de vos applications au cloud Live

En tant que développeur, lorsque vous cherchez à développer une application à succès, vous êtes systématiquement confronté à deux types de problèmes, quelle que soit la plateforme :

  • Comment permettre l'authentification et l'inscription des utilisateurs ? Les utilisateurs détestent devoir s'authentifier auprès des sites Web et des applications. Pour autant, les développeurs savent bien que l'authentification des utilisateurs permet d'améliorer leur fidélité et leur engagement vis-à-vis de l'application, mais aussi de personnaliser l'expérience utilisateur et de faire en sorte que l'application puisse conserver les données et les personnalisations des utilisateurs.
  • Comment permettre à l'application d'accéder aux contenus de l'utilisateur et d'améliorer ainsi l'expérience utilisateur ? Des tâches simples en apparence peuvent s'avérer relativement complexes. Par exemple, lorsque vous demandez aux utilisateurs de définir une photo de profil, vous devez prendre en compte le fait que leurs photos sont généralement disséminées sur plusieurs appareils et dans le cloud.

Dans Windows 8, nous avons résolu ces deux questions, aussi bien pour nos applications telles que Photos et Mail, mais aussi pour vos applications de style Metro, de sorte qu'elles puissent utiliser la même plateforme et la même technologie. Voici plus précisément comment nous avons résolu les problèmes évoqués ci-dessus :

  1. L'identité cloud de l'utilisateur fait désormais partie des primitives du système d'exploitation et son accès est universel : les applications et les sites Web peuvent y accéder à des fins d'authentification unique, avec l'autorisation de l'utilisateur. Par conséquent, votre application peut hériter de l'état de connexion et de l'identité d'un utilisateur, et vous n'avez pas à vous soucier d'un éventuel processus d'authentification séparé. Cet aspect est particulièrement important pour le second point ci-dessous.
  2. Les applications peuvent désormais accéder aux contenus des utilisateurs stockés sur le cloud Live par le biais de protocoles standard tels que OAuth pour l'authentification et l'autorisation, JSON pour les charges utiles des données renvoyées lors de l'accès à SkyDrive et Hotmail, ou encore XMPP pour l'interopérabilité avec Windows Live Messenger. En outre, nous proposons un SDK Live pour Windows 8 Developer Preview, afin de faciliter le développement sur la plateforme WinRT, avec une intégration à Visual Studio 11 Express.

Une fois qu'un utilisateur s'est connecté une première fois à votre application à l'aide de son identifiant Windows Live ID, il profite d'un système d'authentification entièrement transparent à partir de n'importe quel PC Windows 8 sur lequel il a ouvert une session à l'aide de son identifiant Windows Live ID. Ce même système s'étend à votre site Web : les utilisateurs profitent aussi de l'authentification unique s'ils ont ouvert leur session sur leur PC à l'aide d'un identifiant Windows Live ID ou s'ils sont connectés à un site compatible avec Windows Live ID, par exemple Hotmail ou SkyDrive.

Pour mettre en œuvre l'authentification unique avec Windows Live ID et intégrer le contenu SkyDrive à votre application de style Metro, la solution la plus simple est d'exploiter le SDK Live.

Pour autant, votre application ne doit pas obligatoirement utiliser ces services : leur utilisation reste sous le contrôle du développeur. Rien n'oblige non plus les applications conçues pour Windows 8 à s'authentifier par le biais d'un identifiant Windows Live ID, ni à utiliser un espace de stockage cloud spécifique. Il s'agit simplement de services mis à la disposition des développeurs d'applications, qu'ils peuvent exploiter selon leurs besoins.

Utilisation du SDK Live dans votre application

Si ce n'est déjà fait, commencez par installer Windows 8 Developer Preview ainsi que la version Developer Preview du SDK Live sur votre PC. Le processus d'installation installe également Microsoft Visual Studio 11 Express pour Windows Developer Preview. Vous devez ensuite accéder au site de gestion d'applications Windows Push Notifications and Live Connect afin de configurer votre application de style Metro pour qu'elle puisse accéder au cloud Live. Suivez la procédure proposée sur le site pour enregistrer votre application afin qu'elle utilise Live Connect.

Une fois que votre application est configurée pour utiliser Live Connect, vous devez ajouter une référence au SDK Live. Ce SDK est disponible pour les développements en langage C#, JavaScript et VB. Pour l'ajouter à votre projet, il suffit de cliquer avec le bouton droit de la souris sur le projet et de sélectionner Add Reference (Ajouter une référence), Extension SDKs (SDK d'extension), puis de choisir dans la liste l'entrée correspondant au SDK Live, comme sur l'image ci-dessous :

Dans une application JavaScript, il vous suffit d'ajouter la référence de script suivante au fichier Default.html :

    <script src="ms-wwa:///LiveSDKHTML.5.0/js/wl.js" ></script>

En langage C#,vous devez ajouter la référence suivante pour pouvoir exploiter le SDK Live dans votre code :

 using Microsoft.Live;

Enfin, dans VB, l'instruction d'importation suivante suffit :

 Imports Microsoft.Live

Voilà un bon exemple prouvant que nous prenons en charge différents langages de programmation pour la conception d'applications de style Metro pour Windows 8.

Utilisation de Windows Live ID dans votre application de style Metro

Pour profiter de l'authentification unique dans votre application, vous devez insérer un bouton de connexion au sein de votre application. Lorsque l'utilisateur clique sur ce bouton, il est connecté automatiquement, à condition qu'il ait ouvert une session sur son PC à l'aide d'un identifiant Windows Live ID. Dans le cas contraire, il est invité à se connecter. Une fois l'opération terminée, l'utilisateur est invité à autoriser votre application à accéder à ses données, par exemple ses photos SkyDrive. Ce processus est géré automatiquement : vous devez simplement ajouter le bouton de connexion. Vous remarquerez que nous avons fait un choix important en termes de conception : les clients doivent confirmer la connexion à votre application et ne sont pas connectés automatiquement.

Voici un exemple de code HTML permettant d'insérer le bouton de connexion (il s'agit simplement d'une balise DIV, qui devra être configurée).

 <div id="signinbutton" style="width: 251px; margin-left: auto; margin-top: 40%; height: 64px; top: 0px;"></div>

Une fois que vous avez ajouté le bouton de connexion à la page, vous devez établir une liaison, car l'exemple de code HTML ne sert qu'à allouer de la place sur la page au bouton. Nous devons configurer ce bouton de connexion en fonction des étendues requises par votre application. Une étendue définit à quels éléments votre application a accès et à quels éléments l'utilisateur doit autoriser l'accès. Pour accéder à vos données SkyDrive, votre application a besoin de deux étendues :

  • wl.signin : cette étendue permet la connexion automatique à votre application.
  • wl.skydrive : cette étendue autorise un accès en lecture aux albums et aux photos SkyDrive de l'utilisateur (remarque : si vous avez l'intention de transférer du contenu vers SkyDrive, votre application doit utiliser l'étendue wl.skydrive_update).

Voici un exemple de code JavaScript d'initialisation, qui suppose que vous avez déjà créé le bouton de connexion sur la page en utilisant l'ID « signinbutton » :

function init() {
WL.init();

WL.ui({
name: "signin",
element: "signinbutton",
scope: ["wl.signin", "wl.skydrive"],
});
}

Voici un exemple de code JavaScript pour la gestion de la connexion :

WL.Event.subscribe("auth.login", onLoginComplete);

function onLoginComplete() {
var session = WL.getSession();
if (!session.error) {
signedInUser();
}
}

Lorsque l'utilisateur clique sur le bouton de connexion, il est invité à autoriser votre application à accéder à ses données. Comme nous l'avons déjà indiqué, si l'utilisateur a ouvert une session sur son PC à l'aide d'un identifiant Windows Live ID, l'authentification unique est déjà effective et l'utilisateur n'a pas besoin de se reconnecter. Il accède directement à cet écran d'autorisation d'accès :

Accès au contenu SkyDrive à partir de votre application

Une fois que l'utilisateur a autorisé votre application à accéder à ses données, les jetons d'accès OAuth 2.0 sont renvoyés à votre application. Ils peuvent ensuite être utilisés pour effectuer des appels d'API RESTful auprès du cloud Live. Voici le code JavaScript permettant d'accéder à une photo :

function downloadPicture(folderId) {

var path = folderId + "/files"

// Submit request
WL.api({ path: path, method: "GET" }, onEnumerateFolderComplete)

};

En implémentant plusieurs appels similaires à celui-ci, une application peut intégrer du contenu SkyDrive (diapositives PowerPoint, vidéos, feuilles de calcul Excel ou même des photos, comme dans l'exemple d'application ci-dessous).

Grâce au SDK Live, vous remarquerez que l'intégration de l'authentification unique et des données utilisateurs stockées sur SkyDrive au sein de votre application ne nécessitent que quelques lignes de code. Votre application est ainsi plus personnalisée et l'utilisateur peut profiter au mieux de ses photos et documents stockés dans le cloud. Le code source intégral de l'exemple d'application figurant dans ce billet peut être téléchargé ici.

Pour plus d'informations sur l'utilisation du SDK Live pour la mise en œuvre de l'authentification unique au sein de vos applications et l'utilisation des API SkyDrive, regardez les présentations de Dare Obasanjo Power your app with Live services (Intégration des services Live à vos applications) et de Steve Gordon The complete developer’s guide to the SkyDrive API (Guide complet de l'API SkyDrive à l'intention des développeurs), issues de la conférence BUILD. Pour en savoir plus, vous pouvez également consulter le site http://dev.live.com et télécharger la version Developer Preview du SDK Live. Bonne session de programmation !

Mike Torres

  • Loading...
Leave a Comment
  • Please add 2 and 4 and type the answer here:
  • Post