Le « tombstoning » est certes intéressant en théorie, mais présente un certain nombre de défis.
Tombstoning et état transitoire
Mécanismes et méthodes
Lorsqu’une application utilise ce mécanisme, les seules informations conservées par défaut sur son état sont la pile de retours en arrière, autrement dit la page actuelle sur laquelle se trouve l’utilisateur et celles qu’il a traversées pour en arriver là.
En revanche, il n’y a pas persistance des données que l’utilisateur peut avoir saisies ou modifiées sur toutes ces pages.
Tombstoning et état transitoire
Prenons l’exemple d’une page avec un certain nombre de contrôles TextBox et un contrôle ListBox plein d’éléments. Lorsque l’utilisateur effleure le bouton Start, ouvre une autre application, puis revient à un moment donné à l’application d’origine, il s’attend à ce que le contenu des contrôles TextBox soit identique et à ce que la position de défilement et l’élément sélectionné dans ListBox soient préservés. C’est ce que l’on appelle un état transitoire, qui doit être conservé (persistance) une fois l’application désactivée et être restauré lorsque l’application est activée. D’autres informations, par exemple un document enregistré par un utilisateur, sont considérées comme des données ou un état persistants, car elles doivent survivre à plusieurs sessions d’application.
À partir du diagramme de cycle de vie d’application de la figure 1, vous savez qu’il existe quatre événements sur l’objet Application qui correspondent aux transitions d’état au sein de l’application :
private void Application_Launching(object sender, LaunchingEventArgs e) { }
private void Application_Activated(object sender, ActivatedEventArgs e) { }
private void Application_Deactivated(object sender, DeactivatedEventArgs e) { }
private void Application_Closing(object sender, ClosingEventArgs e) { }
Parmi ceux-ci, les événements Deactivated et Activated sont importants pour gérer le « tombstoning ». Lorsqu’une application passe à l’arrière-plan (l’utilisateur effleure le bouton Start), votre dernière opportunité pour faire persister n’importe quel état transitoire réside dans l’événement Deactivated. Par exemple, le code du listing 1 permettra la persistance d’une propriété ActiveSessionDuration sur l’objet Application.
Dans ce cas, la propriété ActiveSessionDuration conserve la durée d’utilisation réelle de l’application, au lieu de la durée écoulée entre le démarrage de l’application et sa fermeture. Bien évidemment, vous verrez la sortie uniquement si l’application est fermée via le bouton Back. Vous ne la verrez pas si l’application fait l’objet d’un « tombstoning » et n’est jamais réactivée.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Le mégawatt est devenu le nouveau mètre carré
- La bascule Entra Cloud First : le risque a déjà déménagé, la sécurité pas encore
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Gestion et sécurité des e-mails : tout est-il vraiment sous contrôle ?
Articles les + lus
Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
À la une de la chaîne Tech
- Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
- Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
- Guide Ultime des Raccourcis Clavier Windows 11 pour les Professionnels IT
