Одно и то же приложение не может работать в обеих средах, но вы можете развернуть приложение для каждой среды из одной и той же базы кода. Это означает, что в пакет развертывания Windows Azure входит расширенный набор обычных веб-приложений.
Я собираюсь предположить, что вы не будете использовать хранилище BLOB-объектов, очереди и т. Д., Поскольку в этом случае у вас, очевидно, возникнут проблемы.
По сути, развертывание в Windows Azure является традиционным веб-приложением, но с добавлением нескольких вещей (список не обязательно завершен):
- Ваша кодовая база должна содержать определения и конфигурации сервисов (это всего лишь файлы XML)
- Ваше веб-приложение должно иметь RoleEntryPoint. В шаблоне VS2008 это класс WebRole, который наследуется от RoleEntryPoint (в WebRole.cs).
Точно так же, как вы не можете использовать очереди Azure, большие двоичные объекты и т. Д. В своей традиционной среде Windows Server, есть функции .NET Framework, которые вы можете использовать, но которые не будут поддерживаться в Windows Azure (на данный момент вы не можете записывать в NTFS-подобную файловую систему, хотя это будет возможно после запуска Windows Azure Drives).
В целом, я думаю, что вы могли бы поддерживать два экземпляра приложения из одной и той же базы кода, но вам всегда нужно помнить о различиях между Azure и традиционным развертыванием. Также имейте в виду, что процедуры развертывания сильно отличаются.
PS. Я думаю, что это может измениться с выходом Windows Server AppFabric. Я не уверен, но вы можете заняться расследованиями.