Мы выполнили один из таких проектов, где две версии приложения (обычное развертывание IIS и Azure) должны поддерживаться параллельно.Хотя между этими двумя версиями были существенные различия, мы использовали одну единую базу кода.Это сработало довольно хорошо, я думаю, у нас было бы больше проблем, если бы мы решили пойти с филиалами.
Несколько советов, облегчающих использование единой базы кода в устаревших и Azure развертываниях:
1: Различия в поведении в коде легко устранить с помощью динамическогоcheck
if (RoleEnvironment.IsAvailable)
{
// Azure specific code
}
else
{
// normal IIS code
}
Любые различия в пользовательском интерфейсе могут быть сделаны таким образом, скрывая / скрывая элементы со страницы.
2: Создайте отдельные конфигурации проекта и решения для) Развертывание производства IIS, b) Отладка IIS, c) Производство Azure и d) DevFabric.Используйте преобразования web.config, чтобы обойти любые различия в web.config.
3: Для отладки под DevFabric используется базовая версия (т.е. не преобразованная версия) файла web.config.Я обнаружил, что проще сделать ваш базовый web.config неизменным для среды DevFabric (т.е. преобразование, которое вы создадите для DevFabric, будет пустым).Это облегчает отладку под DevFabric.Побочным эффектом является невозможность отладки в Callipso.В качестве обходного пути для проблемы Callipso настройте обычный IIS на своем устройстве разработчика и используйте WebDeploy для публикации вашего пакета, созданного с использованием конфигурации отладки IIS, в локальный экземпляр IIS.