L’Isolated Storage en Silverlight

17. May 2010 by Quentin.SALLAT

Introduction

Il est parfois nécessaire de stocker des informations côté client, telles que des identifiants de connexion, un panier d’achat… Bien que nous puissions tout à fait utiliser les classiques cookies, Silverlight propose un dispositif bien plus organisé et simple pour le stockage : l’isolated storage. Sa taille maximale est de 1Mo par application, et peut augmenter en mode out of browser avec des droits élevés. Le but de cet article va donc être de vous en apprendre les bases.

Note : ne croyez surtout pas que l’isolated storage est quelque chose de sécurisé. Il est en effet possible au client d’accéder très facilement à ses données, même sans votre application. Evitez donc le stockage de mot de passe, d’informations confidentielles etc. Pour plus d’informations sur le sujet, je vous suggère l’excellente conférence de Shawn Wildermuth au mix 2010

Lien MIX 2010


Ecrire dans un fichier

L’isolated Storage n’est ni plus ni moins qu’un dossier où vous pouvez stocker des fichiers. Il va donc falloir en premier lieu, créer un fichier avant d’y écrire. Vous aurez besoin de lusing suivant :

using System.IO.IsolatedStorage;

Nous commençons par définir un try catch, car on agit directement sur le système de fichier de l’utilisateur. Il est donc préférable d’éviter le plantage de l’application par cette méthode.

Nous définissons ensuite une variable que représentera notre isolated storage représentera.

try

{

using (var store = IsolatedStorageFile.GetUserStoreForApplication())

{

;

}

}

catch

{

;

}

Nous avons donc accès à un espace de stockage côté client. Nous allons à présent créer un dossier, puis un fichier.

try

{

using (var store = IsolatedStorageFile.GetUserStoreForApplication())

{

string directory = "Key";

store.CreateDirectory(directory);

 

string filePath = System.IO.Path.Combine(directory, "Key.txt"); //On concatène le nom du fichier et du dossier

 

if (!store.FileExists(filePath)) //On vérifie que le fichier n'existe pas déja

{

IsolatedStorageFileStream File =

store.CreateFile(System.IO.Path.Combine(directory, "Key.txt")); //On créé le fichier

File.Close(); //On ferme le stream

}

}

}

catch

{

;

}

Maintenant que le fichier est créé, nous allons écrire dedans. Nous utiliserons un StreamWriter, en précisant le chemin du fichier, le mode de fichier (Open), et l’accès sur écriture. Encore une fois, nous allons utiliser un try catch. Mais cette fois-ci nous aurons le détail de l’erreur.

try

{

using (StreamWriter sw =

new StreamWriter(store.OpenFile(filePath,

FileMode.Open, FileAccess.Write)))

{

sw.WriteLine(“Je suis une chaine de caractère”);

}

}

catch (IsolatedStorageException ex)

{

MessageBox.Show(ex.Message);

}

Nous avons donc stocké dans un fichier, une chaine de caractères. Nous allons à présent voir comment y accéder.


Lire un fichier

Une fois que nous avons écrit dans le fichier, il nous faut y lire le contenu. Pour cela, nous allons commencer comme précédemment, c’est-à-dire utiliser un try/catch, ainsi qu’une variable qui représentera notre Isolated Storage.

try

{

using (var store = IsolatedStorageFile.GetUserStoreForApplication())

{

 

}

}

catch

{

;

}

Nous définissons ensuite notre chemin (qui pointera donc vers le fichier que nous avons créé tout à l’heure), et nous vérifions qu’il existe ! 

string directory = System.IO.Path.Combine("Key", "Key.txt");

if (store.FileExists(filePath))

{

{

;

}

}

Il ne reste plus qu’à utiliser un StreamReader pour lire le contenu de notre fichier !

using (StreamReader reader =

new StreamReader(store.OpenFile(filePath,

FileMode.Open, FileAccess.Read)))

{

string content = reader.ReadToEnd();

}

Et voilà, nous avons récupéré le contenu du fichier de l’Isolated Storage ! Simple non ? Vous pouvez donc dès à présent utiliser cette méthode qui est de loin plus simple que la gestion des cookies (en Silverlight en tout cas).

C#, Silverlight , ,

Comments

5/17/2010 11:46:55 PM #
Pingback from topsy.com

Twitter Trackbacks for
        
        Labo Dotnet | L’Isolated Storage en Silverlight
        [labo-dotnet.com]
        on Topsy.com

Add comment




  Country flag

biuquote
  • Comment
  • Preview
Loading

captcha

*