Quando devo optare per la memorizzazione di file IsolatedStorage rispetto a AppData?
-
20-08-2019 - |
Domanda
Di recente ho scoperto le IsolatedStorage
strutture in .net e mi chiedo quando dovrei usarle per i dati della mia applicazione rispetto a quando dovrei usare (ad esempio) Application.LocalUserAppDataPath
.
Una cosa che ho notato è che Application
non esiste al di fuori di un'app winforms, quindi <=> potrebbe avere senso per una libreria di classi che necessita di un archivio specifico, specialmente se quella libreria potrebbe essere utilizzato sia da un'app Web sia da un'app Winforms. È l'unico punto distintivo o c'è di più?
(Di norma, fino ad ora, ho fatto in modo che l'app fornisse un flusso di file alla libreria quando la libreria potrebbe aver bisogno di una sorta di memoria esterna --- in generale, non mi piace l'idea di una libreria con una sorta di stato esterno al contesto del chiamante.)
Soluzione
IsolatedStorage ha un paio di interessanti funzionalità che potrebbero farti optare per questo:
-
Anche le applicazioni con un livello di affidabilità molto basso (come il clic una volta) possono accedere allo storage isolato. Non tutte le applicazioni possono avere accesso ad AppData. A seconda della politica di sicurezza imposta sull'applicazione, IsolatedStorage può anche essere limitato, ma di solito è più accessibile di AppData / file system.
-
I requisiti di archiviazione di IsolatedStorage possono essere controllati dai criteri dell'amministratore.
-
Non è necessario sapere dove o come vengono archiviati i dati di archiviazione isolati. Ha un'API uniforme per accedervi su tutti i sistemi in cui puoi ignorare completamente il percorso sottostante in cui è archiviato. Come hai notato, questo è molto utile per una libreria che potrebbe non avere idea di come l'applicazione di hosting memorizza i dati.
-
È inoltre possibile archiviare i dati in una memoria isolata con vari livelli di isolamento molto facilmente. Vedere i valori di IsolatedStorageScope per ulteriori informazioni. Questo è il suo omonimo, quindi immagino che avrei dovuto elencare prima questo punto :)
Al rovescio della medaglia:
- IsolatedStorage ha alcuni limiti notevoli nella quantità di dati che è possibile archiviare lì. Ad esempio, le preferenze dell'applicazione andranno bene, ma non è appropriato per i documenti.
Alcuni link utili: