Recommandations en matière de données d’application itinérantes

Applies to Windows and Windows Phone

Quand vous stockez des données d’application à l’aide des API ApplicationData d’itinérance, Windows réplique ces données vers le cloud et les synchronise sur tous les autres appareils de l’utilisateur sur lesquels l’application est installée. Suivez ces recommandations quand vous concevez votre application du Windows Store pour inclure des données d’application itinérantes.

L’exemple de données d’application montre comment utiliser les API ApplicationData pour stocker et récupérer les données spécifiques à chaque utilisateur et application du Windows Store.

Mon application doit-elle utiliser des données itinérantes ?

Utilisez les données itinérantes pour stocker les paramètres, les préférences et les informations de session d’un utilisateur, et créer ainsi une expérience homogène de l’application sur plusieurs appareils. Gardez à l’esprit que les données itinérantes sont associées à un compte Microsoft de l’utilisateur. Les données itinérantes ne peuvent être synchronisées que si un utilisateur se connecte à ses appareils à l’aide du même compte Microsoft et qu’il installe l’application sur plusieurs appareils.

Par exemple, si un utilisateur installe votre application sur un deuxième appareil après l’avoir installée sur un premier appareil, toutes les préférences définies sur le premier appareil sont automatiquement appliquées à l’application située sur le second appareil (à condition que l’utilisateur se serve du même compte Microsoft pour se connecter aux deux appareils). Tous les changements apportés ensuite à ces paramètres et préférences sont également transférés automatiquement, ce qui donne lieu à une expérience uniforme quel que soit l’appareil. En stockant les informations de session sous forme de données itinérantes, vous permettez aux utilisateurs de poursuivre une session d’application qu’ils ont fermée ou abandonnée sur un appareil quand ils sont passés à un autre appareil.

Remarque  Les propriétés RoamingSettings, RoamingFolder et RoamingStorageQuota ne sont pas implémentées pour Windows Phone.

Remarque  Les fichiers de ce type ne sont pas itinérants, même s’ils sont placés dans le dossier RoamingFolder :

  • Types de fichier se comportant comme des dossiers (par exemple les fichiers avec les extensions .zip et .cab)
  • Fichiers dont le nom commence par des espaces
  • Fichiers dont le nom comprend les caractères unicode suivants :

    e794, e795, e796, e7c7, e816, e817, e818, e81e, e826, e82b, e82c, e831, e832, e83b, e843, e854, e855, e864, e7e2, e7e3 et e7f3

  • Chemins d’accès à des fichiers (nom de fichier + extension) de plus de 256 caractères
  • Dossiers vides
  • Fichiers avec des handles ouverts

