Лабораторная работа № 13
Создание клиентского приложения с использованием консольного приложения
Сервис
Создайте Web-сервис, реализующий теорему Пифагора. Для этого в среде разработки Visual Studio 2010 следует выполнить команду меню Файл | Создать проект | и в появившемся диалоговом окне Создать проект в поле Установленные шаблоны выбрать Visual Basic и Веб. В верхнем поле выбрать.NET Framework 2.0. В поле Шаблоны выделить значок Приложение веб-служб ASP.NET. В поле Имя следует указать наименование создаваемого проекта. Укажите имя MyService2 и щелкните ОК. После того, как все необходимые приготовления средой разработки будут сделаны, на основном рабочем поле появится страница с проектом MyService2.
Очевидно, что для реализации заданного сервиса в листинге Servicel.asmx.vb вместо функции HelloWorld необходимо задать функцию, реализующую поставленную задачу. Назовем эту функцию PythagoreanTheorem и опишем ее следующим образом:
Листинг 13.1
Public Function PythagoreanTheorem(ByVal a As Double, _
ByVal b As Double) As Double
Dim dblSum As Double
dblSum = a ^ 2 + b ^ 2
|
|
Return Math.Sqrt(dblSum)
End Function
В объявлении функции указано, что она будет воспринимать два параметра a и b типа Double, т.е. значения двух катетов, и возвращать значение гипотенузы типа Double.
Выполнив замену функций в файле Servicel.asmx.vb, получим представление этого файла в виде, приведенном на рисунке 13.1.
Рис.12.1. Внешний вид страницы Servicel.asmx.vb с функцией PythagoreanTheorem
Протестируем работу созданного Web-сервиса. После компиляции обратимся к нему из браузера, нажав клавишу F5. На рис. 13.2 приведен внешний вид Web-страницы, которая генерируется Web-сервером при попытке обращения к Web-сервису.
Рис.13.2. Внешний вид Web – страницы, соответствующей Web – сервису
После щелчка мышью на ссылке, указывающей на функцию PythagoreanTheorem, в браузере будет отображена Web- страница, предоставляющая доступ к этой функции. Внешний вид этой Web-страницы показан на рис. 13.3.
Рис.13.3. Web – страница, предоставляющая пользователю доступ к функции PythagoreanTheorem
На этой странице расположены два поля ввода, в которых необходимо указать значения катетов, передаваемых функции, и кнопка Запуск, при нажатии на которую эти параметры будет переданы функции сервиса, и в браузер будет отправлен результат работы сервиса.
Введем в поле а цифру 3, в поле b цифру 4 и топчем Запуск. Браузер отобразит Web-страницу с результатом работы функции сервиса. Внешний вид этой страницы показан на рис. 13.4.
Рис.13.4. Web-страница с результатом работы функции при а=3 и b=4
И так, тестирование вновь созданного сервиса прошло успешно. Чтобы выполнить локальное размещение Web – сервиса, требуется вернуться к странице, приведенной на рисунке 13.1, и выполнить следующие настройки:
|
|
- В обозревателе решений два раза щелкнуть ЛКМ по строчке MyProject. Откроется закладка с названием проекта MyService2.
- На выбранной закладке в левом поле выбрать Веб, а в правом поле, используя полосу прокрутки, установить радиокнопку Использовать локальный веб–сервер IIS. В текстовом поле URL–адрес проекта: появится локальный URL–адрес http://localhost/MyService2.
- Щелкнуть ЛКМ по кнопке Создать виртуальный каталог.
- Закрыть закладку MyService2.
- Выполнить компиляцию проекта MyService2.
- Закрыть Visual Studio 2010.
Теперь можно приступить к разработке клиентского приложения, вызывающего данный сервис.
Клиентская часть
Для создания клиента в виде консольного приложения необходимо в среде разработки Visual Studio 2010 создать новый проект и в появившемся диалоговом окне Создать проект в поле Установленные шаблоны выбрать Visual Basic и Windows. В верхнем поле выбрать.NET Framework 2.0. В поле Шаблоны выделить значок Консольное приложение. В поле Имя следует указать наименование создаваемого проекта. Укажите имя ConsoleClient и щелкните ОК. После того, как все необходимые приготовления средой разработки будут сделаны, на основном рабочем поле появится страница с проектом ConsoleClient.
Для доступа к Web - сервису из консольного приложения клиента необходимо сначала добавить ссылку на Web-службу. Чтобы добавить веб-узел ссылки, в окне Обозреватель решений, щелкните правой кнопкой мыши по названию проекта ConsoleClient, а затем нажмите кнопку Добавить веб-ссылку. Появится окно Добавить веб-ссылку, приведенное на рисунке 13.5. В этом окне выберете Веб-службы на локальном компьютере. Visual Studio 2010 запустится на поиск локального компьютера для всех доступных веб-служб. Это может занять некоторое время. Появится новое окно Добавить веб-ссылку, приведенное на рисунке 13.6, в котором будут приведены все доступные в данный момент на локальном компьютере веб-службы. Нажмите кнопку Service1, соответствующее URL с адресом http://localhost/MyService2/WebReferences/localhost/Service1.disco.
Рис 13.5. Внешний вид окна Добавить веб-ссылку
Рис 13.6. Внешний вид нового окна Добавить веб-ссылку
Появится новое окно Добавить веб-ссылку, приведенное на рисунке 13.7. В этом окне нажмите кнопку Добавить ссылку.
Рис 13.7. Внешний вид нового окна Добавить веб-ссылку
Появится окно кода для Module1.vb, приведенное на рисунке 13.8.
Рис. 13.8 Окно кода для Module1.vb
Для процедуры Main вставьте код, приведенный в листинге 13.2.
Листинг 13.2
Dim hypotenuse As Double
Dim ws As New localhost.Service1()
'Pythagorean Triple: 3, 4, 5
hypotenuse = ws.PythagoreanTheorem(3, 4)
Console.WriteLine(hypotenuse)
'Pythagorean Triple: 5, 12, 13
hypotenuse = ws.PythagoreanTheorem(5, 12)
Console.WriteLine(hypotenuse)
'Pythagorean Triple: 7, 24, 25
hypotenuse = ws.PythagoreanTheorem(7, 24)
Console.WriteLine(hypotenuse)
Console.Read()
Код Module1.vb принимает вид, приведенный на рисунке 13.9
Рис. 13.9 Окно кода для Module1.vb
Осталось совсем маленько - выполнить построение кода Module1.vb и нажать клавишу F5, чтобы запустить клиента в работу. Клиент три раза обращается к Web – сервису, передавая ему каждый раз новые значения катетов треугольника и принимая от него вычисленные значения гипотенуз. Полученные результаты клиент выводит на консоль (рис. 13.10).
Рис.13.10. Результат работы клиента
Задания для самостоятельного выполнения
13.1. Создать клиента в виде консольного приложения с другими значениями катетов.