Accès aux données de l’application à l’aide de Windows Runtime (applications du Windows Store)
Les données d’application sont des données mutables spécifiques à une application particulière. Elles comprennent l’état d’exécution, les préférences utilisateur et d’autres paramètres. Les données d’application sont créées, lues, mises à jour et supprimées lors de l’exécution de l’application.
Pour les applications de bureau, nous vous recommandons d’utiliser le Registre pour stocker leurs paramètres et le dossier Program Files pour stocker leurs fichiers. Pour les applications du Windows Store, nous vous recommandons d’utiliser des magasins de données d’application pour les paramètres et les fichiers spécifiques à chaque application et utilisateur. Le système gère les magasins de données d’une application en veillant à ce qu’ils restent isolés des autres applications et utilisateurs. De même, le système préserve le contenu de ces magasins de données lorsque l’utilisateur installe une mise à jour de votre application et supprime intégralement l’ensemble du contenu de ces magasins de données lorsque votre application est désinstallée.
L’exemple de données d’application montre comment utiliser les API de données d’application Windows Runtime pour stocker et récupérer des données spécifiques à chaque utilisateur et application du Windows Store.
Remarque importante sur les données d’application: La durée de vie des données d’application est liée à celle de l’application. Si l’application est supprimée, toutes les données d’application sont par conséquent perdues. Les données d’application ne doivent pas être utilisées pour stocker des données utilisateur ni d’autres éléments que les utilisateurs peuvent considérer comme précieux et irremplaçables. Les bibliothèques de l’utilisateur et SkyDrive doivent être utilisés pour stocker ce type d’informations. Les données d’application sont idéales pour le stockage des préférences utilisateur, paramètres et favoris spécifiques à l’application.
Stockage des données d’application
Lorsqu’une application est installée, le système lui attribue ses propres magasins de données par utilisateur pour y stocker les données d’application telles que les paramètres et les fichiers. Vous n’avez pas besoin de connaître l’emplacement et le mode de stockage de ces données : le système est responsable de la gestion du stockage physique. Utilisez simplement l’API de données d’application, qui vous permet d’utiliser facilement vos données d’application.
Voici les différents magasins de données :
- local
-
Données persistantes qui existent uniquement sur le périphérique actuel.
- roaming
-
Données qui existent sur tous les périphériques sur lesquels l’utilisateur a installé l’application.
- temporary
-
Données susceptibles d’être supprimées à tout moment par le système.
Ces magasins de données sont supprimés en même temps que votre application.
Vous pouvez éventuellement créer différentes versions des données d’application pour votre application. Vous pouvez par exemple créer une nouvelle version de votre application qui aura pour effet de changer le format de ses données d’application sans pour autant causer de problèmes de compatibilité avec la version précédente de l’application. L’application examine la version des données d’application dans le magasin de données et si la version est antérieure à la version attendue par l’application, celle-ci doit mettre à jour les données d’application vers le nouveau format et mettre à jour la version. Pour plus d’informations, voir la propriété Application.Version et la méthode ApplicationData.SetVersionAsync.
Paramètres d’application
Les paramètres contenus dans le magasin de données d’application sont stockés dans le Registre. Lorsque vous utilisez l’API de données d’application, l’accès au Registre est transparent. Chaque application dispose d’un conteneur racine de paramètres dans son magasin de données d’application. Votre application peut ajouter des paramètres et de nouveaux conteneurs au conteneur racine. Le fait de créer de nouveaux conteneurs vous permet de mieux organiser vos paramètres. Notez qu’il est possible d’imbriquer les conteneurs dans la profondeur sur 32 niveaux, sans aucune limitation sur le plan de la largeur de l’arborescence.
Utilisez des paramètres composites pour gérer facilement les mises à jour atomiques des paramètres interdépendants. Le système assure l’intégrité des paramètres composites lors d’accès simultanés et dans le cadre de l’itinérance. Les paramètres composites étant optimisés pour de faibles volumes de données, leur utilisation pour des jeux de données volumineux peut nuire aux performances.
Les paramètres d’application peuvent être locaux ou itinérants. Les paramètres que votre application ajoute au magasin de données local sont présents uniquement sur le périphérique local. Le système synchronise automatiquement les paramètres que votre application ajoute au magasin de données itinérantes sur tous les périphériques sur lesquels l’utilisateur a installé l’application.
Les types de données Windows Runtime sont pris en charge pour les paramètres d’application.
Notez qu’il n’existe pas de type binaire. Si vous avez besoin de stocker des données binaires, utilisez un fichier d’application.
Le système vérifie que la taille des données écrites correspond à la taille du type de données. Étant donné que le système ne valide pas les données, il vous appartient de vérifier si les données ont changé entre le moment où vous les écrivez et le moment où vous les relisez.
Fichiers d’application
Les fichiers contenus dans le magasin de données d’application sont stockés dans le système de fichiers. Les applications peuvent utiliser les fichiers du magasin de données d’application de la même façon que les fichiers contenus dans la partie AppData du profil de l’utilisateur sous Windows 7. Le magasin de données de chaque application comprend des répertoires racines définis par le système : un pour les fichiers locaux, un pour les fichiers itinérants et un pour les fichiers temporaires. Votre application peut ajouter de nouveaux fichiers et répertoires au répertoire racine. Le fait de créer de nouveaux répertoires vous permet de mieux organiser vos fichiers. Notez qu’il est possible d’imbriquer des répertoires dans le magasin de données d’application dans la profondeur sur 32 niveaux, sans aucune limitation sur le plan de la largeur de l’arborescence.
Les fichiers d’application peuvent être locaux ou itinérants. Les fichiers que votre application ajoute au magasin de données local sont présents uniquement sur le périphérique local. Le système synchronise automatiquement les fichiers que votre application ajoute au magasin de données itinérantes sur tous les périphériques sur lesquels l’utilisateur a installé l’application.
Données d’application locales
Les données d’application locales doivent être utilisées pour toutes les informations à préserver entre les sessions d’application. Elles ne conviennent pas en termes de type ou de taille pour les données d’application itinérantes. Les données non applicables à d’autres appareils doivent également y être conservées. Il n’existe pas de limitation générale de taille sur les données locales stockées. L’emplacement est disponible via la propriété localFolder. Utilisez le magasin de données d’application local pour les données qui n’ont pas lieu d’utiliser un profil itinérant et pour les jeux de données volumineux.
Pour obtenir un exemple de code, voir :
- Démarrage rapide : données d’application locales (JavaScript)
- Démarrage rapide : données d’application locales (C#/VB/C++)
Données d’application itinérantes
Si vous utilisez des données itinérantes dans votre application, vos utilisateurs peuvent facilement maintenir les données de votre application synchronisées sur les différents périphériques. Si un utilisateur installe votre application sur plusieurs périphériques, Windows maintient les données d’application synchronisées, ce qui réduit le nombre de tâches de configuration de l’application que l’utilisateur doit effectuer sur ses autres périphériques. De même, l’itinérance permet aux utilisateurs de reprendre une tâche (par exemple, composer une liste) à l’endroit même où ils l’ont abandonnée, y compris sur un autre périphérique. Windows réplique les données itinérantes sur le Cloud lorsqu’elles sont mises à jour et les synchronises sur les autres périphériques sur lesquels l’application est installée.
Windows limite la taille des données d’application que chaque application peut rendre itinérantes. Voir ApplicationData.RoamingStorageQuota | roamingStorageQuota. Si l’application atteint cette limite, aucune donnée de l’application n’est répliquée sur le Cloud tant que le volume total des données d’application itinérantes de l’application n’est pas inférieur à la limite. Pour cette raison, il est recommandé d’utiliser les données itinérantes uniquement pour les préférences utilisateur, les liens et les petits fichiers de données.
En principe, les données d’une application ne changent pas. En revanche, les données d’application itinérantes peuvent changer à tout moment. Une application doit s’inscrire pour gérer l’événement DataChanged | datachanged, qui se produit chaque fois que des données d’application itinérantes sont modifiées.
Si les données d’application sur un périphérique sont mises à jour vers une nouvelle version après que l’utilisateur a installé une version plus récente de l’application, ses données d’application sont copiées sur le Cloud. Le système ne met pas à jour les données d’application au niveau des autres périphériques sur lesquels l’utilisateur a installé l’application tant que celle-ci n’est pas également mise à jour sur ces périphériques.
Les données itinérantes d’une application sont disponibles dans le Cloud du moment où l’utilisateur y a accédé à partir d’un périphérique dans le délai imparti. Si l’utilisateur n’exécute pas une application au-delà de ce délai, ses données itinérantes sont supprimées du Cloud. Si un utilisateur désinstalle une application, ses données itinérantes ne sont pas supprimées automatiquement du Cloud : elles sont préservées. De ce fait, si l’utilisateur réinstalle l’application dans les délais, les données itinérantes sont synchronisées à partir du Cloud. La stratégie actuelle fixe ce délai à 30 jours. L’emplacement est disponible via la propriété roamingFolder.
Windows rend itinérantes les données d’application de façon opportuniste et ne garantit pas une synchronisation immédiate. Dans les cas où un utilisateur est hors connexion ou sur un réseau à latence élevée, l’itinérance pourrait être sensiblement retardée. Pour les paramètres importants et chronosensibles, une unité de paramètres spéciale à haute priorité est disponible pour assurer des mises à jour plus fréquentes. Elle est limitée à une seule unité de paramètres spéciale, qui doit être nommée « HighPriority ». Elle peut être composite, mais la taille totale est limitée à 8 Ko. Cette limite n’est pas appliquée et l’unité de paramètre ou le composite de paramètre est traité comme une unité de paramètres standard ou un composite si la limite est dépassée.
Pour obtenir un exemple de code, voir :
- Démarrage rapide : données d’application itinérantes (JavaScript)
- Démarrage rapide : données d’application itinérantes (C#/VB/C++)
Pour obtenir des recommandations, voir Recommandations en matière de données d’application itinérantes.
Données d’application temporaires
Le magasin de données d’application temporaires fonctionne comme un cache. Ses fichiers n’utilisent pas de profil itinérant et ne peuvent pas être supprimées à tout moment. La tâche Maintenance du système peut supprimer automatiquement les données stockées à cet emplacement à tout moment. L’utilisateur peut également effacer les fichiers du magasin de données temporaires à l’aide de l’outil Nettoyage de disque. Les données d’application temporaires sont utilisables pour stocker des informations provisoires au cours d’une session d’application. Il n’existe aucune garantie de persistance de ces données au-delà de la fin de la session d’application, car le système peut récupérer l’espace utilisé si nécessaire. L’emplacement est disponible via la propriété temporaryFolder.
Pour obtenir un exemple de code, voir :
- Démarrage rapide : données d’application temporaires (JavaScript)
- Démarrage rapide : données d’application temporaires (C#/VB/C++)
Interfaces de programmation de données d’application
- Espace de noms Windows.Storage.ApplicationData
- Espace de noms Windows.Storage.ApplicationDataCompositeValue
- Espace de noms Windows.Storage.ApplicationDataContainer
- Espace de noms Windows.Storage.ApplicationDataContainerSettings
- Espace de noms WinJS.Application
Rubriques associées
- Recommandations
- Recommandations en matière de données d’application itinérantes
- Recommandations concernant les paramètres d’application
- Exemples
- Exemple d’application de paramètres
- Exemple de données d’application
