Можете ли вы открыть указанный пользователем файл в режиме чтения / записи с помощью Silverlight - PullRequest
1 голос
/ 08 декабря 2011

У меня есть некоторые проблемы в Silverlight, когда возникает определенное поведение при сохранении и открытии файлов.

Что бы мы хотели: Мы хотели бы предложить пользователю открыть файл, когдаЗапускается приложение Silverlight.Затем мы прочитали бы любую информацию из этого файла и использовали бы ее, чтобы установить состояние нашего приложения.Мы также хотели бы ответить пользователю, нажав «сохранить», и записать все изменения в состоянии обратно в исходный файл.

Что мы пробовали:

Изолированное хранилище: делаетчто бы мы ни хотели, но у нас слишком много проблем с людьми, которые не могут выполнять резервное копирование работы, стирают жесткие диски, используют разные компьютеры (в одной локальной сети) и т. д. В целом большинство наших пользователей хотели бы сохранить вв указанном месте, чтобы они могли хранить свои работы на сетевом диске или USB-ключе.

Открыть диалоги файлов: предоставьте нам поток только для чтения, мы не сможем обновить файл, когда пользователь нажмет кнопку Сохранить.

Диалоги сохранения файлов: не разрешать нам читать уже существующие конкурсы файла / перезаписывать выбранные файлы.

Режим повышенного доверия: не работает внутри браузера.Локальная установка не возможна, потому что наши пользователи не являются администраторами своих компьютеров.

Есть ли способ выполнить то, что мы хотели бы, что мы упускаем из виду?

1 Ответ

2 голосов
/ 08 декабря 2011

Краткий ответ: нет.

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

Вместо состояния «Открыть / Сохранить файл» состояния приложения используйте «Импорт / Экспорт». Пользователи с большей вероятностью согласятся с необходимостью указать файл в OpenFileDialog для импорта и , чтобы указать файл (хотя и тот же) в SaveFileDialog для экспорта.

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

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

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

...