Le Post Infeeny

Les articles des consultants et experts Infeeny

The story of state : AppData, settings, and the process lifecycle

Cette session parlait de tout ce qui touche de près ou de loin au cycle de vie de l’application et à la persistance de son état d’exécution.

Après un rappel sur les différentes étapes du cycle de vie d’une application Windows 8 il nous a été présenté les différents endroits où sont stockées les données dans Windows 8 :

  • En mémoire
  • Local Temporary App Data (modifié par WinRT et d’autres API)
  • Roaming App Data (modifié par WinRT et d’autres  API). Le roaming est automatiquement envoyé sur le cloud et synchronisé sur tous les devices Windows 8 associé à ce compte.
  • Windows.Storage.AccessCache (modifié par WinRT) permet de sauvegarder les droits d’accès aux fichiers.
  • Windows.Storage.PasswordVault (modifié par WinRT) qui permet de sauvegarder les mots de passes et est synchronisé sur le cloud.

Des différentes démos de code qui ont suivis et qui montrait comment créer des settings et des paramètres j’ai surtout retenu une chose intéressante qui est la possibilité de propager (via Roaming) certains paramètres en haute priorité (1 minute maximum au lieu de 15 en priorité normale) grâce au HighPriorityRoaming.

Credential Locker permet de stocker les passwords et de les propager. Une application ne devrait jamais faire ce genre d’opération par elle-même mais toujours passer par ça. Voir le sample suivant avec l’utilisation du CredentialPicker (http://code.msdn.microsoft.com/windowsapps/Credential-picker-sample-30fcba2e)

Il nous a été présenté ensuite la gestion des versions sur les app data. On peut utiliser SetVersionAsync. De plus, dans le cas où un même utilisateur aurait sur plusieurs appareils des versions différentes de l’application, les versions seront maintenu séparément jusqu’à la mise à jour de toutes les applications.

La suite concernait surtout la mise en place de settings et des flyout associés, rien de bien nouveau ici c’est l’exemple que l’on peut retrouver un peu partout.

Pour finir quelques bonnes pratiques :

  • Démarrer l’application avec les paramètres par défaut initiaux
  • JS : utiliser sessionStare comme namespace pour les variables
  • C#/C++/VB : utiliser SuspensionManager helpers
  • Ecrire en session et persister l’état de l’application dès qu’il change
  • Ne pas attendre les evenement Suspending pour cela à moins que cela soit vraiment nécessaire
  • Toujours sauvegarder les références aux fichiers dans l’access cache (ne jamais sauvegarder le chemin)
  • Toujours sauvegarder les mots de passes dans le CredentialLocker
  • Encryptez pour la sécurité et compressez pour minimizer la taille

John

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :