metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-05-06 12:34 pm

.NET, app.config.d

Посетила странная идея.
Вот в дотнет-приложениях есть такой файлик app.config, где хранятся настройки. Когда инстансов этих приложений становится сильно много и они незначительно отличаются настройками - возникает необходимость хранить кучу слабо отличающихся файлов конфигурации, и при доработках и появлении новых настроек - обновлять их в продакшене и заниматься прочей такой чернью.
Так вот, может использовать метод, что практикуется в линуксах - объединять несколько файлов настроек в один, причем раскидать их по углам - общие в папке приложения, меняются вместе с деплойментом новой версии, частные, привязанные к месту деплоймента - где-нибудь отдельно. Или же по такому принципу, как в убунте локальные настройки вынесены в /etc/default/

[identity profile] feorex.livejournal.com 2014-05-06 09:46 am (UTC)(link)
Ребе в курсе про web.config Transformation ?

[identity profile] metaclass.livejournal.com 2014-05-06 09:50 am (UTC)(link)
У меня там не web.config, но надо глянуть, вдруг и к обычным приложениям применимо.

[identity profile] pascendi.livejournal.com 2014-05-06 10:04 am (UTC)(link)
В правильной операционной системе для этого существуют файлы .plist в общей библиотеке и библиотеке пользователя :-)

[identity profile] norguhtar.livejournal.com 2014-05-06 10:11 am (UTC)(link)
Ну вообще это больше вопрос к системе деплоймента. К примеру в maven есть профили. По умолчанию настраиваем профиль для разработки. И делаем отдельный профиль для продакшена.
develop7: (dero)

[personal profile] develop7 2014-05-06 10:16 am (UTC)(link)
этот тот plist, в котором у dict позиционнозависимое содержимое? мало того, что XML, так ещё и пользоваться не умеют.

[identity profile] metaclass.livejournal.com 2014-05-06 10:25 am (UTC)(link)
Я не хочу при деплойменте править один файл, тем более xml - лучше бы копировать куски конфигов.

[identity profile] norguhtar.livejournal.com 2014-05-06 10:28 am (UTC)(link)
Ну с моей точки зрения это более очевидный путь. Как это будет делаться изменением файла или подкладыванием нужного это уже другой вопрос. Я просто к тому что стоит посмотреть систему деплоймента.

[identity profile] bydlorus.livejournal.com 2014-05-06 10:49 am (UTC)(link)
В MS кстати тоже, например, позиционированное положение атрибутов. В том плане, что msxml это положение сохраняет, а виндопрограммеры ведь пользуется ну буквально всем, чем им разрешает пользоваться ms. Поэтому, скажем, нам при портировании под линукс приходится эмулировать данное поведение msxml.

[identity profile] denisioru.livejournal.com 2014-05-06 10:51 am (UTC)(link)
А ребе в курсе, что отдельные секции можно хранить в отдельных файлах?


Ну и никто не запрещает делать свои секции, со своим обработчиком, которые хранят данные в нужном вам формате и месте.

[identity profile] altmind.livejournal.com 2014-05-06 10:54 am (UTC)(link)
ППКС

[identity profile] metaclass.livejournal.com 2014-05-06 10:56 am (UTC)(link)
А секции с собственными обработчиками можно вынести в отдельные файлы?

[identity profile] denisioru.livejournal.com 2014-05-06 10:57 am (UTC)(link)
Не пробовал, но думаю да,

[identity profile] berezovsky.livejournal.com 2014-05-06 11:02 am (UTC)(link)
Мерзопакостное ебло. Решить один раз, запихать в скрипт или инсталлятор и забыть.

[identity profile] jakobz.livejournal.com 2014-05-06 12:36 pm (UTC)(link)
Там выше писали про несколько файлов. App.config-файлы еще и наследуются: есть machine.config, потом системный web.config, потом у сайта и у вложенных папок сайта может быть.

Недавно было, например - главный web.config запрещал потомкам менять настройки авторизации для подпапок.

Короче там жесть и пауки, при этом я хз как по-простому переопределить себе connection string в отдельном файлике.

[identity profile] love5an.livejournal.com 2014-05-06 04:52 pm (UTC)(link)
Трансформации конфигов есть. Первый коммент.

[identity profile] ext-1741091.livejournal.com (from livejournal.com) 2014-05-06 09:19 pm (UTC)(link)
Я тебе давно говорил - нужно вообще на свою систему конфигов перейти.