Несколько сред в ASP.Net MVC 2 - PullRequest
6 голосов
/ 25 ноября 2010

Я изучаю ASP.Net MVC 2 на основе PHP и некоторого опыта работы с Rails, и мне кажется, что единственное, что мне не нравится, это то, как вы управляете настройками конфигурации, такими как строки подключения или конечные точки для внешних служб.

С PHP-фреймворком, который использовала моя предыдущая компания, существовал стандартный формат и соглашение для конфигурационных файлов. Моя компания смогла использовать это, чтобы сделать так, чтобы другой конфигурационный файл загружался на основе переменной среды (которая была установлена ​​в конфигурации Apache). Это сделало очень простым и автоматическим изменение любых настроек конфигурации в зависимости от среды. Насколько я знаю, в Rails есть встроенная версия этой функциональности.

Я знаком с файлами app.config и web.config в мире .Net, но есть ли способ, чтобы эти изменения основывались на среде, предпочтительно автоматически и с различными уровнями детализации? Вся система конфигурации кажется очень анемичной по сравнению с тем, к чему я привык.

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

Ответы [ 4 ]

3 голосов
/ 25 ноября 2010

Есть преобразования web.config .

Я, вероятно, ошибаюсь, но, похоже, я вспоминаю, что они не будут применены, если просто запустить приложение с помощью «Начать отладку(F5) "внутри Visual Studio, что делает эту функцию непрактичной для многих целей.

1 голос
/ 03 декабря 2010
0 голосов
/ 08 декабря 2010

Лично я использую machine.config для управления настройками среды.Этот файл содержит параметры, относящиеся к конкретной машине.

Если у вас нет выделенных машин для каждой среды, но вместо этого вы используете разные веб-сайты в IIS, у вас может быть корневой файл web.config, расположенный в корне каждой сети.сайт, содержащий параметры среды.

В основном в этом глобальном файле конфигурации я храню пары ключ / значение, содержащие имена моего SQL Server, сервера веб-служб, ... которые различаются в зависимости от среды, а затем в моем приложении я используюэти ключи для построения окончательных строк соединений, веб-адресов http, ...

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

0 голосов
/ 25 ноября 2010

Очевидно, что вы можете запустить свою среду в режиме «Отладка» или «Выпуск».Переменная ENV в Rails и аналогичные соглашения в PHP явно являются одной из их сильных сторон.Как с любым выбором, всегда есть компромисс, и это один из них.Когда я в рельсах, я могу оценить способность загружать вашу переменную ENV (test, dev, production ...) соответствующими драгоценными камнями и тому подобным.Это великолепно.Когда я в рельсах, между VS intellisense есть и существенная разница, вероятно, лучшая.

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

...