Является ли это возможным?

Мы думаем переместить некоторые из «жестко закодированных» настроек из нашего приложения Windows Forms и сохранить их в базе данных sql в таблице под названием App_Settings. Причина этого в том, что в настоящее время у нас есть значения, жестко закодированные в appsettings и app.config, которые могут меняться со временем, и гораздо проще и быстрее обновлять значения в таблице базы данных, чем обновлять, создавать и развертывать приложение поверх три сервера.

Кто-нибудь может посоветовать по этому поводу, а также как мы можем загрузить настройки в приложение, а затем сделать их доступными в любом классе?

Ура Ричард


person Richard.Gale    schedule 22.07.2010    source источник
comment
Если они находятся в файлах конфигурации, значит, они не жестко запрограммированы.   -  person Oded    schedule 22.07.2010
comment
Чтобы получить их из базы данных, просто запросите базу данных (вызовите хранимую процедуру из вашего кода или используйте ORM (или динамический sql, если вам действительно нужно)), а затем заполните значения в статическом классе.   -  person slugster    schedule 22.07.2010
comment
заголовок этого вопроса должен давать некоторую информацию о том, о чем идет речь?   -  person Pedro Rolo    schedule 08.10.2012


Ответы (2)


Взгляните на этот похожий поток: Ресурсы / App.config или База данных, где лучше всего размещать строки приложения

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

person Tim Schmelter    schedule 22.07.2010
comment
Я бы предпочел, чтобы фабричный метод сам возвращал синглтон. Единственное добавление, которое я хотел бы сделать, это реализовать и вернуть интерфейс с завода, я считаю, что настройка может быть немного сложной, когда дело доходит до модульного тестирования. - person Martin Clarke; 22.07.2010

Почему бы вам не использовать что-то вроде YAML для сохранения этих настроек? Было бы легко создать форму для редактирования и сохранения этих настроек в файле вместо базы данных (что добавило бы больше проблем с обслуживанием).

В противном случае я бы предложил использовать что-то вроде NHibernate для использования базы данных и SQLLite в качестве сервера db.

Также обратите внимание, что если вы обновляете эти настройки, я бы не сказал, что это App_Settings, поскольку App_Settings обычно нельзя изменить без

Помогите, это поможет, Пьетро

person Beo    schedule 22.07.2010