Хранение настроек конфигурации в web.config или базе данных - PullRequest
8 голосов
/ 15 февраля 2010

В каком месте лучше всего хранить различные параметры конфигурации модулей веб-сайта.

Создание класса (который наследует ConfigurationSection), который сопоставляет параметры в файле web.config?
Или создать некоторые предложения DAL и BLL, которые работают с базой данных?

Ответы [ 5 ]

7 голосов
/ 15 февраля 2010

Я использовал простую эвристику для классификации каждой переменной конфигурации в одну из четырех категорий:

  1. Конфигурация времени компиляции (изменения выполняются вместе с изменениями кода) - если возможно, то внутри кода или сборки (как встроенный ресурс), в противном случае в файле web.config
  2. Конкретная конфигурация экземпляра сервера (строки подключения SQL, локальные пути к файлам) - в файле web.config
  3. Конфигурация приложения (базы данных) (выбор функций и другие глобальные параметры приложения, которые редко изменяются, если вообще изменяются) - в базе данных, но без пользовательского интерфейса
  4. Конфигурация приложения - в базе данных, доступной через пользовательский интерфейс администратора
5 голосов
/ 15 февраля 2010

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

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

3 голосов
/ 15 февраля 2010

Чтобы на самом деле ответить на вопрос:

Основная информация должна храниться локально в web.config (строки подключения и т. Д.)

Помимо этой другой информации может храниться в любом месте.

Наличие этого в базе данных означает, что легче писать страницы администратора для управления информацией, чем редактировать файл web.config напрямую.

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

Также с данными в базе данных вы можете выполнять удаленное администрирование в системе

Итак, без дополнительной информации о вашем заявлении я не могу дать рекомендации.

0 голосов
/ 15 февраля 2010

Создайте раздел конфигурации. Это довольно просто и соответствует вашим потребностям.

0 голосов
/ 15 февраля 2010

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

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