Предыдущий ролик Следующий ролик  

Видео урок: Deploying to Azure web sites

Основы ASP.NET MVC 5

В этом видео я покажу вам, как развертывать приложение на веб-сайты Azure. Microsoft Azure - это расширяемая облачная платформа и инфраструктурные сервисы, по сути, для любых вычислительных нужд, которые только можно себе представить, поскольку помимо сервисов на основе Windows, они предлагают еще и сервисы на основе Linux. Как и большинство провайдеров, для веб-сайтов они предлагают бесплатные планы, но за использование баз данных взимают небольшую плату. Когда записывался этот курс, они предлагали некий пробный период для тестирования всех возможных функций.

Настроить аккаунт довольно легко, особенно если у вас уже есть аккаунт Microsoft. При настроенном аккаунте будет невероятно просто развернуть приложение на Azure прямо из Visual Studio. Перед тем как это сделать, внесем в наш проект несколько небольших изменений, поскольку нам нужно убедиться, что миграции Code First обрабатываются должным образом. В рамках развертывания на Azure мы настроим также экземпляр SQL Server, а наша строка подключения в файле Web.config будет обновляться автоматически.

Пусть автоматические миграции выполняют за нас всю работу по настройке базы данных. Еще убедимся в том, что наш метод Seed выполняется. Можно оставить этот код создания пользователя Администратора, но давайте удалим или закомментируем тестовые операции, поскольку мы собираемся имитировать развертывание на рабочую среду, для которой эти данные будут, скорее всего, не нужны. Позднее мы поговорим о развертывании без использования автоматических миграций, но поскольку мы их все-таки разрешили, нужно для AutomaticMigrationsDataLossAllowed установить значение "true".

Благодаря этому все будет работать более или менее безотказно, так как в рабочей среде мы не планируем использовать консоль диспетчера пакетов, в которой можно было бы при необходимости выполнить команду Update-Database с опцией force. Наконец, удалим эти явные скрипты миграции, созданные ранее в главе 3, поскольку по нашей задумке управлять созданием и обновлением базы данных будут автоматические миграции. А одновременное использование явных и автоматических миграций может привести к возникновению проблем или как минимум к путанице в случае командной работы.

Итак, на данном этапе мы готовы к публикации и развертыванию. Нажмем правой кнопкой мыши на нашем проекте и выберем пункт "Опубликовать" (Publish). В качестве места размещения выберем вариант "Веб-сайты Windows Azure", а затем нажмем кнопку "Зарегистрироваться" (Sign In). Затем рядом с надписью "Веб-сайты" нажмем кнопку "Новый". В качестве имени сайта укажем automatedtellermachine.azurewebsites.net, поскольку, скорее всего, это имя еще не используется. Так и есть. Можно выбрать регион "West US", и пусть будет создан новый сервер базы данных.

Введем имя пользователя "atmweb" и зададим для него пароль, а потом нажмем кнопку "Создать". В качестве способа публикации оставим "Web Deploy", чтобы воспользоваться автоматическим развертыванием на Azure. Помимо этого, можно было бы создать пакет Web Deploy, который устанавливается с помощью скрипта, или выполнить развертывание через FTP, или просто опубликовать приложение в некую директорию файловой системы. Но мы остановимся на варианте "Web Deploy". Итак, на основании этого имени пользователя и пароля будет выполнено развертывание.

В качестве режима конфигурации выберем вариант "Release" (Выпуск) в противоположность варианту "Debug" (Отладка). Некоторые результаты такого выбора мы обсудим в конце этой главы. В разделе "Опции публикации файлов" (File Publish Options) установим флажок в поле "Удалять дополнительные файлы в месте назначения" (Remove any additional files at the destination), т.е. те файлы, для которых в нашем проекте нет соответствий. Предварительная компиляция повлияет на того пользователя, который первым зайдет на сайт после его запуска. Но если нажать на ссылку "Настроить" (Configure), то вы сможете выбрать, каким образом необходимо организовывать ваши сборки, а также указать, хотите ли вы обновлять представления без предварительной компиляции, за что отвечает вот это поле.

Можно установить отметку в поле "Исключить файлы из папки App_Data", поскольку мы не собираемся использовать в рабочей среде файл SQL Server LocalDb. Устанавливая этот флажок мы гарантируем, что наш файл Web.config обновляется с помощью строки подключения к Azure SQL Server, которую мы видели ранее. Кроме того, нужно установить флажок "Выполнять Code First миграции" (Execute Code First Migrations), запускающий необходимые автоматические миграции, чтобы метод Seed выполнялся аналогично тому, как это происходило при выполнении команды Update-Database в консоли диспетчера пакетов.

Затем можно нажать кнопку "Опубликовать". После окончания публикации сайт должен открыться в браузере. Войдем в систему под логином admin@mcvatm, чтобы убедиться, что база данных создана должным образом и выполняется метод Seed. Вроде все хорошо. Портал управления Azure предоставляет вам множество возможностей. Может быть, вам захочется приобрести SQL Server Management Studio, чтобы управлять базой данных удаленно, но вносить изменения в схему или выполнять запросы можно и с помощью этого портала.

Что касается будущих развертываний, если вам нужно что-то изменить в представлении, можете воспользоваться FTP и вам не придется перестраивать и перезапускать свой сайт. Вам просто нужно настроить FTP-пользователя, нажав на ссылку "Set up deployment credentials" (Задать имя пользователя и пароль для развертывания) на панели инструментов. Но всегда можно выполнить повторную публикацию и даже предварительно просмотреть изменения. Итак, как видите, развертывать приложение на веб-сайты Azure невероятно просто. А если у вас настроен аккаунт Azure, вы можете управлять всем процессом прямо из Visual Studio.