Использовать файл ini / appconfig или файл sql server для хранения пользовательских настроек? - PullRequest
2 голосов
/ 16 мая 2010

Я знаю, что предпочтение INI или appconfig XML заключается в их удобочитаемости.

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

Я всегда использовал комбинацию INI и appconfig.

Сейчас я склоняюсь к использованию файла базы данных sql server. Каждый раз, когда пользователь изменяет предпочтение во время использования приложения, оно будет сохранено в файле базы данных - это моя точка зрения. Я также думаю, что такой файл db config может перемещаться вместе с приложением, как INI.

Прежде чем я это сделаю, любой совет
1. Если есть какие-либо недостатки в использовании файла db поверх INI или appconfig.
2. Если магазин использует mysql или oracle, как вы думаете, ваши коллеги подняли бы вопрос о том, почему вы используете технологию sql server в mysql или oracle shop? Я имею в виду, я все равно использую его как INI-файл или app.config, верно?

Дополнительная информация :
Я надеюсь, что люди, читающие мой вопрос, понимают, что я использую не «корпоративную базу данных», а «Preferences.mdf», хранящийся вместе с приложением. В этом я надеюсь использовать ado.net для хранения пользовательских настроек в качестве сущностей.

Ответы [ 3 ]

4 голосов
/ 16 мая 2010

Это действительно зависит от архитектуры вашего приложения.

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

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

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

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

3 голосов
/ 16 мая 2010

Я часто храню пользовательские настройки в централизованной базе данных, поскольку это означает, что пользовательские настройки могут «перемещаться» с ПК на ПК.

Другим плюсом является резервное копирование пользовательских настроек.

2 голосов
/ 16 мая 2010

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

Однако есть исключения из этого, и я сохраняю следующее в текстовом файле (обычно app.config):

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

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

В коде я пишу единственный класс конфигурации, который «знает», хранится ли запись конфигурации в текстовом файле или в базе данных; это позволяет мне перемещать конфигурацию из одной в другую, не прерывая все ссылки на нее.

Херби

...