Поделиться через


Пошаговое руководство. Создание службы данных WCF и доступ к ней в Visual Studio

В этом пошаговом руководстве демонстрируется создание простой службы Служба данных WCF в веб-приложении ASP.NET и последующий доступ к ней из приложения Windows Forms.

В этом пошаговом руководстве:

  • Создайте веб-приложение, размещаемое в Служба данных WCF.

  • Будет создана EDM (модель данных с использованием сущностей), представляющая таблицу Customers в базе данных Northwind.

  • Создайте таблицу Служба данных WCF.

  • Создайте клиентское приложение и добавьте ссылку на Служба данных WCF.

  • Будет включена привязка данных к службе и создан пользовательский интерфейс.

  • При необходимости в приложение будут добавлены возможности фильтрации.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

Создание службы

Чтобы создать службу Служба данных WCF, необходимо добавить веб-проект, создать EDM (модель данных с использованием сущностей) и службу из модели.

Сначала добавляется веб-проект для размещения службы.

ПримечаниеПримечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Создание веб-проекта

  1. В меню Файл Visual Studio выберите команду Создать проект.

  2. В диалоговом окне Создать проект разверните узел Visual Basic или узел Visual C# и щелкните Интернет, а затем выберите Приложение веб-форм ASP.NET.

  3. В поле Имя введите NorthwindWeb, затем нажмите кнопку ОК, чтобы создать проект.

На данном этапе будет создана EDM (модель данных с использованием сущностей), представляющая таблицу Customers в базе данных Northwind.

Создание модели EDM

  1. В меню Проект выберите команду Добавить новый элемент.

  2. В диалоговом окне Добавление нового элемента, выберите Данные, а затем выбирает ADO.NET Entity Data Model.

  3. В поле Имя введите NorthwindModel и нажмите кнопку Добавить.

    Появится мастер модели EDM.

  4. В мастере модели EDM выберите пункт Создать из базы данных и нажмите кнопку Далее.

  5. На странице Выбор подключения к базе данных выполните одно из следующих действий:

    • Если подключение к демонстрационной базе данных Northwind доступно в раскрывающемся списке, выберите его.

      -или-

    • Выберите пункт Новое подключения для создания нового подключения к данным.Дополнительные сведения см. в разделе How to: Create Connections to SQL Server Databases.

  6. Если базе данных требуется пароль, выберите параметр для включения конфиденциальных данных и нажмите кнопку Далее.

    ПримечаниеПримечание

    Если появится диалоговое окно, нажмите кнопку Да, чтобы сохранить файл в проекте.

  7. На странице Выбор объектов базы данных разверните узел Таблицы, установите флажок возле Customers и нажмите кнопку Готово.

    Будет отображена диаграмма модели сущности, и файл NorthwindModel.edmx будет добавлен в проект.

На данном этапе будет создана и протестирована служба данных.

Создание службы данных

  1. В меню Проект выберите команду Добавить новый элемент.

  2. В диалоговом окне Добавление нового элемента, выберите Интернет, а затем выбирает Службы данных WCF.

  3. В поле Имя введите NorthwindCustomers и нажмите кнопку Добавить.

    Файл NorthwindCustomers.svc появится в редакторе кода.

  4. В редакторе кода, найдите первый комментарий TODO: и замените код следующим:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    
    ПримечаниеПримечание

    В зависимости от используемой версии базы данных Northwind, возможно, потребуется изменить “NORTHWIND” на “NORTHWND”.Для определения правильного имени также можно использовать IntelliSense.

  5. Замените комментарии в обработчике событий InitializeService следующим кодом:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. Нажмите сочетание клавиш CTRL+F5, чтобы запустить службу.Откроется окно браузера и в нем будет отображена XML-схема для службы.

  7. В поле Адрес введите Customers в конце URL-адреса для файла NorthwindCustomers.svc, и затем нажмите клавишу ВВОД.

    Будет отображено XML-представление данных в таблице Customers.

    ПримечаниеПримечание

    В некоторых случаях обозреватель Internet Explorer может неправильно интерпретировать данные как RSS-канал.Необходимо убедиться, что параметр, определяющий, отображаются ли RSS-каналы, отключен.Дополнительные сведения см. в разделе Диагностика ссылок на службы.

  8. Закройте окно браузера.

В ходе следующих этапов будет создано клиентское приложение Windows Forms для использования службы.

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

Чтобы создать клиентское приложение, потребуется добавить второй проект, добавить к проекту ссылку на службу, настроить источник данных и создать пользовательский интерфейс, отображающий данные из службы.

