Welcome to MSDN Blogs Sign in | Join | Help

Секреты Visual Studio

Советы пользователям Microsoft Visual Studio от Сары Форд (и не только)

News

  • 16 декабря 2008: выпущен пакет обновлений SP1 для русской версии Visual Studio 2008! Читай здесь: http://blogs.msdn.com/rusaraford/archive/2008/12/19/sp1-visual-studio-2008.aspx 28 октября 2008: Visual Studo 2008 и Библиотека MSDN теперь и на русском! Читай здесь: http://blogs.msdn.com/rusaraford/archive/2008/10/29/microsoft-visual-studio-2008-msdn.aspx 19 сентября 2008 г. - на TechDays.ru опубликована презентация, посвященная выходу русифицированной версии Microsoft Visual Studio 2008 и Библиотеки MSDN 11 августа 2008 г. - выпущены обновления: Visual Studio 2008 SP1 и .NET Framework 3.5 SP1 8 июля 2008 г. – опубликован перевод статьи Брайана Келлера "Наиболее надежный и быстрый способ скачать Rosario / VS2008 VPC" 20 июня 2008 г. – начало публикации блога Сары Форд «Секреты Visual Studio»
Из блога Майка Сноу: Использование Isolated Storage в Silverlight

Silverlight использует Isolated Storage, как виртуальную файловую систему для хранения данных в скрытых папках на вашем компьютере. Он делит данные на две части: первая содержит служебную информацию такую, как размер выделенного дискового пространства. Вторая же содержит собственно данные. Любое приложение Silverlight получает собственную порцию выделенного пространства, которое по умолчанию равно 1 мегабайту.

Преимущества:

  1. Isolated Storage является прекрасной альтернативой использованию куки, особенно, если вы работаете с большими объемами данных. Например, когда вы реализуете undo функциональность в вашем приложении, выбранные товары в корзине, настройки окна и любые другие настройки, которые ваше приложение может прочесть при следующем сеансе.
  2. Isolated Storage хранит данные разных пользователей раздельно, что позволяет и серверной части разделять уникальные пользовательские настройки.

Потенциальные ловушки:

  1. Системные администраторы могут ограничивать дисковое пространство, выделяемое для этих целей, что не гарантирует наличия достаточного пространства. Поэтому важно добавить обработку такого рода исключений в ваш код.
  2. Не смотря на то, что Isolated Storage находится в скрытой папке, эта папка все же может быть найдена с минимальными усилиями. Таким образом, эти данные не являются абсолютно безопасными, т.к. пользователь может их изменить или вовсе удалить. Вы можете использовать криптографические классы для шифрования данных, чтобы предотвратить их изменения пользователем.
  3. Системные администраторы могут и вовсе запретить запись в Isolated Storage. Код должен иметь IsolatedStorageFilePermission для того, что писать в Isolated Storage.

Подытоживая выше сказанное, давайте посмотрим, как мы сохранять и читать данные. Обратите внимание на то, что вам понадобится добавлять ссылки и на System.IO.IsolatedStorage, и на System.IO пространства имен.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO.IsolatedStorage;
using System.IO;
 
namespace SilverlightApplication10
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
            SaveData("Hello There", "MyData.txt");
            string test = LoadData("MyData.txt");
        }
 
        private void SaveData(string data, string fileName)
        {
            using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (IsolatedStorageFileStream isfs = new IsolatedStorageFileStream(fileName, FileMode.Create, isf))
                {
                    using (StreamWriter sw = new StreamWriter(isfs))
                    {
                        sw.Write(data);
                        sw.Close();
                    }
                }
            }
        }
 
        private string LoadData(string fileName)
        {
            string data = String.Empty;
            using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (IsolatedStorageFileStream isfs = new IsolatedStorageFileStream(fileName, FileMode.Open, isf))
                {
                    using (StreamReader sr = new StreamReader(isfs))
                    {
                        string lineOfData = String.Empty;
                        while ((lineOfData = sr.ReadLine()) != null)
                            data += lineOfData;
                    }
                }
            }
            return data;
        }
    }
}

Выдержка из блога Майка Сноуссылка на оригинал

Авторские права Майка Сноу. Переведено с разрешения Майка Сноу.

Technorati Tags:

Posted: Sunday, January 11, 2009 10:47 AM by Vitaly Zaiko
Filed under:

Comments

No Comments

Anonymous comments are disabled
Page view tracker