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


Что такое 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 Schema и WS-Policy. Эти метаданные можно использовать для автоматического создания и настройки клиентов для доступа к службам WCF. Метаданные можно публиковать по протоколу HTTP и HTTPS или использовать стандарт Exchange метаданных веб-службы. Дополнительные сведения см. в разделе Метаданные.

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

    Так как 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-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.

См. также