Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET
- Название:Обработка баз данных на Visual Basic®.NET
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2003
- Город:Москва
- ISBN:5-8459-0512-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET краткое содержание
Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000. Затем рассматриваются способы использования основных объектов модели ADO.NET для доступа к данным в реляционных базах данных. Благодаря подробным примерам, читатели могут изучить способы использования основных свойств и методов, а также узнать о более сложных компонентах и технологиях. Многочисленные листинги с кодом на языке Visual Basic .NET иллюстрируют используемые концепции, а бизнес-ситуации показывают практическую область их применения.
Обработка баз данных на Visual Basic®.NET - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Итак, продолжим работу с нашим компонентом и включим в него дополнительную внешнюю функцию.
Публикация существующего компонента с помощью Web-службы
В большинстве случаев для публикации функций существующего компонента с помощью Web-службы достаточно поместить соответствующий код в Web-службе в виде открытого метода с возвращаемым значением. Например, для публикации с помощью Web-службы метода GetRowCount класса GetRowCount из предыдущего примера выполните перечисленные ниже действия.
1. В проекте Novelty1 создайте новую Web-службу NoveltyServices.asmx.
Для работы с компонентом из другого пространства имен следует создать ссылку на него, как описывается выше в главе, в разделе об использовании компонента из другого приложения.
2. В файле NoveltyServices.asmx вставьте код нового Web-метода ShowGetRowCount, который приведен в листинге 12.8.
3. Добавьте в тело метода ShowGetRowCount три строки кода, как показано в листинге 12.8.
4. Щелкните правой кнопкой мыши на имени решения в окне Solution Explorer и выберите в контекстном меню команду Build для компоновки решения.
5. После компоновки решения щелкните правой кнопкой мыши на файле NoveltyServices.asmx и выберите в контекстном меню команду View in Browser (Просмотр в окне Web-броузера).
6. Сразу после загрузки Web-страницы полученной Web-службы NoveltyServices щелкните на гипертекстовой ссылке ShowGetRowCount в верхней части Web-страницы.
7. Убедитесь в правильности полученных результатов. (Сначала в окне Web-броузера появится описание данной Web-службы с предложением проверить ее работоспособность, щелкнув на кнопке Invoke (Вызвать Web-службу). Щелкните на этой кнопке, и в окне Web-броузера появится XML-файл с приведенными ниже строками.
2000
Здесь значение 2000 типа int – это результат выполнения метода ShowGetRowCount Web-службы NoveltyServices. — Прим. ред. )
Imports System.Web.Services
Imports Novelty1.GetRowCount
_
Public Class NoveltyServices
Inherits System.Web.Services.WebService
#Region " Web Services Designer Generated Code "
Public Sub New()
MyBase.New()
' Этот вызов метода организован конструктором Web-служб.
InitializeComponent()
' Инициализация после вызова метода
InitializeComponent().
End Sub
' Код, созданный конструктором Web-служб.
Private components As System.ComponentModel.IContainer
' ЗАМЕЧАНИЕ: Код, созданный конструктором компонентов.
' Его можно изменить только с помощью конструктора Web-служб.
' Не изменяйте его вручную в окне редактирования кода.
_
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
' CODEGEN: Этот вызов метода организован конструктором Web-служб.
' Не изменяйте его вручную в окне редактора кода.
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
#End Region
Public Function ShowGetRowCount() As Integer
' Эти строки кода остались неизменными.
Dim GRC As New GetRowCount()
ShowGetRowCount = GRC.GetRowCount GRC.Dispose()
End Function
End Class
Вот и все. Теперь после размещения этого кода на открытом Web-сервере любой пользователь может с помощью Web-броузера открыть данную Web-страницу и выполнить указанный метод. Обычно эта цель достигается программными средствами, а не вручную. В следующем разделе рассматривается пример такой ситуации.
Доступ к Web-службе программными средствами
Попробуем теперь использовать созданную Web-службу программными средствами из другого приложения, будь то обычное приложение Windows или Web-приложение.
Для соединения с Web-службой нужно создать Web-ссылку. Для создания такого соединения можно послать простой GET-запрос на основе протокола HTTP, который обычно заканчивается вопросительным знаком (?) с параметрами, разделенными амперсандами (&), например: http://search.yahoo.com/bin/search?p=VB.Net&VS.Net.
Кроме того, для создания соединения можно послать простой POST-запрос на основе протокола HTTP, параметры которого передаются в HTTP-заголовках. Еще один способ основан на применении протокола SOAP, благодаря которому Web-серверу посылается специализированный XML-файл, а Web-служба, в свою очередь, возвращает специализированный XML-файл в контейнере, заданном в SOAP-запросе.

Рис. 12.1. Диалоговое окно Add Web Reference
Для демонстрации программного доступа к Web-службе создайте проект нового консольного приложения Visual Basic .NET на основе шаблона Console Application среды Visual Studi o.NET. Учтите, что основные принципы доступа к Web-службе остаются одинаковыми независимо от типа проекта. После создания проекта щелкните правой кнопкой мыши на элементе References в окне Solution Explorer и в контекстном меню выберите команду Add Web Reference (Создать Web-ссылку). На экране появится диалоговое окно Add Web Reference (рис. 12.1). Укажите в текстовом поле Address (Адрес) URL-указатель используемой Web-службы и нажмите клавишу . После этого в правой части диалогового окна Add Web Reference сразу же появится описание Web-службы NoveltyServices (см. рис. 12.1). Такой результат получается благодаря языку WSDL, который вставляет метаданные с описанием Web-службы в ее код. Щелкните на кнопке Add Reference для закрытия данного диалогового окна и вставки созданной ссылки в проект консольного приложения. В окне Solution Explorer теперь появится новая Web-ссылка, аналогичная показанной на рис. 12.2.

РИС. 12.2. Новая Web-ссылка в окне Solution Explorer
Если доступа каталогу или Web-серверу нужно пройти аутентификацию, то код нужно разместить в приложении, а не в Web-службе.
Теперь, после создания Web-ссылки, остается только включить в код консольного приложения три строки, которые показаны в листинге 12.9 с полным кодом основного модуля Module1.vb консольного приложения ConsoleApplication1.
Module Module1
Sub Main()
Dim GRC As New localhost.NoveltyServices()
Try
System.Console.WriteLine(GRC.ShowGetRowCount.ToString)
GRC.Dispose()
Catch
System.Console.WriteLine(Err.Description)
End Try
End Sub
End Module
Здесь объект GRC обозначает Web-службу localhost.NoveltyServices(). Дело в том, что в данном примере используется локальный Web-сервер localhost, который в листинге 12.8 играет роль пространства имен для данной Web-службы. Учтите, что пространства имен должны иметь уникальные имена (например, название вашей компании) или полностью квалифицированное имя домена, на котором располагаются ваши Web-службы. Например, сотрудники компании Microsoft могут использовать в качестве имени для пространства имен адрес www.microsoft.com. Тогда объявление нового объекта objectname в данном пространстве имен будет иметь следующий вид:
Читать дальшеИнтервал:
Закладка: