Web application configuration management for different target environments

Рано или поздно в жизненном цикле любого приложения становятся актуальными задачи развертывания. Это может быть развертывание как на выделенной машине в пределах офиса для того, чтобы передать приложение на тестирование, так и на группе удаленных хостов в облаке, образующих веб-ферму. Где бы не хостилось приложение, встает вопрос об управлении конфигурационными настройками для разных окружений. Эта проблема и одно из ее возможных решений – как раз и будут темой сегодняшнего поста.

Содержание:

  1. Классический способ “в лоб” управления конфигурацией.
  2. Где хранить конфигурационные настройки веб приложения для разных окружений?
  3. Лирическое отступление на тему хороших манер при работе с конфигурационными файлами.
  4. Как использовать ASP.NET web.config transformations для генерации конфигурационных файлов для разных окружений (dev, staging, production).
  5. Использование ASP.NET web.config transformations для любого XML файла, а не только для web.config.
  6. Как используя ASP.NET web.config transformations, иметь возможность компилировать приложение на машине без установленного Visual Studio и ASP.NET, а лишь с .NET Framework 4.0.
  7. Пример использования ASP.NET web.config transformation синтаксиса.
  8. Автоматический выбор конфигурационного файла для целевого окружения, и подготовка deployment package посредством собственного скрипта, написанного на Python.