Где общие места для хранения данных приложения - PullRequest
4 голосов
/ 21 февраля 2011

Я работаю над настольным приложением на базе Windows, и когда приложение запускается, мне нужно где-то хранить небольшой фрагмент данных.

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

Я провел небольшое исследование и выяснил, что есть следующие варианты:

  1. MSMQ
  2. Реестр
  3. простой текстовый файл
  4. общая память
  5. Модель конфигурации .Net

Теперь я использую самый простой - # 3. Мне интересно, как другие люди решают ту же проблему? Есть предложения?

Спасибо

Ответы [ 6 ]

3 голосов
/ 21 февраля 2011

Добавьте 5: модель конфигурации .net.Вы можете установить поля в настройках проекта -> настройки, они будут доступны в пространстве имен AssemblyName.Properties в объекте Settings.

Если вам действительно нужно сделать это самостоятельно, я бы посоветовал вамчтобы сохранить эти файлы в %appdata%\YourProgramName.Вы можете получить путь через Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).

0 голосов
/ 22 февраля 2011

Я использую комбинацию базы данных для более защищенных и специфичных для пользователя данных, таких как имена пользователей и оценки (я создаю игру), и реестр для более глобальных настроек.

0 голосов
/ 22 февраля 2011

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

Однако, если вы следите за процессом Waterfall в своей разработке (большой дизайн заранее), и если вы вообще ожидаете, что требования вашего приложения будут выходить за рамки того, что вы в настоящее время знаете (и это, очевидно, происходит довольно часто) тогда я разработал и создал решение, которое, как известно, хорошо работало в прошлом. Какой-то механизм ядра базы данных, будь то большой вес, например MySQL или Microsoft SQL Server, или облегченная версия, такая как SQLite , обеспечит механизм структурирования скважин для обмена данными между несколькими приложениями.

Здесь также еще одно обсуждение о стеке потока о том, использовать ли SQLite или XML для настроек.

0 голосов
/ 21 февраля 2011

Файловая система - лучшее место для сохранения данных.Если настройки для каждого пользователя, сохраните файлы в домашней папке пользователя.Если настройки являются общими для пользователей, сохраните файлы в общем каталоге данных (это было C:\Program Files в последний раз, когда я использовал Windows).Вам следует создать подкаталог для вашего приложения в любом из этих мест.

Простой текстовый файл подходит для простой строки.

Формат обмена данными, такой как json или yaml, подходит длясложная структура данных.

База данных, такая как SQLite (обычно хранится в файле .db), подходит для случаев, когда вам приходится часто читать и записывать данные на диск.

0 голосов
/ 21 февраля 2011

Если данные, которые вы хотите сохранить, не являются конфиденциальными, то их можно хранить в виде простого текстового файла. Использование% appdata% более централизовано, мне нравится идея.

0 голосов
/ 21 февраля 2011

Возможно, вы сможете использовать встроенные настройки, доступные вам в проекте C #.
Вот ссылка MSDN о том, как использовать настройки в проекте C #.

Руководство по настройке MSDN

Если вам нужно что-то более сложное, плоский файл также может удовлетворить ваши потребности.

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