2011-01-09 3 views
5

Когда у вас есть система из нескольких приложений, веб-сервисов и служб Windows, что лучше?web.Config vs Database Settings table

Вариант 1) Поместите все настройки в таблицу базы данных и кешируйте ее где-нибудь, возможно, вам придется использовать веб-службу для совместного использования объекта кеша в приложениях. Затем вы можете просмотреть некоторые из этих настроек в сетке для манипуляций с пользователем.

Вариант 2) Поместите все настройки в общий файл конфигурации и пусть web.config или app.config каждого приложения указывают на этот файл, я уверен, что есть способ разместить эти настройки в сетке, но, возможно, вы потеряете возможность «показывать настройки на основе роли».

Благодаря

ответ

2

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

Как правило, я стараюсь хранить свой web.config & app.config довольно маленький. Настройки для инфраструктурных вещей (например, модули для загрузки, связывание, настройки журнала, настройки ОРМ и т. Д.). Все, что мне действительно нужно или нужно иметь доступ к App_start или моему методу Main(), в основном.

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

0

Я бы предложил разместить конфигурацию в базе данных и затем извлечь ее на основе приложения. Вы также можете написать один XML, который содержит различные конфигурации и загрузить его на datagrid и т. Д. Этот способ управления конфигурацией становится проще, потому что у вас есть один файл для поддержки.

1

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