Один файл конфигурации для нескольких сред - PullRequest
0 голосов
/ 11 мая 2010

В настоящее время я работаю с системами, которые имеют довольно много параметров конфигурации, которые зависят от конкретной среды (Dev, UAT, Production). У кого-нибудь есть предложения по минимизации изменений, необходимых для файла конфигурации при перемещении между средами, а также по минимизации дублирования данных в файле конфигурации?

В основном это настройки приложения, а не настройки пользователя.

То, как я сейчас это делаю, примерно так:

<DevConnectionString>xyz</DevConnectionString>
<DevInboundPath>xyz</DevInboundPath>
<DevProcessedPath>xyz</DevProcessedPath>
<UatConnectionString>xyz</UatConnectionString>
<UatInboundPath>xyz</UatInboundPath>
<UatProcessedPath>xyz</UatProcessedPath>
...
<Environment>Dev</Environment>

И затем у меня есть класс, который читает в настройках среды через класс My.Settings (это проект VB), а затем использует его, чтобы решить, какие другие настройки получить. Это приводит к слишком большому дублированию, поэтому я не уверен, стоит ли оно того.

1 Ответ

1 голос
/ 11 мая 2010

Почему бы среде не определить файл конфигурации для чтения, а затем ввести этот файл без префиксов? Таким образом, вы можете анализировать различные конфигурации с помощью одного и того же кода.

my.settings: прочитайте это, чтобы выяснить, какой файл настроек использовать.

<EnvironmentMapping>
    <Environment>Dev</Environment>
    <File>dev.settings</File>
</EnvironmentMapping>
<EnvironmentMapping>
    <Environment>Uat</Environment>
    <File>uat.settings</File>
</EnvironmentMapping>
<Environment>Dev</Environment>

dev.settings: это настройки для среды разработки. Это только для чтения, если Dev выбранная среда.

<ConnectionString>devconnection</ConnectionString>
<InboundPath>devinbound</InboundPath>
<ProcessedPath>devprocessed</ProcessedPath>

uat.settings: Это настройки для среды UAT. Это только для чтения, если Uat выбранная среда.

<ConnectionString>uatconnection</ConnectionString>
<InboundPath>uatinbound</InboundPath>
<ProcessedPath>uatprocessed</ProcessedPath>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...