Размещение приложений Silverlight на облачной платформе
Затем в инспекторе созданного проекта необходимо выполните щелчок на папке Roles и выбирать Add Web Role проект и в нем указать ServiceHostingSite ( рис. 4.5).
Создав новую роль мы выполнили конфигурацию нашего экземпляра для выполнения заданного кода.
Выполнив щелчок правой кнопкой мы можем настроить поведение роли. Например, на приведённом рисунке сконфигурировано два экземпляра, что означает создание двух виртуальных машин выполняющих код независимо. Если в одной произойдет сбой, то будет использована другая, пока сбой не будет ликвидирован, также здесь указывается размер виртуальных машин. Следует помнить, что стоимость использования Azure прямо зависит и от количества виртуальных машин и от используемого ими дискового пространства ( рис. 4.6).
Затем мы можем опубликовать нашу службу в облаке, для этого правой кнопкой по названию проекта в инспекторе и выбрать Publish. В диалоговом окне необходимо выбрать опцию Create Service Package Only. В результате будет сгенерировано 2 файла контейнер с сайтом и файл конфигурации ( рис. 4.7).
Затем выполняется возврат на портал Azure и выбирается вкладка Размещенные службы, учетные записи хранения. Там необходимо создать новую Размещенную службу и задать его имя. В нижней части окна создания службы необходимо выбрать созданные ранее файл контейнера и файл конфигурации ( рис. 4.8).
После размещения приложения необходимо обновить ссылки в Silverlight приложении на действующие службы данных.
На данный момент выполнена вся подготовка для переноса самого Silverlight приложения в Azure. Необходимо создать новую веб роль в облачном проекте и установить для нее Silverlight hosting site (CityHotelBrowser.Web). Также можно создать новый облачный проект и добавить соответствующую веб роль в него, что является более грамотным решением, но более дорогостоящее с точки зрения использования ресурсов ( рис. 4.9).
После создания второй интернет роли ClientBin будет содержать файл XAP, который был загружен как часть службы хостинга. Таким образом, когда пользователь будет подключаться к приложению через вебсайт, то Silverlight XAP файл будет загружен с облачного сервиса и не с нашего сервера.
Такой подход приводит к ряду проблем, в частности, когда мы хоти обновить приложение невозможно просто изменить XAP файл, а необходимо выполнять повторную публикацию всего проекта.
Когда мы рассматривали использование RIA services было указано, что между клиентской и серверной частями существует определенная связь. Она строится на том, что внутри приложения Silverlight приложения автоматический создаются прокси классы на основе классов RIA services и клиентская часть должна иметь ссылки на серверную часть ( рис. 4.10).