Разработка приложений. Часть 1. ASP.NET и ASP.NET MVC 3
В данном цикле мы приведем набор пошаговых примеров, иллюстрирующих основные подходы к созданию приложений на платформе Windows Azure. Подготовка Для создания приложений для Windows Azure нам потребуется:
Все необходимые для разработки средства можно установить через утилиту Web Installer, которая еще и настроит IIS и прочие необходимые для работы сервисы, а также установит необходимые обновления операционной системы (подробнее см. https://www.microsoft.com/windowsazure/sdk/). Рис. Установка средств разработки Если у вас нет доступа к Windows Azure, можно использовать средства локальной эмуляции (как вычислительных сервисов, так и сервисов хранения), описанные в серии публикаций «Windows Azure. Быстрый старт. Локальная разработка для «облака». Часть 1. Создание ASP.NET-приложения В этой части мы рассмотрим шаги по созданию веб-роли, выполняемой в Windows Azure. Веб-роль выполняется внутри виртуальной машины, которая располагается на платформе Windows Azure. Инфраструктура этой платформы управляет и виртуальными машинами, и серверами. Задача разработчика заключается в создании приложений, все остальные задачи берет на себя Windows Azure. Запустим Visual Studio 2010 с административными привилегиями – это требуется во избежание возможных ошибок из-за отсутствия необходимых привилегии при использовании ряда сервисов, например, сервисов локальной эмуляции Windows Azure. Выполним команду File | New | Project и в списке Installed Templates выберем раздел Visual C#, затем – Cloud. Рис. Создание нового проекта Выберем Windows Azure Project и, при необходимости, изменим его название и местоположение. Нажмем кнопку «Ок» для создания проекта. В диалоговой панели New Windows Azure Project выберем элемент ASP.NET Web Role и нажмем кнопку с символом «>». Диалоговая панель должна выглядеть следующим образом: Рис. Добавление элемента проекта Мы добавили к нашему проекту веб-роль, которая обеспечивает среду для выполнения веб-приложений и сайтов в Internet Information Services (IIS) 7.0. Нажмем кнопку Ok для создания проекта. В целом, наше базовое приложение готово к развертыванию и запуску. Но перед тем как выполнить этот шаг, давайте изменим содержимое файла Default.aspx. Выберем этот файл в Solution Explorer, перейдем в режим редактирования исходного текста и после тэга <h2> введем текст: «Running in Windows Azure». Удалим два последующих параграфа, содержащих ссылки на справочную информацию по ASP.NET. Содержимое файла Default.aspx должно теперь выглядеть так: Рис. Модифицированный файл Default.aspx Выполним команду Debug | Start Without Debugging (или нажмем комбинацию клавиш Ctrl+F5). После компиляции, наше приложение будет запущено под локальным эмулятором Windows Azure. Рис. ASP.NET-приложение Тот факт, что приложение работает под локальным эмулятором, отражается в адресной строке браузера: Рис. Работа под локальным эмулятором В Solution Explorer обратим внимание на два конфигурационных файла - ServiceDefinition.csdef и ServiceConfiguration.cscfg. Расширение .csdef указывает на то, что этот файл, описывает «облачный» сервис (cloud service definition), расширение .cscfg – на то, что этот файл описывает конфигурацию «облачного» сервиса (cloud service configuration). Файл ServiceDefinition.csdef содержит метаданные, используемые Windows Azure для хостинга приложений, а файл ServiceConfiguration.cscfg – конфигурационные настройки приложения и число экземпляров для выполнения каждой роли, включенной в приложение. Откроем файл ServiceDefinition.csdef и изменим размер виртуальной машины для нашей веб-роли. По умолчанию используется размер «Small», который мы заменим на «ExtraSmall». Для этого найдем в файле элемент <Web Role> и в атрибуте vmsize заменим значение «Small», который мы заменим на «ExtraSmall». Измененный файл будет выглядеть так: Рис. Измененный файл ServiceDefinition.csdef Отладка приложения Перед тем как развернуть наше приложение в «облаке», давайте посмотрим, как его можно отладить локально.
Рис. Вставка точки останова Нажмем клавишу F5 для запуска отладчика, встроенного в Visual Studio 2010. Так как точка останова была установлена на методе base.OnStart(), для нашего приложения будет запущен браузер, а затем выполнение приложения приостановится. Этот простой пример показывает, что при локальном запуске приложений для Windows Azure мы можем использовать штатные средства Visual Studio для отладки приложений. Рис. Отладка в Visual Studio Как мы отметили выше, наше приложение выполняется под управлением локального эмулятора. Чтобы увидеть это, выполним следующие действия:
Рис. Доступ к эмулятору Windows Azure
Рис. Пользовательский интерфейс эмулятора Windows Azure Обратим внимание на диагностические сообщения типа:
Эти сообщения отображают различные этапы жизненного цикла роли, отслеживаемые сервисами Windows Azure (в данном примере – сервисами локально эмулятора Windows Azure). Использование средств мониторинга позволяет следить за работоспособностью нашего сервиса, развернутого в Windows Azure. Подробнее о локальном эмуляторе см. серию публикаций «Windows Azure. Быстрый старт. Локальная разработка для «облака». Развертывание приложения После того как мы убедились в работоспособности нашего приложения под локальным эмулятором, можно развернуть приложение на платформе Windows Azure. Для развертывания приложения в Windows Azure нам потребуется доступ к Windows Azure - учетная запись вычислительных сервисов. Если учетной записи у нас нет, мы можем продолжать знакомство с ключевыми возможностями Windows Azure на уровне локального эмулятора. Для развертывания приложения в Windows Azure следует выбрать в Solution Explorer наш проект и нажать правую кнопку «мыши». Среди списка доступных команд следует выбрать команду «Publish». Далее – выполнить шаги по публикации приложения, подробно описанные в цикле «Windows Azure. Быстрый старт. Развертывание приложений», в частях 1 и 2. Удаление приложения После того как мы убедились в том, что наше приложение успешно работает в Windows Azure, его можно удалить, чтобы не оплачивать лишние ресурсы. Для этого, на портале Windows Azure следует выбрать раздел Hosted Services, затем – развернутый проект и выполнить команды Stop и Delete. Если просто остановить проект без удаления, он все-равно будет занимать ресурсы Windows Azure, что приведет к необходимости их оплаты. Более подробно о портале Windows Azure см. «Знакомимся с порталом Windows Azure». Создание ASP.NET MVC 3-приложения Выше мы рассмотрели основные шаги, требуемые для создания ASP.NET-приложения, выполняющегося в веб-роли на платформе Windows Azure. Ниже мы рассмотрим, как создать базовое приложение на ASP.NET MVC 3 и перенести его в «облако» с использованием Windows Azure. Запустим Visual Studio 2010 с административными привилегиями – это требуется во избежание возможных ошибок из-за отсутствия необходимых привилегии при использовании ряда сервисов, например, сервисов локальной эмуляции Windows Azure. Выполним команду File | New | Project и в списке Installed Templates выберем раздел Visual C#, затем – Web. Рис. Создание нового проекта Выберем ASP.NET MVC3 Web Application и, при необходимости, изменим его название и местоположение. Нажмем кнопку «Ок» для создания проекта. В панели New ASP.NET MVC 3 Project выберем шаблон Internet Application и нажмем кнопку «Ok». Рис. Панель New ASP.NET MVC 3 Project В Visual Studio автоматически откроет файл HomeController.cs. Изменим текст, отображаемый на экране, например, на надпись «Running in Windows Azure» и сохраним файл. Наше приложение на ASP.NET MVC 3 готово. Рис. Измененное содержимое файла HomeController.cs Выполним команду Debug | Start Without Debugging (или нажмем комбинацию клавиш Ctrl+F5) и убедимся в том, что наше приложение работает. Рис. Работа ASP.NET MVC 3-приложения Следующий шаг – модификация приложения для работы в Windows Azure. Начнем с того, что добавим к нашему приложению новый проект на Windows Azure. В Visual Studio выполним команду File | New | Project. В диалоговой панели New Project выберем Installed Templates, Visual C#, затем – Cloud. Выберем Windows Azure Project , затем, в опции Solution – Add to solution и нажмем кнопку «Ok». В диалоговой панели New Windows Azure Project не выбирая никаких ролей нажмем кнопку «Ok». В Solution Explorer выберем новый проект на Windows Azure, в нем – элемент Roles и нажмем правую кнопку «мыши». Рис. Новый проект на Windows Azure Выполним команду Add | Web Role Project in solution. В диалоговой панели Associate with Role Project выберем ASP.NET MVC 3 и нажмем кнопку «Ok». Рис. Ассоциация веб-проекта с веб-ролью Наше приложение готово к запуску в Windows Azure. Мы можем повторить описанные выше шаги для запуска приложения под локальным эмулятором Windows Azure, а также, при наличии доступа к Windows Azure, развернуть наше приложение на «облачной» платформе Microsoft. Рекомендуется использовать обновленную версию Windows Azure Tools for Microsoft Visual Studio, в которой реализована поддержка ASP.NET MVC 3 Web Role. В этом случае все необходимые динамические библиотеки копируются в пакет развертывания и разворачиваются в Windows Azure, так что MVC 3-приложение будет готово к использованию сразу же после его развертывания в «облаке». В противном случае необходимо выполнить следующие действия:
Рис. Ссылочные модули проекта · Для каждого модуля, перечисленного выше, следует выполнить следующие действия:
После этого перейти к развертыванию приложения. По завершении данного упражнения не забудьте удалить приложение из Windows Azure чтобы не оплачивать использование лишних ресурсов. В следующей части мы обсудим создание WCF-сервиса и его размещение в Windows Azure. |