Введение

Среда выполнения и набор API в .NET Framework для создания подключенных, сервисно-ориентированных приложений.

Windows Communication Foundation (WCF), ранее известная как Indigo, — это бесплатная среда выполнения с открытым исходным кодом и набор API в .NET Framework для создания подключенных, сервисно-ориентированных приложений. .NET Core 1.0, выпущенный в 2016 году, не поддерживал серверный код WCF. Поддержка WCF была добавлена в платформу с поддержкой .NET Core 3.1, .NET 5 и .NET 6 в 2022 году.

Архитектура

WCF — это инструмент, который часто используется для реализации и развертывания архитектуры, ориентированной на сервисы (SOA). Он разработан на основе принципов сервисно-ориентированной архитектуры для поддержки распределенных вычислений, в которых сервисы имеют удаленных потребителей. Клиенты могут использовать несколько сервисов, а сервисы могут использоваться несколькими клиентами. Сервисы слабо связаны друг с другом. Как правило, сервисы имеют интерфейс WSDL (Web Services Description Language), который любой клиент WCF может использовать для взаимодействия с сервисом, независимо от платформы, на которой он размещен. WCF реализует множество передовых стандартов веб-сервисов (WS), таких как WS-Addressing, WS-ReliableMessaging и WS-Security. С выпуском .NET Framework 4.0, WCF также предоставляет сервисы RSS-синдикации, WS-Discovery, маршрутизацию и улучшенную поддержку сервисов REST.

Конечные точки

Клиент WCF подключается к службе WCF через конечную точку. Каждая служба предоставляет свой контракт через одну или несколько конечных точек. Конечная точка имеет адрес (URL-адрес, указывающий, где можно получить доступ к конечной точке) и свойства привязки, определяющие способ передачи данных. Мнемоническое правило "ABC" можно использовать для запоминания адреса/привязки/контракта. Привязка определяет, какие протоколы связи используются для доступа к службе, применяются ли механизмы безопасности и т.п. WCF включает предопределенные привязки для наиболее распространенных протоколов связи, таких как SOAP по протоколу HTTP, SOAP по протоколу TCP и SOAP по очередям сообщений и т.д. Взаимодействие между конечной точкой WCF и клиентом осуществляется с использованием SOAP-обертки. SOAP-обертки имеют простой XML-формат, что обеспечивает платформенную независимость WCF. Когда клиент хочет получить доступ к службе через конечную точку, ему необходимо знать не только контракт, но и соблюдать привязку, указанную конечной точкой. Таким образом, и клиент, и сервер должны иметь совместимые конечные точки. С выпуском .NET Framework 3.5 в ноябре 2007 года Microsoft выпустила кодировщик, добавивший поддержку формата сериализации JSON в WCF.

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

WCF обеспечивает взаимодействие с WCF-приложениями, работающими на той же машине Windows, с WCF-приложениями, работающими на других машинах Windows, или со стандартными веб-сервисами, созданными на платформах, таких как Java, работающих на Windows или других операционных системах. Помимо SOAP, WCF 4 поддерживает XML, не использующий SOAP, RSS, JSON и бинарные форматы для внешней связи по протоколам HTTP или HTTPS.