Pratiques conseillées et déconseillées

  • Utilisez l’itinérance pour les préférences utilisateur et les personnalisations, les liens et les petits fichiers de données. Par exemple, utilisez l’itinérance pour conserver la couleur d’arrière-plan choisie par un utilisateur sur tous les appareils.
  • Utilisez l’itinérance pour permettre aux utilisateurs de poursuivre une tâche sur plusieurs périphériques. Par exemple, utilisez l’itinérance pour des données d’application telles que le contenu d’un e-mail à l’état de brouillon ou la dernière page consultée dans une application de lecture.
  • Gérez l’événement DataChanged en mettant à jour les données d’application. Cet événement se produit juste après la fin de la synchronisation des données d’application à partir du cloud.
  • Utilisez l’itinérance pour les références au contenu plutôt que les données brutes. Par exemple, rendez une URL itinérante plutôt que le contenu d’un article en ligne.
  • Pour les paramètres importants, où le temps joue un rôle critique, utilisez le paramètre HighPriority associé à RoamingSettings. Pour plus d’informations, voir la brève vue d’ensemble des données d’application. Pour obtenir des exemples de code, consultez Quickstart: Roaming app data (Windows Store apps using JavaScript and HTML), Quickstart: Roaming app data (Windows Store apps using C#/VB/C++ and XAML) ou Exemple de données d’application.
  • Ne rendez pas itinérantes des données d’application spécifiques à un appareil. Certaines informations ne sont pertinentes que d’un point de vue local, par exemple le chemin d’accès d’un fichier local. Si vous décidez de rendre itinérantes des informations locales, assurez-vous que l’application peut récupérer son état d’exécution si ces informations ne sont pas valides sur l’appareil secondaire.
  • Ne rendez pas itinérants de grands ensembles de données d’application. Il existe une limite à la quantité de données d’application qu’une application peut utiliser de manière itinérante. Servez-vous de la propriété RoamingStorageQuota pour atteindre cette limite. Si une application atteint cette limite, l’itinérance des données n’est plus possible tant que la taille du magasin de données d’application reste au-dessus de cette limite. Quand vous concevez votre application, vous devez penser à restreindre les grandes quantités de données pour éviter de dépasser cette limite. Par exemple, si l’enregistrement de l’état d’une partie demande 10 Ko, l’application pourrait autoriser l’utilisateur à conserver seulement 10 parties au maximum.
  • N’utilisez pas l’itinérance pour les données qui reposent sur une synchronisation instantanée. Windows ne garantit pas une synchronisation instantanée. L’itinérance peut être retardée de manière importante si un utilisateur est hors connexion ou sur un réseau dont la latence est élevée. Assurez-vous que votre interface utilisateur ne dépend pas d’une synchronisation instantanée.
  • N’utilisez pas l’itinérance pour les données qui changent souvent. Ainsi, si votre application effectue le suivi d’informations qui changent souvent, par exemple la position de lecture d’une chanson à la seconde près, ne stockez pas ces informations en tant que données d’application itinérantes. À la place, choisissez une représentation moins fréquente qui offre tout de même une expérience utilisateur intéressante, par exemple la chanson en cours de lecture.

Indications d’utilisation supplémentaires

Conditions préalables à l’itinérance

Tous les utilisateurs peuvent bénéficier de l’itinérance des données d’application, s’ils utilisent un compte Microsoft pour se connecter à leur appareil. Toutefois, les utilisateurs et les administrateurs de stratégie de groupe peuvent désactiver l’itinérance des données d’application sur un appareil à tout moment. Si un utilisateur décide de ne pas utiliser un compte Microsoft ou s’il désactive les fonctionnalités d’itinérance des données, il peut continuer à se servir de votre application. Toutefois, les données d’application sont gérées de manière locale sur chaque appareil.

Les données stockées dans PasswordVault sont transférées uniquement si un utilisateur a « approuvé » un appareil. Si un appareil n’est pas approuvé, les données sécurisées dans ce coffre ne seront pas itinérantes.

Résolution des conflits

L’itinérance des données d’application n’est pas prévue pour être utilisée sur plusieurs appareils à la fois. Si un conflit se produit durant la synchronisation en raison du changement d’une unité de données sur deux appareils, le système favorise toujours la valeur écrite en dernier. Cette précaution garantit que l’application exploite les informations les plus récentes. Si l’unité de données est un composite de paramètre, la résolution des conflits se produit au niveau de l’unité du paramètre ; en d’autres termes, le composite possédant le changement le plus récent est synchronisé.

Quand écrire les données

Selon la durée de vie prévue du paramètre, les données doivent être écrites à différents moments. Les données d’application qui changent rarement ou lentement doivent être écrites immédiatement. Toutefois, les données d’application qui évoluent fréquemment doivent être écrites seulement à intervalles réguliers (par exemple toutes les 5 minutes) et durant la suspension de l’application. Par exemple, une application de musique peut écrire le paramètre « chanson actuelle » au début de chaque nouvelle chanson, mais la position réelle dans la chanson doit être écrite uniquement au moment de l’interruption.

Protection contre une utilisation excessive

Le système possède divers mécanismes de protection pour éviter une utilisation inappropriée des ressources. Si les données d’application ne se transfèrent pas comme prévu, il est probable que l’appareil a été provisoirement limité. Cette situation est en général automatiquement résolue en attendant quelque temps, et aucune mesure n’est nécessaire.

Contrôle de version

Les données d’application peuvent utiliser le contrôle de version pour passer d’une structure de données à une autre. Le numéro de version est différent de la version de l’application ; il peut être défini comme bon vous semble. Même si ce n’est pas obligatoire, il est vivement conseillé d’utiliser des numéros de version croissants. En effet, des complications (notamment des pertes de données) peuvent se produire si vous essayez d’effectuer un transfert vers un numéro de version de données inférieur représentant des données plus récentes.

Les données d’application ne sont itinérantes qu’entre les applications installées qui possèdent le même numéro de version. En d’autres termes, les appareils de la version 2 peuvent transférer des données entre eux, tout comme les appareils de la version 3. Toutefois, aucune itinérance n’a lieu entre un appareil de la version 2 et un appareil de la version 3. Si vous installez une nouvelle application qui utilisait plusieurs numéros de version sur d’autres appareils, l’application récemment installée synchronise les données d’application associées au numéro de version le plus élevé.

Test et outils

Les développeurs peuvent verrouiller leur appareil pour déclencher une synchronisation des données d’application itinérantes. Si les données d’application ne semblent pas se transférer après un intervalle de temps donné, vérifiez les éléments suivants :

  • Vos données itinérantes ne dépassent pas la taille maximale (pour plus d’informations, voir RoamingStorageQuota).
  • Vos fichiers sont fermés et publiés correctement.
  • Il existe au moins deux appareils qui exécutent la même version de l’application.

Les développeurs peuvent utiliser l’outil Windows 8 Roaming Monitor pour surveiller et affecter le statut de l’état d’itinérance de leur application.

Itinérance des données entre une application du Windows Store et une application du Windows Phone Store

Si vous publiez deux versions de votre application (une pour le Windows Store et une autre pour Windows Phone), vous pouvez rendre les données d’application itinérantes pour les applications qui s’exécutent sur les deux types d’appareil. Pour rendre des données itinérantes sur différentes versions de votre application et différents types d’appareil, assignez le même nom de famille de packages (PFN) à chaque version de l’application.

Pour plus d’informations, voir Comment rendre des données itinérantes entre une application du Windows Store et une application du Windows Phone Store.

Rubriques associées

Pour les développeurs (HTML)
Vue d’ensemble des données d’application
Démarrage rapide : données d’application itinérantes
Windows.Storage.ApplicationData
Windows.Storage.ApplicationData.RoamingSettings
Windows.Storage.ApplicationData.RoamingFolder
Windows.Storage.ApplicationData.RoamingStorageQuota
Windows.Storage.ApplicationDataCompositeValue
Pour les développeurs (XAML)
Vue d’ensemble des données d’application
Démarrage rapide : données d’application itinérantes (C#/VB/C++)
Windows.Storage.ApplicationData
Windows.Storage.ApplicationData.RoamingSettings
Windows.Storage.ApplicationData.RoamingFolder
Windows.Storage.ApplicationData.RoamingStorageQuota
Windows.Storage.ApplicationDataCompositeValue
Exemple
Exemple de données d’application

 

 

Afficher:
© 2014 Microsoft