Что такое 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 и WS-Policy. С помощью таких метаданных можно автоматически создавать и настраивать клиенты для доступа к службам WCF. Метаданные могут публиковаться через HTTP и HTTPS или с использованием стандарта обмена метаданными веб-служб. Дополнительные сведения см. в разделе Метаданные.
Контракты данных
Поскольку платформа WCF построена на основе .NET Framework, в нее входят удобно используемые в коде методы передачи контрактов, которые нужно принудительно выполнять. Одним из универсальных типов контрактов является контракт данных. Если код службы создается на языке Visual C# или Visual Basic, то самым простым способом обработки данных фактически является создание классов, которые представляют сущность данных со свойствами, принадлежащими сущности данных. В WCF входит сложная система для реализации столь удобного подхода к работе с данными. После создания классов, представляющих данные, служба автоматически создает метаданные, которые позволяют клиентам обеспечивать соответствие заданным типам данных. Дополнительные сведения см. в разделе Использование контрактов данных
Безопасность
Сообщения можно шифровать для защиты конфиденциальности и требовать от пользователей проходить проверку подлинности перед приемом сообщений. Можно реализовать широко известные стандарты безопасности, такие как SSL и WS-SecureConversation. Дополнительные сведения см. в разделе Безопасность Windows Communication Foundation.
Несколько транспортов и кодировок
Сообщения могут отправляться по любому из нескольких встроенных транспортных протоколов в различных кодировках. Самым распространенным вариантом является передача сообщений SOAP в текстовой кодировке по протоколу HTTP для использования в Интернете. Кроме того, WCF позволяет отправлять сообщения по протоколу TCP, через именованные каналы или MSMQ. Сообщения можно кодировать в виде текста или использовать оптимизированный двоичный формат. Двоичные данные можно эффективно отправлять с использованием стандарта MTOM. Если ни один из предоставляемых транспортов и кодировок не подходит к текущим требованиям, можно создать собственный транспорт или кодировку. Дополнительные сведения о транспортах и кодировках, поддерживаемых WCF, см. в разделе Транспорты в Windows Communication Foundation.
Надежные сообщения и сообщения в очереди
WCF поддерживает надежный обмен сообщениями с использованием надежных сеансов, реализованных на базе схемы WS-Reliable, и обмен с использованием MSMQ. Дополнительные сведения о поддержке надежных сообщений и сообщений в очереди в WCF см. в разделе Очереди и надежные сеансы.
Устойчивые сообщения
Устойчивые сообщения не теряются в случае перебоев связи. Сообщения, передаваемые по устойчивому шаблону, всегда сохраняются в базе данных. Если происходит перебой связи, база данных позволяет возобновить обмен сообщениями после восстановления соединения. Устойчивое сообщение также можно создать с помощью Windows Workflow Foundation (WF). Дополнительные сведения см. в разделе Службы рабочего процесса.
Транзакции
WCF также поддерживает транзакции, соответствующие одной из трех моделей: WS-AtomicTtransactions, 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 2010 и Visual Studio 2010.
Microsoft BizTalk Server R2 также использует WCF в качестве технологии связи. BizTalk предназначен для получения и преобразования данных из одного стандартного формата в другой. Сообщения должны доставляться в центральный ящик, где сообщение может преобразовываться по строгому сопоставления или с использованием одной из функций BizTalk, таких как подсистема рабочих процессов. Теперь BizTalk может использовать бизнес-адаптер WCF для доставки сообщений в ящик.
Платформа Microsoft Silverlight предназначена для создания многофункциональных веб-приложений широкой совместимости и дает разработчикам возможность создавать веб-узлы, интенсивно использующие мультимедиа-функции (например, потоковое видео). Начиная с версии 2, в Silverlight также входит WCF в качестве технологии связи для подключения приложений Silverlight к конечным точкам WCF.
Службы Microsoft .NET представляют технологию облачных вычислений, использующую WCF для построения приложений с поддержкой Интернета. Службы .NET используются для создания служб WCF, которые работают через границы доверия.
Сервер приложений функции размещения Windows Server AppFabric создан специально для развертывания приложений, использующих технологию WCF для связи, и управления такими приложениями. В функции размещения предусмотрены разнообразные параметры настройки и оснащения, специально предназначенные для приложений с поддержкой WCF.
См. также
Справочник
Основные понятия
Основные понятия Windows Communication Foundation
Архитектура Windows Communication Foundation
Руководство по работе с документацией
Другие ресурсы
Правила и рекомендации
Учебник по началу работы
Базовое программирование WCF
Windows Communication Foundation Samples