2014-09-22 2 views
0

У меня есть приложение Metro с SQlite DB, которое предварительно заполнено некоторыми данными. Пользователь может изменить и добавить дополнительные данные.Приложение Windows Store и данные пользователя SQLite

Вопрос: Как я могу хранить данные пользователя между обновлениями приложений? А в какую папку я должен выбрать:

Windows.ApplicationModel.Package.Current.installedLocation или Windows.Storage.ApplicationData.Current.LocalFolder?

ответ

1

Возможно, вы захотите использовать оба местоположения.

Установленное местоположение включает в себя любые данные, которые поставляются с приложением. Он доступен только для чтения, и поэтому пользователь не может изменять или добавлять данные в этом месте.

Папки ApplicationData предназначены для пользователей и могут быть доступны для записи. Они будут сохраняться через обновления.

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

Пока приложение не копирует данные, находящиеся в папке ApplicationData, данные пользователя будут сохраняться между обновлениями. Если пользователь просто добавляет данные и не изменяет предварительно заполненные данные, или если предварительно заполненные данные не изменяются с обновлениями, это легко. Вы можете просто скопировать любые новые данные, но не перезаписывать существующие данные.

Если пользователь может изменить предварительно заполненные данные, и если обновление может изменить предварительно заполненные данные, тогда это немного сложнее: вам понадобится система, чтобы узнать, пришли ли данные от пользователя или нет, а затем обновите его, только если он не пришел от пользователя. Как лучше всего это будет зависеть от базы данных и данных. Две возможности - это измененный столбец или отметка времени.