Сначала проект Windows Forms добавляется к решению и устанавливается как загружаемый проект.

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

  1. В меню Visual Studio Файл последовательно выберите пункты Добавить и Создать проект.

  2. В диалоговом окне Новый проект разверните узел Visual Basic или Visual C# и выберите пункт Windows и выберите пункт Приложение Windows Forms.

  3. Чтобы открыть проект, в поле Имя введите NorthwindClient и нажмите кнопку ОК.

  4. В обозревателе решений выберите проект NorthwindClient.

  5. В меню Проект выберите пункт Назначить автозагружаемым проектом.

На этом этапе необходимо добавить ссылку на службу Служба данных WCF в веб-проекте.

Добавление ссылки на службу

  1. В меню Проект выберите пункт Добавить ссылку на службу.

  2. В диалоговом окне Добавить ссылку на службу выберите Найти.

    В поле Адрес появится URL-адрес для службы NorthwindCustomers.

  3. Нажмите кнопку ОК, чтобы добавить эту ссылку на службу.

На данном этапе настраивается источник данных на включение привязки данных к службе.

Включение привязки данных к службе

  1. В меню Данные выберите пункт Показать источники данных.

  2. В окне Источники данных выберите Добавить новый источник данных.

  3. На странице Выбор типа источника данныхмастера настройки источника данных выберите Объект и нажмите кнопку Далее.

  4. На странице Выбор объекта для привязки последовательно разверните узлы NorthwindClient и NorthwindClient.ServiceReference1.

  5. Выберите Customers и нажмите кнопку Готово.

На данном этапе создается пользовательский интерфейс, который будет отображать данные из службы.

Создание пользовательского интерфейса

  1. Перетащите узел Customers из окна Источники данных на форму.

    На форму добавится элемент управления DataGridView, компонент BindingSource и компонент BindingNavigator.

  2. Дважды щелкните форму, чтобы открыть редактор кода, и введите следующий код в обработчик событий Form1_Load:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc/"))
           Me.CustomersBindingSource.DataSource = proxy.Customers
    
               ServiceReference1.northwindModel.northwindEntities proxy = new
    ServiceReference1.northwindModel.northwindEntities(new
    Uri("https://localhost:53397/NorthwindCustomers.svc/"));
               this.customersBindingSource.DataSource = proxy.Customers;
    
    ПримечаниеПримечание

    В зависимости от используемой версии базы данных Northwind, возможно, потребуется изменить “NORTHWIND” на “NORTHWND”.Для определения правильного имени также можно использовать IntelliSense.

  3. В обозревателе решений щелкните правой кнопкой мыши файл NorthwindCustomers.svc и выберите пункт Просмотр в браузере.Откроется обозреватель Internet Explorer и в нем будет отображена XML-схема для службы.

  4. Скопируйте URL-адрес из адресной строки обозревателя Internet Explorer.

  5. В коде, добавленном на этапе 2, выберите код https://localhost:14735/NorthwindCustomers.svc и замените его только что скопированным URL-адресом.

  6. Нажмите клавишу F5 для запуска приложения.Будут отображены сведения о клиенте.

Теперь в наличии имеется рабочее приложение, которое будет отображать список клиентов из службы NorthwindCustomers.При необходимости в отображении дополнительных данных посредством службы, свойство EDM (модель данных с использованием сущностей) можно изменить, чтобы включить дополнительные таблицы из базы данных Northwind.

Следующим необязательным этапом является изучение фильтрации данных, возвращаемых службой.

Добавление возможностей фильтрации

На данном этапе будет выполнена настройка приложения на фильтрацию данных по городу клиента.

Добавление фильтрации по городу

  1. В обозревателе решений дважды щелкните Form1.vb или Form1, чтобы отобразить конструктор Windows Forms.

  2. Перетащите элемент управления TextBox и элемент управления Button из панели элементов на форму.

  3. Дважды щелкните элемент управления Button и добавьте в обработчик событий Button1_Click следующий код:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("https://localhost:53161/NorthwindCustomers.svc"))
           Dim city As String = TextBox1.Text
    
           If city <> "" Then
               Me.CustomersBindingSource.DataSource = From c In _
            proxy.Customers Where c.City = city
           End If
    
            ServiceReference1.northwindModel.northwindEntities proxy = new
     ServiceReference1.northwindModel.northwindEntities(new
     Uri("https://localhost:53397/NorthwindCustomers.svc/"));
        string city = textBox1.Text;
    
    if (city != "")
    {
        this.customersBindingSource.DataSource = from c in
     proxy.Customers where c.City == city select c;   
    
  4. В коде выше замените https://localhost:14735/NorthwindCustomers.svc URL-адресом из обработчика событий Form1_Load.

  5. Нажмите клавишу F5 для запуска приложения.

  6. В текстовом поле введите London и нажмите кнопку.Будут отображены только клиенты из Лондона.

См. также

Задачи

Практическое руководство. Добавление, обновление или удаление ссылки на службу данных WCF