Что такое Windows Communication Foundation

Windows Communication Foundation (WCF) — это платформа для создания приложений, ориентированных на службы. С помощью WCF можно передавать данные в виде асинхронных сообщений из одной конечной точки службы в другую. Конечная точка службы может входить в постоянно доступную службу, размещаемую в IIS, или представлять службу, размещаемую в приложении. Конечная точка может быть клиентом службы, которая запрашивает данные от конечной точки службы. Сообщения могут представлять одиночный символ или одно слово, отправляемое в формате XML, или иметь вид сложного потока двоичных данных. Далее представлено несколько образцов сценариев.

  • Защищенная служба для обработки бизнес-транзакций.

  • Служба, передающая другим объектам текущие данные, такие как отчет о трафике, или другая служба наблюдения.

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

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

  • Предоставление доступа к рабочему процессу, реализованному с помощью Windows Workflow Foundation, в виде службы WCF.

  • Приложение Silverlight для запроса последних каналов данных в службе.

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

Возможности WCF

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

  • Сервис-ориентированность

    Одним из последствий использования стандартов WS является то, что WCF позволяет создавать приложения, ориентированные на службы . Сервисноориентированная архитектура (SOA) подразумевает применение веб-служб для отправки и получения данных. Общим преимуществом служб является слабая связанность вместо жесткой запрограммированности для различных приложений. Слабая связь означает, что любой клиент, созданный на любой платформе, может подключаться к любой службе при условии, что выполняются необходимые контракты.

  • Совместимость

    WCF реализует современные отраслевые стандарты для взаимодействия веб-служб. Дополнительные сведения о поддерживаемых стандартах см. в статье взаимодействие и интеграция.

  • Несколько шаблонов сообщений

    Обмен сообщениями выполняется по одному из нескольких шаблонов. Чаще всего используется шаблон «запрос-ответ», когда одна конечная точка запрашивает данные от другой конечной точки. Вторая конечная точка отвечает. Существуют и другие шаблоны, например одностороннее сообщение, когда одна конечная точка отправляет сообщение, не ожидая ответа. Более сложным является шаблон дуплексного обмена, когда две конечные точки устанавливают соединение и отправляют данные в обоих направлениях подобно программе обмена мгновенными сообщениями. Дополнительные сведения о реализации различных шаблонов обмена сообщениями с помощью WCF см. в разделе контракты.

  • Метаданные службы

    WCF поддерживает публикацию метаданных службы с использованием форматов, указанных в отраслевых стандартах, таких как WSDL, XML Schema и WS-Policy. Эти метаданные можно использовать для автоматического создания и настройки клиентов для доступа к службам WCF. Метаданные могут публиковаться через HTTP и HTTPS или с использованием стандарта обмена метаданными веб-служб. Дополнительные сведения см. в разделе Метаданные.

  • Контракты данных

    Поскольку WCF построена с использованием .NET Framework, она также включает удобные в коде методы предоставления контрактов, которые необходимо применить. Одним из универсальных типов контрактов является контракт данных. Если код службы создается на языке Visual C# или Visual Basic, то самым простым способом обработки данных фактически является создание классов, которые представляют сущность данных со свойствами, принадлежащими сущности данных. WCF включает в себя комплексную систему для работы с данными с помощью этого простого способа. После создания классов, представляющих данные, служба автоматически создает метаданные, которые позволяют клиентам обеспечивать соответствие заданным типам данных. Дополнительные сведения см. в разделе Использование контрактов данных.

  • Безопасность

    Сообщения можно шифровать для защиты конфиденциальности и требовать от пользователей проходить проверку подлинности перед приемом сообщений. Можно реализовать широко известные стандарты безопасности, такие как SSL и WS-SecureConversation. Дополнительные сведения см. в статье Безопасность.

  • Несколько транспортов и кодировок

    Сообщения могут отправляться по любому из нескольких встроенных транспортных протоколов в различных кодировках. Наиболее распространенный протокол и кодировка — это отправка сообщений SOAP, закодированных в виде текста, с использованием протокола HTTP для использования в Интернете. Кроме того, WCF позволяет отсылать сообщения по протоколу TCP, именованным каналам или MSMQ. Сообщения можно кодировать в виде текста или использовать оптимизированный двоичный формат. Двоичные данные можно эффективно отправлять с использованием стандарта MTOM. Если ни один из предоставляемых транспортов и кодировок не подходит к текущим требованиям, вы можете создать собственный пользовательский транспорт или кодировку. Дополнительные сведения о транспортах и кодировках, поддерживаемых WCF, см. в статье транспорты.

  • Надежные сообщения и сообщения в очереди

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

  • Устойчивые сообщения

    Устойчивые сообщения не теряются в случае перебоев связи. Сообщения, передаваемые по устойчивому шаблону, всегда сохраняются в базе данных. Если происходит перебой связи, база данных позволяет возобновить обмен сообщениями после восстановления соединения. Вы также можете создать устойчивое сообщение с помощью Windows Workflow Foundation (WF). Дополнительные сведения см. в разделе службы рабочих процессов.

  • Транзакции

    WCF также поддерживает транзакции с использованием одной из трех моделей транзакций: WS-Атомиктрансактионс, API-интерфейсы в System.Transactions пространстве имен и Microsoft координатор распределенных транзакций. Дополнительные сведения о поддержке транзакций в WCF см. в разделе транзакции.

  • Поддержка AJAX и REST

    REST - это пример развития технологии Web 2.0. WCF можно настроить для обработки «обычных» XML-данных, которые не упакованы в конверт SOAP. Кроме того, WCF можно расширить для поддержки конкретных форматов XML, таких как ATOM (популярный RSS-стандарт), и даже для форматов, отличных от XML, таких как нотация объектов JavaScript (JSON).

  • Расширяемость

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

Интеграция WCF с другими технологиями Майкрософт

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

Первая технология, связанная с WCF, была Windows Workflow Foundationом (WF). Рабочие процессы упрощают разработку приложений, инкапсулирующие шаги в рабочем процессе как "действия". В первой версии Windows Workflow Foundation разработчику пришлось создавать узел для рабочего процесса. Следующая версия Windows Workflow Foundation была интегрирована с WCF. Это позволяло легко размещать любой рабочий процесс в службе WCF. Это можно сделать, автоматически выбрав тип проекта WF/WCF в Visual Studio 2012 или более поздней версии.

Microsoft BizTalk Server R2 также использует WCF в качестве коммуникационной технологии. BizTalk предназначен для получения и преобразования данных из одного стандартного формата в другой. Сообщения должны доставляться в центральный ящик, где сообщение может преобразовываться по строгому сопоставления или с использованием одной из функций BizTalk, таких как подсистема рабочих процессов. Теперь BizTalk может использовать бизнес-адаптер WCF для доставки сообщений в окно сообщения.

Платформа Microsoft Silverlight предназначена для создания многофункциональных веб-приложений широкой совместимости и дает разработчикам возможность создавать веб-узлы, интенсивно использующие мультимедиа-функции (например, потоковое видео). Начиная с версии 2, Silverlight внедряет WCF в качестве технологии связи для подключения приложений Silverlight к конечным точкам WCF.

Функции размещения сервера приложений Windows Server AppFabric специально разработаны для развертывания приложений, использующих WCF для обмена данными, и управления ими. Функции размещения включают разнообразные средства и параметры конфигурации, специально разработанные для приложений с поддержкой WCF.

См. также