Что такое 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 см. в следующем разделе:
- Почему мы рекомендуем gRPC для разработчиков WCF
- Сравнение WCF с gRPC
- Общие сведения о gRPC для разработчиков WCF
Возможности 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.