Опубликован: 29.07.2008 | Доступ: свободный | Студентов: 1265 / 144 | Оценка: 4.49 / 4.15 | Длительность: 17:53:00
Лекция 5:

Чтение данных SQL Server через интернет

Веб-службы ASP.NET

Как и конечные точки HTTP, веб-служба ASP.NET также использует формат WSDL, но в качестве службы представляет не хранимую процедуру, а логику приложения, написанную в виде компонентов.

Веб-службы ASP.NET размещаются и выполняются на сервере Microsoft Internet Information Services (IIS). Чтобы просмотреть код этого раздела полностью, откройте файл Solution1.sln в папке 3tiers в файлах примеров. Отдельные компоненты находятся во вложенных папках.

Чтобы реализовать доступ к SQL Server через интернет, но с подключением через веб-службу ASP.NET в среднем уровне, выполните следующие действия:

Создаем компонент доступа к данным и интерфейс службы
  1. Начните с написания компонента доступа к данным для подключения к SQL Server. Откройте Visual Studio 2005 и создайте новый проект, выбрав шаблон Class Library (Библиотека классов) в окне New Project (Создание проекта). Дайте проекту имя DepartmentDataAccess, как показано на рисунке, и нажмите кнопку ОК,

  2. Замените программный код в файле Class1.vb следующим кодом (не забудьте изменить строку соединения, чтобы данные соответствовали вашей среде). Этот пример находится в папке 3tiers\DepartmentDataAccess.
    Imports System.Data.SqlClient
    Public Class DepartmentDataAccess
      Public Function GetAllDepartments() As DataSet 
        Dim result As New DataSet 
        Dim connectionString As String 
        Dim selectCommand As String
        connectionString = "server=(local);database=AdventureWorks;uid=sa" 
        selectCommand = "SELECT * FROM HumanResources.Department"
      
        Dim connection As New SqlConnection(connectionString)
        Dim adapter As New SqlDataAdapter(selectCommand, connection)
        adapter.Fill(result)
        Return result 
      End Function
    End Class

    Класс DepartmentDataAccess, в качестве примера, реализует единственный метод, который называется GetAllDepartments. Этот метод возвращает объект DataSet, который содержит все отделы компании Adventure Works.

  3. В меню Build (Построение) в окне Visual Studio 2005 выберите Build (Построить) DepartmentDataAccess. Visual Studio 2005 скомпилирует проект в сборку. Эта сборка представляет уровень доступа к данным.
  4. Давайте продолжим и создадим служебный интерфейс при помощи проекта веб-службы ASP.NET. В Visual Studio 2005 выберите из меню File (Файл) Add, New Website (Добавить, Новая веб-страница). Этот пример находится среди файлов примеров в папке 3tiers\webservice.
  5. Выберите шаблон ASP.NET Web Service (Веб-служба ASP.NET) в окне New Project (Создание проекта), как показано ниже. Оставьте для остальных параметров значения по умолчанию. Нажмите кнопку ОК.

  6. В окне Solution Explorer (Обозреватель решений) щелкните правой кнопкой мыши проект Web Service (Веб-служба) и выберите из контекстного меню команду Add Reference (Добавить ссылку). (Если Обозреватель решений не отображается, можно выбрать соответствующую команду в меню View (Вид).)
  7. В окне Add Reference (Добавление ссылки), которое показано ниже, перейдите на вкладку Projects (Проекты), выберите проект DepartmentDataAccess, а затем нажмите кнопку ОК,

  8. Под функцией HelloWorld, созданной шаблоном Visual Studio, введите следующий код:
    <WebMethod()> _
      Public Function GetDepartments() As System.Data.DataSet
        Dim departmentsDL As New DepartmentDataAccess.DepartmentDataAccess()
        Return departmentsDL.GetAllDepartments() 
      End Function
  9. Нажмите клавишу F5, чтобы скомпилировать проект веб-службы ASP.NET и запустить его. Если Visual Studio выведет запрос о запуске отладки, выберите параметр Run Without Debugging (Запуск без отладки), как показано на рисунке:

  10. Internet Explorer откроет веб-страницу, на которой можно протестировать веб-службу, как показано на следующем рисунке: Выберите службу GetDepartments.

  11. Internet Explorer перейдет на страницу GetDepartments, показанную на рисунке. Нажмите кнопку Invoke, чтобы выполнить веб-службу.

  12. После вызова веб-службы код ASP.NET вызывает компонент доступа к данным, извлекает результаты в виде набора данных и, наконец, трансформирует весь ответ в формат XML:

    Конечно, клиентское приложение не будет выполнять веб-службу с помощью той же пробной веб-страницы, которую мы с вами только что использовали. Чтобы написать клиентское приложение, которое будет потребителем веб-службы, можно выполнить те же действия, которые были описаны ранее в разделе "Создаем ссылку на конечную точку HTTP из клиентского приложения".