La gestione del tempo di vita del processo o PLM (Process Lifetime Management), è uno dei concetti più importanti per uno sviluppatore di app Windows Store. A differenza delle tradizionali applicazioni desktop, che continuano ad essere eseguite anche quando sono in background, le app Windows Store vengono eseguite solo quando sono in primo piano (si noti che le app “snapped” sono considerate come in primo piano). In generale, un'app che non è visibile per l'utente è sospesa dal sistema operativo e non è in grado di eseguire azioni fino a quando il sistema operativo non la ripristina in primo piano.
Quando un'app è sospesa, rimane in memoria con tutti i suoi thread sospesi. Finché il processo rimane in memoria, l'app è in grado, quando torna in primo piano, di riprendere l'esecuzione da dove era stata interrotta. Non c'è niente che tu, sviluppatore, devi fare per far sì che ciò accada. Tuttavia, non è garantito che il processo rimanga in memoria. Se, quando è un'app è sospesa, Windows ha bisogno della memoria che utilizza quell'applicazione, Windows può terminarla. Se ciò accade, tutti gli stati non salvati vengono persi. A meno che non si siano presi provvedimenti per preservare tali stati, l'utente sarà sorpreso quando, tornato all'app, troverà che tutto il lavoro fatto è andato perso.
Ovviamente non possiamo permettere che questo accada. Quando l'app viene sospesa, anche Windows non sa se alla fine sarà terminata. Bisogna presupporre che l'app sarà terminata ed è dunque necessario scrivere del codice che salvi lo stato dell'applicazione al momento della sospensione. Fatto questo, se si rileva che l'app è stata terminata mentre era in stato di sospensione, sarà possibile ripristinare lo stato al momento della riattivazione.
Sembra difficile? Può esserlo, a volte, ma per la maggior parte delle applicazioni non lo è ed è comunque un lavoro che deve essere fatto per progettare un'app degna di questo nome. Il costo di non farlo è che, potenzialmente, un utente potrebbe perdere tutto ciò che ha creato nella tua applicazione semplicemente aprendone un'altra, anche per un momento.
Obiettivi
In questo Lab introdurremo il concetto di PLM e vi mostreremo il codice che Visual Studio è in grado di produrre autonomamente in base ai suoi modelli predefiniti. Poiché Contoso Cookbook è una piccola applicazione, non avremo bisogno di scrivere del codice nuovo per gestire il PLM; il codice creato da Visual Studio è sufficiente. È probabile che, per le vostre applicazioni, dovrete scrivere più codice, per questo motivo vi mostreremo le API disponibili e il codice necessario. Sedetevi per un momento e prendetevi una pausa dalla scrittura del codice, ma prestate attenzione.
Requisiti di sistema
Dovreste possedere i seguenti software per completare il Lab:
- Windows 8.
- Microsoft Visual Studio 2012.
Setup
Perché il computer abbia tutto il necessario per seguire questo lab, dovrete:
- Installare Windows 8.
- Installare Microsoft Visual Studio 2012.
Esercizi
Questo lab comprende i seguenti esercizi:
- Salvataggio automatico dello stato della navigazione
- Suggerimenti