Да, вы можете. Но вам также нужно знать об определенных ограничениях, ни одно из которых не было упомянуто в уже полученных ответах:
- Ваше приложение должно быть без состояния , если только вы не используете один экземпляр (для большинства приложений надежность 99,9% - это нормально, но есть некоторые, где вы хотите 99,95%, поэтому вам нужно как минимум два экземпляра + это дает вам дополнительные преимущества балансировщика нагрузки и т. д.). Причина этого заключается в том, что если у вас есть более одного экземпляра, балансировщик нагрузки доставит запрос в другой экземпляр. Для решения этой проблемы вы можете использовать AppFabric Cache .
- У вас нет файловой системы - это не совсем так, но в действительности вам никогда не следует полагаться на наличие локальных файлов. Все загруженные вами изображения (например, изображения профиля пользователя) должны быть загружены в хранилище BLOB-объектов и связаны с ними. Как это сделать, это другой вопрос, и к нему можно подходить по-разному в зависимости от архитектуры вашего существующего приложения. С помощью Azure Drive вы можете получить доступ к файлам, но это очень медленно.
- Нет журнала событий / RDP - это также только частично верно, но вам следует полагаться на другие способы получения диагностической информации из вашей роли. Хотя вы можете выполнить RDP к своему экземпляру роли, существуют более эффективные способы (например, хранилище диагностики Azure).
- База данных должна выбираться тщательно. Конечно, у вас есть SQL Azure, но он стоит дороже (1 ГБ = 10 долларов США в месяц). Если вам удастся избежать таких вещей, как Table Storage, вы можете сэкономить на некоторых расходах. Опять же, это во многом зависит от архитектуры.
Что касается второй части вашего ответа. MVC как шаблон хорош. Это экономит ваше время, гораздо более адаптируется к вебу, чем когда-либо. Система, основанная на событиях, была разработана для настольных приложений и была перенесена в Интернет. Тем не менее, переход на Azure не подразумевает необходимость перехода на MVC. Однако то, что я предлагаю вам сделать, - это воспринимать это как хорошую стартовую возможность заглянуть в MVC и посмотреть, как это может помочь вам писать свои приложения лучше и быстрее.
Как и в любом другом случае, связанном с архитектурой приложений, это зависит . Если вы использовали общие шаблоны (например, IOC, Repository), вам будет очень легко перенести любое приложение в Azure.