Службы Windows Communication Foundation и службы данных WCF в Visual Studio

Visual Studio 2008 предоставляет инструментарий для работы с технологиями создания распределенных приложений Microsoft WCF (Windows Communication Foundation) и Службы данных WCF. В этом разделе приведены общие сведения о службах с точки зрения Visual Studio.

Что такое WCF?

Windows Communication Foundation (WCF) ― это унифицированная интегрированная среда для создания защищенных, надежных, транзакционных и интероперабельных распределенных приложений. В более ранних версиях Visual Studio имелись некоторые технологии, которые можно было использовать для взаимодействия между приложениями.

Однако если требовалось обеспечить совместный доступ к информации с любых платформ, необходимо было использовать веб-службу (также известную как веб-служба ASMX). Если достаточно было только обеспечить передачу данных между клиентом и сервером, использующим ОС Windows, то использовалось удаленное взаимодействие .NET Remoting. Если требовалось обеспечить транзактные коммуникации, то нужно было использовать Enterprise Services (DCOM), а если требовалось реализовать модель с организацией очереди, то нужно было использовать Message Queuing (или MSMQ).

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

Что представляют собой службы данных WCF?

Службы Службы данных WCF взаимодействуют с базой данных напрямую, что позволяет возвращать данные с помощью стандартных операций HTTP: GET, POST, PUT или DELETE. В общем случае службы Службы данных WCF оптимально подходят для приложений, используемых при создании, обновлении или удалении записей базы данных. Дополнительные сведения см. в разделе Платформа служб данных ADO.NET (страница может быть на английском языке).

Модель программирования WCF

Модель программирования WCF основана на коммуникации между двумя сущностями: службой WCF и клиентом WCF. Эта модель программирования инкапсулирована в пространство имен System.ServiceModel в .NET Framework.

Служба WCF

Служба WCF основана на интерфейсе, задающем контракт между службой и клиентом. Она помечается атрибутом ServiceContractAttribute, как показано в следующем коде:

<ServiceContract()>
Public Interface IService1
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);

Методы и функции, которые предоставляются службой WCF, задаются путем пометки их атрибутом OperationContractAttribute. Кроме того, можно предоставить сериализованные данные, пометив составной тип атрибутом DataContractAttribute. Это делает возможным привязку данных на клиенте.

После того как интерфейс и его методы были определены, они инкапсулируются в класс, реализующий этот интерфейс. Множественные контракты службы WCF может реализовать единственный ее класс.

Служба WCF предоставляется для использования посредством того, что называется конечной точкой. Конечная точка ― это единственный способ сообщения с этой службой; невозможно получить к ней доступ посредством прямой ссылки, в отличие от других классов..

Конечная точка состоит из адреса, привязки и контракта. Адрес задает расположение сервера; это может быть URL-адрес, FTP-адрес, а также сетевой или локальный путь. Привязка задает способ сообщения с этой службой. Привязки WCF предоставляют гибкую модель для задания протокола, например HTTP или FTP, механизма обеспечения безопасности, например проверка подлинности Windows или имена и пароли пользователей, и многого другого. Контракт включает операции, предоставляемые классом службы WCF.

Для одной службы WCF может быть предоставлено несколько конечных точек. Это дает возможность разным клиентам взаимодействовать с одной и той же службой разными способами. Например, банковская служба может предоставить одну конечную точку для сотрудников, а другую ― для внешних клиентов, причем каждая конечная точка будет использовать другой адрес, привязку и/или контракт.

Клиент WCF

Клиент WCF состоит из прокси, позволяющего приложению сообщаться со службой (WCF), и конечной точки, соответствующей конечной точке, заданной для этой службы. Прокси создается на стороне клиента в файле app.config и включает информацию о типах и методах, предоставляемых службой. В случае служб, предоставляющих несколько конечных точек, клиент может выбрать одну, лучше всего соответствующую его требованиям; например, клиент может выбрать способ сообщения посредством протокола HTTP и проверку подлинности Windows.

После создания клиента WCF можно обращаться к его службе в коде точно так же, как это делается с любым другим объектом.. Например, для вызова метода GetData, показанного выше, можно написать примерно следующий код:

  Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
      Dim client As New ServiceReference1.Service1Client
      Dim returnString As String

      returnString = client.GetData(TextBox1.Text)
      Label1.Text = returnString
  End Sub
private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = returnString;
}

Средства WCF в Visual Studio

В Visual Studio 2008 предусмотрены средства, позволяющие создавать как службы, так и клиенты WCF. Пошаговое руководство, демонстрирующее эти средства, см. в разделе Пошаговое руководство. Создание служб WCF и доступ к таким службам.

Создание и тестирование служб WCF

