----------------------------------------------------------- New Message on MumbaiUserGroup
----------------------------------------------------------- From: US_Dreams Message 11 in Discussion Thanks Nasha Its greate work Ghanshyam Shetye Team Leader Knownet - A BDK Enterprise Shivsagar Estate, "A" Block, Dr. Annie Besent Road, Worli, Mumbai (India) 400-018 Tel: 022-2492 7671 / 5319 Fax: 022-2495 0580 Website: www.knownetonline.com E-Mail :- [EMAIL PROTECTED], [EMAIL PROTECTED] ** Every long journey begins with a single step ** -----Original Message----- From: Nasha [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 17, 2004 10:16 AM To: MumbaiUserGroup Subject: Article : What is Isolated Storage ? ( Part- 2 .Net FrameWork Tools Series ) New Message on MumbaiUserGroup Article : What is Isolated Storage ? ( Part- 2 .Net FrameWork Tools Series ) Reply Reply to Sender Recommend Message 1 in Discussion From: Nasha Hey Group, To continue with our exploration on Isolated Storage Let us go ahead and create a sample application. 1) Open a new Win App Place one listbox, one textbox and one button on the form. 2) Our gaol is to serialize the contents of the listbox when the application shut downs and when the application runs it should load the serialized data back. IsolatedStorage works in a similar way as the file system . You can say it is a special type of file system which is specific to your application.Only your application knows where the files are stored. 3) Getting started we will create a .txt file for our application in IsolationStorage which will hold all the serilized data. We first need to get the reference of the IsolatedStorage Store for out application. We do that by calling a static function of IsolatedStorageFile object called GetStore. 4) Add code in the click event of the button to add the text entered in the textbox as an item in the listbox listBox2.Items.Add(textBox1.Text); textBox1.Text = ""; 5) Since we have got reference to the store we can go ahead and create our textfile to store our data.We need to serialize all the items in the listbox. We will handle this in the Form Closing event. 6) Get the reference to the Application Store by calling GetStore method on IsolatedStorageFile class IsolatedStorageFile isf = IsolatedStorageFile.GetStore(IsolatedStorageScope.Assembly | IsolatedStorageScope.User,null,null); If you check out all the other static methods of this object you will see that there are specific methonds to get Isolated Stores for User and Application Domain called as GetUserStoreFor Assembly and GetUserStoreForDomain. While calling this function remember to put a combination of two or more options for IsolatedStorageScope. This does not take a single value. Here we have given the scope as Assembly and User. 7) Our second step will be to create a text file to hold our data. So we create a file named "IsolatedStoreProj.txt" using the IsolatedStorageFileStream object. IsolatedStorageFileStream isfs = new IsolatedStorageFileStream("IsolatedStoreProj.txt",System.IO.FileMode.Ope nOrCreate,System.IO.FileAccess.ReadWrite,System.IO. FileShare.ReadWrite,isf); 8) Now just loop through the items in the listbox and serialize all the data in the text file. After wrting the data in the file stream close the file stream.You complete code should look something like this :- private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { IsolatedStorageFile isf = IsolatedStorageFile.GetStore(IsolatedStorageScope.Assembly | IsolatedStorageScope.User,null,null); IsolatedStorageFileStream isfs = new IsolatedStorageFileStream ("IsolatedStoreProj.txt",System.IO.FileMode.OpenOrCreate,System.IO.FileA ccess.ReadWrite,System.IO. FileShare.ReadWrite,isf); string [] sItems = new string[10]; listBox1.Items.CopyTo(sItems,0); string oneString = null; for(int i=0;i<sItems.GetLength(0);i++) { if(sItems[i] != null) oneString += sItems[i].ToString() + ","; else break; } oneString = oneString.Substring(0,oneString.Length - 1); System.Text.ASCIIEncoding asc = new System.Text.ASCIIEncoding(); byte [] byteArray = asc.GetBytes(oneString); isfs.Write(byteArray,0,byteArray.GetLength(0)); isfs.Close(); isf.Close(); } 9) Compile and run this code. On exiting the application a text named IsolatedStoreProj.txt should be created. This file will be created in at the follwoing location <drive>:\Documents and Settings\<user>\Local Settings\Application Data\IsolatedStorage\<some folder>\<some folder>\AssemFiles\IsolatedStoreProj.txt 10) Open the file and you will be able to view the contents we had serialized. 11) Now let us load this data when our application starts up. We will read this file in the form_load event and populate our listbox. private void Form1_Load(object sender, System.EventArgs e) { IsolatedStorageFile isf = IsolatedStorageFile.GetStore(IsolatedStorageScope.Assembly | IsolatedStorageScope.User,null,null); IsolatedStorageFileStream isfs = new IsolatedStorageFileStream ("IsolatedStoreProj.txt",System.IO.FileMode.OpenOrCreate,System.IO.FileA ccess.Read,System.IO.FileShare.Read,isf); byte[] byteArray = new byte[10000]; isfs.Read(byteArray,0,(int)isfs.Length); System.Text.ASCIIEncoding asc = new System.Text.ASCIIEncoding(); string twoString = asc.GetString(byteArray); string[] oneArray = twoString.Split(new char[]{','},10); for(int i=0;i<oneArray.GetLength(0);i++) listBox2.Items.Add(oneArray[i]); isfs.Close(); isf.Close(); } 12) In this way we can store our user setting , application related data in the Isolated store. 13) This store that we have created in our sample application is a non-roaming store. To create a roaming store give the scope as IsolatedStorageScope.Roaming along with assembly and user as specified above. 14) WinNT and Operationg systems after it have a feature called as roaming user profiles which allows the user to carry his perferences and presonal settings across machines on the network.On the same lines .Net provides us with roaming assembly stores so if the user has a roaming Windows profile his roaming assembly store will also roam. 15) The assembly store is roaming only if it is mentioned explictly by mentioning the IsolatedStorageScope if it is not then the scope is non-roaming by default. Even if the user profile is roaming the isolated store can be non-roaming. 16) You can create and list stores through code as well as use storeadm.exe for the same ( as per Part -1). -- Please post your queries and comments for my articles in the usergroup for the benefit of all. I hope this step from my end is helpful to all of us. Regards, Namratha (Nasha) View other groups in this category. Also on MSN: Start Chatting | Listen to Music | House & Home | Try Online Dating | Daily Horoscopes To stop getting this e-mail, or change how often it arrives, go to your E-mail Settings. Need help? If you've forgotten your password, please go to Passport Member Services. For other questions or feedback, go to our Contact Us page. If you do not want to receive future e-mail from this MSN group, or if you received this message by mistake, please click the "Remove" link below. On the pre-addressed e-mail message that opens, simply click "Send". Your e-mail address will be deleted from this group's mailing list. Remove my e-mail address from MumbaiUserGroup. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.778 / Virus Database: 525 - Release Date: 15/10/2004 __________________________________________________ B.D.K.Group of Companies, Mumbai-India ----------------------------------------------------------- To stop getting this e-mail, or change how often it arrives, go to your E-mail Settings. http://groups.msn.com/mumbaiusergroup/_emailsettings.msnw Need help? If you've forgotten your password, please go to Passport Member Services. http://groups.msn.com/_passportredir.msnw?ppmprop=help For other questions or feedback, go to our Contact Us page. http://groups.msn.com/contact If you do not want to receive future e-mail from this MSN group, or if you received this message by mistake, please click the "Remove" link below. On the pre-addressed e-mail message that opens, simply click "Send". Your e-mail address will be deleted from this group's mailing list. mailto:[EMAIL PROTECTED]
