У меня есть некоторые значения конфигурации для веб-приложения asp.net. После запуска системы они будут поддерживаться системным администратором. Следует ли мне хранить эти значения в базе данных или в файле конфигурации? Есть ли лучшая практика для такого рода вещей?
Значения конфигурации в БД или в файле?
Ответы (7)
Легко и удобно создать надежный интерфейс для редактирования значений в базе данных.
Сложнее создать хороший файл конфигурации.
Поэтому я обычно хочу сохранить в базе данных все, что вы хотели бы, чтобы ваши пользователи / администраторы могли редактировать позже. Все, что нужно только коснуться во время серьезных изменений, таких как переустановка и т. Д., Лучше указать в файле конфигурации.
Я всегда рекомендовал бы базу данных просто потому, что вы можете относительно легко создать пользовательский интерфейс администратора и с такой же легкостью проводить аудит всех изменений. Хотя вы можете сделать то же самое с изменениями в файле, всегда предпочтительнее использовать маршрут к базе данных с какой-то областью управления Admin. Особенно, если вы хотите знать, кто что и когда изменил.
Также в нашей среде изменение файла конфигурации в случае ошибки включает в себя утверждение всего процесса управления изменениями и т. Д., Что довольно болезненно. Так что, если вы потратите время на включение параметров конфигурации в базу данных, я думаю, что в долгосрочной перспективе это сработает лучше. Только мои 0,02 доллара.
Я предпочитаю текстовый файл конфигурации, стиль .ini или стиль XML по этим двум причинам:
1 - Вы можете помещать комментарии в текстовый файл.
2 - В текстовых редакторах есть команда «отменить».
В зависимости от контекста информации о конфигурации вы можете оставить ее в файле web.config или создать для нее таблицы обслуживания в базе данных. Я бы, как правило, сохранял более специфичные для бэкэнда вещи, такие как строки подключения, расположение ftp, имена пользователей / пароли (для приложения, а не разрешения пользователей) в файле web.config.
Обычно я храню в базе данных больше относительной информации, относящейся к информации в базе данных, а не к самому приложению.
Однако все это основано на нестрогой основе и не всегда так.
Я предпочитаю избегать баз данных, если могу, и мне не нужна производительность. Если вам нужна / есть база данных, я бы сказал, поместите как можно больше в одном месте. Одно дело управлять.
Я думаю, что базы данных - отличное место для значений конфигурации для распределенных приложений, где вы хотите, чтобы настройки пользователей были доступны им, независимо от того, какой компьютер они используют.
Значения конфигурации, хранящиеся в файлах, очень полезны для конкретных конфигураций компьютера (например, если вы используете подключенный диск для определения местоположения, и каждый пользователь может иметь другое сопоставление, например, привод CD / DVD).
Однако, если у вас еще нет базы данных для разрабатываемого приложения, иметь базу данных исключительно для конфигурации приложения может быть излишним.
Я предпочитаю текстовый .ini
файл. Их легко редактировать, и их легко перемещать, когда ваше приложение перемещается. Вот пример Setting
class, который может вам пригодиться.