Для быстрого создания своей собственной службы можно воспользоваться шаблонами WCF Visual Studio в качестве основы. Затем с помощью инструментов Auto Host службы WCF и WCF Test Client отладить и протестировать службу. Оба этих инструмента обеспечивают быстрый и удобный цикл отладки и тестирования, и исключают требование зафиксировать модель размещения на ранней стадии.

Шаблоны WCF

Шаблоны WCF Visual Studio предоставляют базовую структуру класса для разработки службы. Несколько шаблонов WCF доступно в диалоговом окне Добавление нового проекта. В частности, это шаблоны проектов библиотеки службы WCF, веб-узлов службы WCF и элементов службы WCF.

При выборе шаблона файлы добавляются в контракт службы, в реализацию службы и в конфигурацию службы. Также добавляются все необходимые атрибуты, создавая простую службу типа "Hello World", и создавать какой-либо код нет необходимости. Конечно, может потребоваться добавить код для обеспечения функций и методов реальной службы, потому что шаблоны предоставляют лишь основу для конструктора.

Дополнительные сведения о шаблонах WCF см. в разделе WCF Visual Studio Templates.

узел службы WCF

При запуске отладчика Visual Studio (путем нажатия F5) для проекта службы WCF автоматически запускается инструмент узел службы WCF для размещения этой службы локально. узел службы WCF составляет список служб в проекте службы WCF, загружает конфигурацию проекта и создает узел для каждой найденной службы.

С помощью узла службы WCF можно тестировать службу WCF без создания дополнительного кода или фиксации в конкретном узле во время разработки.

Дополнительные сведения об узле службы WCF см. в разделе WCF Service Host (WcfSvcHost.exe).

Клиент теста WCF

Инструмент Клиент теста WCF позволяет ввести тестовые параметры, отправить их в службу WCF и увидеть ответную реакцию службы. При комбинированном использовании с узлом службы WCF этот инструмент обеспечивает удобную практику тестирования службы.

При нажатии клавиши F5 для отладки проекта службы WCF открывается Клиент теста WCF, который выводит список конечных точек службы, заданных в файле конфигурации. Можно протестировать эти параметры и запустить службу, и повторять этот процесс для последовательного тестирования и проверки службы.

Дополнительные сведения о Клиенте теста WCF см. в разделе WCF Test Client (WcfTestClient.exe).

Доступ к службам WCF в Visual Studio

Visual Studio 2008 упрощает задачу создания клиентов WCF, автоматически создавая прокси и конечную точку для служб, добавляемых в диалоговом окне Добавить ссылку на службу. Вся необходимые сведения о конфигурации добавляются в файл app.config. Большей частью все, что необходимо сделать — это создать службу, чтобы потом ее использовать.

В диалоговом окне Добавить ссылку на службу можно вводить адрес службы или искать службу, заданную в решении. В этом окне содержится список служб и операций, которые они предоставляют. В нем также можно задать пространство имен, посредством которого в коде будут делаться ссылки на эти службы.

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

Связанные разделы

Название

Описание

Пошаговое руководство. Создание служб WCF и доступ к таким службам

Пошаговая демонстрация создания и использования служб WCF в Visual Studio.

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

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

Using the WCF Development Tools

Обсуждение способов создания и тестирования служб WCF в Visual Studio.

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

Описание способов добавления, обновления и удаления служб WCF в проекте.

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

Описание способов, позволяющих создавать ссылки на Службы данных WCF и использовать эти службы в Visual Studio.

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

Описание способа добавления в проект ссылки на веб-службу XML (ASMX).

Практическое руководство. Выбор конечной точки службы

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

Практическое руководство. Асинхронный вызов метода сервиса

Описание способа асинхронного вызова службы WCF.

Практическое руководство. Привязка к данным, возвращаемым службой

Описание способа разрешения привязки данных в службе WCF.

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

Описание способов разрешения и запрещения совместного использования типов в службе WCF.

Диагностика ссылок на службы

Описание некоторых наиболее распространенных ошибок, возникающих при ссылках на службы, и способов их устранения.

Отладка служб WCF

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

Общие сведения о службе проверки подлинности Windows Communication Foundation

Описание использования WCF для предоставления службы роли для веб-узла.

Messaging in the .NET Compact Framework

В этом разделе описывается поддержка уровня сообщений WCF в .NET Compact Framework.

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

Предоставляет пошаговые инструкции для создания типизированного набора данных и разделения кода адаптера таблицы и кода набора данных на несколько проектов.

Диалоговое окно "Добавить ссылку на службу"

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

Диалоговое окно "Настроить ссылку на службу"

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

Ссылки

System.ServiceModel

System.Data.Services