locked
Изолированное хранилище RRS feed

  • Общие обсуждения

  • При разработке Desktop приложений, пользовательские настройки приложения, как правило, хранил:

    • В файле конфигурации;
    • В собственном XML-формате (с помощью сериализации объектов);
    • Реестр.

    И почему-то ни разу не использовал System.IO.IsolatedStorage.IsolatedStorage.

    Сейчас же, с приходом Windows Store, разработчику дано хранить свои настройки в:

    • Локальные данные — все настройки сохраняются в реестре или внутри
      файлов, ассоциированных с конкретным пользователем;
    • Роуминг данных — данные размещаются в облаке и могут использоваться
      приложением на различных устройствах;
    • Временные данные — данные размещаются во временном хранилище
      и могут быть удалены в любой момент;

    Получается, что локально предоставляется тот же самый  IsolatedStorage (под названием StorageFolder), но только с реализацией под WinRT. Никаких тебе app.config, никаких Registry и RegistryKey!

    В связи с этим задумался, а не стоит ли использовать  IsolatedStorage для хранения пользовательских настроек и для Desktop приложений? Понятно, что все зависит от текущей задачи и все такое, но все же... Если заморочек с этим классом особых нет (не надо создавать всякие RegistryWrapper'ы и наследовать ConfigurationElement для создания своих элементов и секций в конфинге) и механизм очень похож на реализацию в WinRT (что тоже +)!

    Хотелось бы услышать мнения тех, кто использовал  IsolatedStorage, а также плюсы и минусы по сравнению с другими вариантами. Желательно на реальных проектах.


    21 января 2013 г. 11:55

Все ответы

  • Вопрос наверное стоило задавать в разделе "Настольные ПК".

    По теме - IsolatedStorage не использовал, но логика подсказывает, что раз в приложениях WinRT дают упор на подобный вид сохранения, то он предпочтителен и в Desctop, просто склонить к нему сложнее ввиду большего количества альтернатив. Ну и к слову - свои файлы XML можно использовать и WinRT, но в мануалах этому не учат :)


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    21 января 2013 г. 12:44
  • По поводу раздела я все таки промахнулся, признаюсь... :)

    А свои XML файлы в WinRT - куда их сохранять? В тот же самый StorageFolder.

    21 января 2013 г. 12:54
  • Само неиспользование данного класса в Windows приложения может быть связано с тем, что класс появился в .net 3.5 только и не все разработчики о нем узнали, плюс привыкли к старым методам хранения данных приложения.

    Реестр - это вообще отдельная тема и головная боль, что там только не сохраняли :)

    Минусами, а может и плюсом - смотря что за приложение - может быть то, что изолированное хранилище у каждого пользователя свое и общие настройки для всех придется хранить где-то в другом месте.


    Для связи [mail]

    24 января 2013 г. 11:29
  • Само неиспользование данного класса в Windows приложения может быть связано с тем, что класс появился в .net 3.5 только и не все разработчики о нем узнали, плюс привыкли к старым методам хранения данных приложения.

    Старый конь борозды не испортит... :)

    В примерах, которые есть в сети в основном использование с ClickOnce или Silverlight, а для Desktop практически нет...

    Минусами, а может и плюсом - смотря что за приложение - может быть то, что изолированное хранилище у каждого пользователя свое и общие настройки для всех придется хранить где-то в другом месте.

    Изолированные хранилища полезно использовать во многих ситуациях:

    • Загружаемые элементы управления;
    • Хранение общих компонентов;
    • Хранение на сервере;
    • Перемещение.

    Более подробно тут.

    Но мне кажется раз уж в Microsoft решили использовать его аналог в WinRT, то стоит обратить внимание на IsolatedStorage.

    25 января 2013 г. 6:23