Разработка приложения, использующего web-сервис
В качестве клиента, вызывающего web-методы, применим Windows-приложение. Создайте новый Windows-проект и назовите его "Test NorthwindWS". Добавляем на форму элементы управления DataGrid и Panel, свойствам Dock этих элементов устанавливаем значения "Fill" и "Bottom" соответственно.
На панели размещаем две кнопки, устанавливая им следующие свойства:
Name | btnFill |
Location | 26; 16 |
Text | Заполнить |
Name | btnUpdate |
Location | 122; 16 |
Size | 144; 23 |
Text | Передать изменения |
Интерфейс готов. В окне Solution Explorer щелкаем правой кнопкой на узле "References" и в появившемся контекстном меню выбираем пункт "Add Web Reference_" (рис. 14.13):
Рис. 14.13. Окно Solution Explorer
В появившемся окне Add Web Reference доступен просмотр всех web-служб. Поскольку наш сервис расположен на локальном компьютере, нажимаем на ссылку "Web services on the local machine". Далее снова переходим по ссылке "DataNorthwind" (рис. 14.14):
увеличить изображение
Рис. 14.14. Окно Add Web Reference, просмотр web-служб
Появляется уже знакомый нам отчет, на котором можно просмотреть описание сервиса и его методов. В поле Web reference name можно ввести имя создаваемой ссылки. Мы оставляем предложенное название "localhost" и нажимаем кнопку "Add Reference" (рис. 14.15):
увеличить изображение
Рис. 14.15. Добавление ссылки на сервис DataNorthwind
В окне Solution Explorer появилась папка Web Reference с узлом localhost. Дважды щелкаем на этом узле. В окне Object Browser мы можем просмотреть описание web-методов, предоставляемых сервисом (рис. 14.16):
увеличить изображение
Рис. 14.16. Просмотр web-методов в окне Object Browser
Впрочем, поскольку у нас имеется всего три предельно простых метода, мы можем вернуться к коду. Подключаем пространство имен для получения доступа к добавленному сервису:
using TestNorthwindWS.localhost;
В классе формы создаем экземпляр myService:
DataNorthwind myService = new DataNorthwind();
В обработчиках кнопок "btnFill" и "btnUpdate" вызываем соответствующие web-методы:
private void btnFill_Click(object sender, System.EventArgs e) { DataSet ds = myService.ZapolnenieDannimi(); dataGrid1.DataSource = ds.Tables[0].DefaultView; }
private void btnUpdate_Click(object sender, System.EventArgs e) { DataSet ds = (DataSet)dataGrid1.DataSource; if(!myService.PeredachaIzmeneniy(ds)) MessageBox.Show("Ошибка обновления", " При передаче изменений возникла ошибка" ); }
Запускаем приложение. Мы можем просматривать и изменять содержимое таблицы Customers (рис. 14.17):
Рис. 14.17. Готовое приложение TestNorthwindWS
Как работает наше приложение? Мы добавили ссылку на web-службу, аналогично добавлению обычной библиотеки. Не имеет значения, где эта служба находится. Далее мы просто создаем объект класса службы и вызываем соответствующие методы. При нажатии на кнопку "Заполнить" происходит обращение к серверу IIS, который, в свою очередь, обращается к MS SQL Server и получает данные для объекта DataSet. Наше приложение устанавливает полученный DataSet в качестве источника данных для элемента управления DataGrid. Аналогично выполняется метод, привязанный к кнопке "Передать изменения".
В программном обеспечении к курсу вы найдете приложение Test NorthwindWS (Code\Glava7\ TestNorthwindWS).