Windows Azure. Быстрый старт. Разработка приложений. Часть 2. Создание WCF-сервиса и клиента к сервису

Продолжим знакомство с созданием приложений в Windows Azure, начатое обсуждением разработки приложений на ASP.NET и ASP.NET MVC 3. В этой части мы создадим простой WCF-сервис и развернем его в виде службы в Windows Azure. Затем мы создадим клиентское приложение, которое будет потреблять этот сервис.

Создание WCF-сервиса

Запустим Visual Studio 2010 с административными привилегиями – это требуется во избежание возможных ошибок из-за отсутствия необходимых привилегии при использовании ряда сервисов, например, сервисов локальной эмуляции Windows Azure.

Выполним команду File | New | Project и в списке Installed Templates выберем раздел Visual C# , затем – Cloud.

В диалоговой панели New Windows Azure Project выберем элемент WCF Service Web Role и нажмем кнопку с символом « > ». Диалоговая панель должна выглядеть следующим образом:

02-01

Рис. Добавление элемента проекта

Мы добавили к нашему проекту веб-роль, которая обеспечивает среду для выполнения сервисов, веб-приложений и сайтов в Internet Information Services (IIS) 7.0. Нажмем кнопку Ok для создания проекта.

Перейдем с Solution Explorer и в блоке WCFServiceWebRole1 найдем файл IService1. cs. В этом файле описан контракт нашего сервиса – интерфейс, по которому его будут вызывать потребители. Изменим его содержимое, чтобы оно выглядело следующим образом:

02-02

Рис. Код контракта WCF-сервиса

Перейдем к файлу Service1.svc.cs, в котором реализован наш сервис. Изменим его код так, чтобы наш сервис возвращал версию операционной системы, которая работает в виртуальной машине Windows Azure:

02-03

Рис. Код WCF-сервиса

Развертывание сервиса

Мы готовы развернуть наш сервис. В Solution Explorer выберем наш проект на Windows Azure, нажмем правую кнопку «мыши» и выполним команду Publish. В диалоговой панели укажем необходимые для публикации проекта параметры.

02-04

Рис. Параметры публикации проекта

После этого нажмем кнопку «Publish» для публикации проекта в Windows Azure. Мы можем наблюдать за процессом публикации с помощью специального окна, доступного в Visual Studio – Windows Azure Activity Log.

02-05

Рис. Окно Windows Azure Activity Log

Процесс публикации приложения в Windows Azure также отображается и в Server Explorer как это показано на следующей иллюстрации.

02-06

Рис. Процесс публикации в Server Explorer

Третий способ отследить процесс публикации – зайти на портал Windows Azure (http://www.microsoft.com/windowsazure/).

02-07

Рис. Процесс публикации на портале Windows Azure

Таким образом, мы можем использовать либо средства Visual Studio, либо средства, предоставляемые порталом Windows Azure для того, чтобы следить за процессом развертывания нашего приложения в Windows Azure.

Создание клиентского приложения

Для того, чтобы мы смогли использовать развернутый нами в Windows Azure WCF-сервис, нам потребуется клиентское приложение. Для создания клиентского приложения создадим новый проект в Visual Studio:

  • Выполним команду File | New Project
  • В диалоговой панели New Project выберем Installed Templates, затем – Visual C#, затем – Windows
  • Мы создадим консольное приложение, поэтому выберем тип проекта Console Application и укажем его имя как WA-WCF-Client

Панель New Project должна выглядеть следующим образом:

02-08

Рис. Панель New Project

Нажмем кнопку «Ok» для создания нашего проекта. Следующий шаг – добавление ссылки на наш сервис, предварительно развернутый в Windows Azure. В Solution Explorer выберем раздел References, нажмем правую кнопку «мыши» и выполним команду Add Service Reference.

02-09

Рис. Добавление ссылки на сервис

В диалоговой панели «Add Service Reference» укажем данные нашего WCF-сервиса. В строке Address следует указать адрес развернутого сервиса - его следует скопировать с портала Windows Azure из раздела свойств сервиса, строка DNS-имя:

02-10

Рис. Получение адреса сервиса

К полученному адресу следует добавить имя сервиса – например, Service1.svc. Результирующая строка с адресом должна выглядеть примерно так:

http://2895083bc98842bcaeb1b978d14f66f9.cloudapp.net/Service1.svc

После того как адрес сервиса сформирован, нажимаем кнопку «Go» для обнаружения этого сервиса. Результат этой операции показан на следующей иллюстрации.

image

Рис. Панель «Add Service Reference»

После нажатия кнопки «Ok» ссылка на наш сервис будет добавлена к проекту. В этом можно убедиться, посмотрев в Solution Explorer раздел Service References.

02-11

Рис. Ссылка на сервис в Solution Explorer

Нам осталось написать код, потребляющий созданный нами и развернутый в Windows Azure сервис. В Solution Explorer выберем файл Program. cs, в котором содержится код нашего консольного приложения.

Начнем с того, что добавим ссылку на наш сервис:

02-12

Рис. Ссылка на WCF-сервис, развернутый в Windows Azure

Затем напишем код, потребляющий наш сервис:

02-12-01

Рис. Код, потребляющий WCF-сервис

Что мы делаем в коде? Сначала мы создаем переменную client, которая является экземпляром нашего сервиса. Затем мы создаем запрос (request) и ответ (response), которые используются для вызова метода GetWAOsVersion нашего сервиса. Результат вызова метода нашего сервиса мы отображаем в консоли. Чтобы посмотреть названия методов, созданных для нас автоматически при генерации кода сервиса можно воспользоваться окном Object Browser в Visual Studio.

02-13

Рис. Object Browser

Убедимся в том, что все работает – нажмем комбинацию клавиш Ctrl+F5 для запуска нашего приложения без отладки.

image

Рис. Получение версии операционной системы в Windows Azure

По завершении экспериментов не забудем удалить наш сервис чтобы не оплачивать использование дополнительных ресурсов Windows Azure.

02-14

Рис. Удаление сервиса

В следующей части мы рассмотрим использование Windows Azure Storage и, в частности, хранилища бинарных объектов для загрузки и выгрузки файлов.

/АФ