Что такое Windows Communication Foundation

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

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

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

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

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

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

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

gRPC в качестве альтернативы WCF

gRPC — это современная платформа RPC, которая является популярной альтернативой WCF. gRPC построен на основе HTTP/2, что обеспечивает ряд преимуществ по сравнению с WCF, в том числе:

  • Производительность: gRPC гораздо эффективнее, чем WCF, особенно для длительных подключений.
  • Масштабируемость: gRPC предназначен для масштабирования до большого количества клиентов и серверов.
  • Безопасность: gRPC поддерживает различные механизмы безопасности, включая TLS и проверку подлинности.
  • Кроссплатформенный: gRPC является платформо-нейтральным и может использоваться с различными языками программирования.

Дополнительные сведения о разработке или переносе приложений WCF в gRPC см. в следующем разделе:

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

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

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

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

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

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

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

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

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

    WCF поддерживает публикацию метаданных службы с использованием форматов, указанных в отраслевых стандартах, таких как WSDL, СХЕМА XML и политика 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 Messaging и используя MSMQ. Дополнительные сведения о поддержке надежных и очередей обмена сообщениями в WCF см. в разделах "Очереди" и "Надежные сеансы".

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

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

  • Транзакции

    WCF также поддерживает транзакции с помощью одной из трех моделей транзакций: WS-AtomicTransactions, API в System.Transactions пространстве имен и координатор распределенных транзакций Майкрософт. Дополнительные сведения о поддержке транзакций в 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 Line of Business (LOB) для доставки сообщений в поле сообщения.

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

См. также