UWP / C # Советы по хранению пользовательских данных приложения? - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужно немного советов / мнений по хранению данных.

Я смотрю на то, чтобы по существу сохранить пользовательские вводные данные, а затем часто ссылаться на них. Я хотел бы избежать хранения базы данных, поскольку на все это будут ссылаться локально. Я видел, что вы можете создавать сериализованные объекты XML и т. Д., И хотел знать, что вы думаете о хранении данных.

Если я покажу вам, что я делаю шаг за шагом, это может дать лучшее представление о том, чего я пытаюсь достичь:

  • Пользователь загружает программу
  • Программа читает файл хранилища
  • Различные элементы управления, такие как GridView и текстовые поля, отображают определенные части документа, такие как имена, даты и т. Д.
  • Пользователь может добавить в файл, введя данные в разные поля на всем листе.
  • Пользователь может свободно сохранять файл при необходимости, может создавать новые файлы при необходимости и может открывать листы в любой точке
  • Вся информация должна масштабироваться. пользователь может добавить до 50 дат, 30 имен и т. д., и каждое из них не может мешать другому полю данных. Все эти данные для каждого конкретного типа будут доступны для элементов управления пользовательского интерфейса

Это немного сложная задача, и я пытался сделать все это с использованием XML. Я не уверен, что это лучший способ сделать это, и хотел узнать ваше мнение. Главным образом из-за способа, которым данные могут динамически корректироваться все время через пользовательский ввод.

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

1 Ответ

0 голосов
/ 03 сентября 2018

Я лично использую Newtonsoft JSON для сохранения своих пользовательских данных. Вы можете построить все свои классы как обычно, а затем довольно легко интегрировать сериализатор / десериализатор JSON без особых хлопот. Будут некоторые исключения, для которых может потребоваться настраиваемый сериализатор, но их не так сложно сделать, особенно если вам нужно интерпретировать только одну небольшую часть, а затем просто передать оставшуюся часть файла сериализатору по умолчанию.

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

using Newtonsoft.Json;

[JsonObject]
public class UserData {
    [JsonProperty] //Add a JSON property "Username" which is a string
    public string Username { get; set; }

    //IEnumerable types are converted to/from arrays automatically by Newtonsoft        
    [JsonProperty("Options")] //Set the name in JSON file to "Options"
    public Dictionary<string, string> Preferences { get; set; }

    [JsonIgnore] //Excludes this property from the JSON output
    public bool SaveRequired { get; set; } //Set true when a change is made, set false when saved
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...