Что такое Windows Communication FoundationWhat Is Windows Communication Foundation

Windows Communication Foundation (WCF) — это платформа для построения сервисноориентированных приложений.Windows Communication Foundation (WCF) is a framework for building service-oriented applications. С помощью WCF, можно отправлять данные как асинхронные сообщения из одной конечной точки службы в другую.Using WCF, you can send data as asynchronous messages from one service endpoint to another. Конечная точка службы может входить в постоянно доступную службу, размещаемую в IIS, или представлять службу, размещаемую в приложении.A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. Конечная точка может быть клиентом службы, которая запрашивает данные от конечной точки службы.An endpoint can be a client of a service that requests data from a service endpoint. Сообщения могут представлять одиночный символ или одно слово, отправляемое в формате XML, или иметь вид сложного потока двоичных данных.The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. Далее представлено несколько образцов сценариев.A few sample scenarios include:

  • Защищенная служба для обработки бизнес-транзакций.A secure service to process business transactions.

  • Служба, передающая другим объектам текущие данные, такие как отчет о трафике, или другая служба наблюдения.A service that supplies current data to others, such as a traffic report or other monitoring service.

  • Служба бесед, которая позволяет двум пользователям общаться и обмениваться данными в реальном времени.A chat service that allows two people to communicate or exchange data in real time.

  • Приложение панели мониторинга, которая опрашивает одну или несколько служб и дает логическое представление полученных данных.A dashboard application that polls one or more services for data and presents it in a logical presentation.

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

  • Приложение Silverlight для запроса последних каналов данных в службе.A Silverlight application to poll a service for the latest data feeds.

При создании таких приложений до появления WCF, WCF делает разработку конечных точек проще, чем когда-либо.While creating such applications was possible prior to the existence of WCF, WCF makes the development of endpoints easier than ever. Таким образом WCF позволяет предлагает удобный подход к созданию веб-служб и клиентов веб-служб.In summary, WCF is designed to offer a manageable approach to creating Web services and Web service clients.

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

WCF включает следующий набор функций.WCF includes the following set of features. Дополнительные сведения см. в разделе подробные сведения о возможностях WCF.For more information, see WCF Feature Details.

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

    Следствием применение стандартов WS является то, что WCF позволяет создавать ориентированные на службы приложений.One consequence of using WS standards is that WCF enables you to create service oriented applications. Сервисноориентированная архитектура (SOA) подразумевает применение веб-служб для отправки и получения данных.Service-oriented architecture (SOA) is the reliance on Web services to send and receive data. Общим преимуществом служб является слабая связанность вместо жесткой запрограммированности для различных приложений.The services have the general advantage of being loosely-coupled instead of hard-coded from one application to another. Слабая связь означает, что любой клиент, созданный на любой платформе, может подключаться к любой службе при условии, что выполняются необходимые контракты.A loosely-coupled relationship implies that any client created on any platform can connect to any service as long as the essential contracts are met.

  • ВзаимодействиеInteroperability

    WCF реализует современные отраслевые стандарты для веб-службы взаимодействие.WCF implements modern industry standards for Web service interoperability. Дополнительные сведения о поддерживаемых стандартах см. в разделе взаимодействие и интеграция.For more information about the supported standards, see Interoperability and Integration.

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

    Обмен сообщениями выполняется по одному из нескольких шаблонов.Messages are exchanged in one of several patterns. Чаще всего используется шаблон «запрос-ответ», когда одна конечная точка запрашивает данные от другой конечной точки.The most common pattern is the request/reply pattern, where one endpoint requests data from a second endpoint. Вторая конечная точка отвечает.The second endpoint replies. Существуют и другие шаблоны, например одностороннее сообщение, когда одна конечная точка отправляет сообщение, не ожидая ответа.There are other patterns such as a one-way message in which a single endpoint sends a message without any expectation of a reply. Более сложным является шаблон дуплексного обмена, когда две конечные точки устанавливают соединение и отправляют данные в обоих направлениях подобно программе обмена мгновенными сообщениями.A more complex pattern is the duplex exchange pattern where two endpoints establish a connection and send data back and forth, similar to an instant messaging program. Дополнительные сведения о реализации обмена сообщениями различных шаблонов с помощью WCF см. в разделе контракты.For more information about how to implement different message exchange patterns using WCF see Contracts.

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

    WCF поддерживает публикация метаданных службы, с использованием форматов, указанных в отраслевых стандартах, таких как WSDL, схемы XML и WS-Policy.WCF supports publishing service metadata using formats specified in industry standards such as WSDL, XML Schema and WS-Policy. Эти метаданные можно использовать для автоматического создания и настройки клиентов для доступа к службам WCF.This metadata can be used to automatically generate and configure clients for accessing WCF services. Метаданные могут публиковаться через HTTP и HTTPS или с использованием стандарта обмена метаданными веб-служб.Metadata can be published over HTTP and HTTPS or using the Web Service Metadata Exchange standard. Дополнительные сведения см. в разделе метаданных.For more information, see Metadata.

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

    Поскольку WCF построена с использованием .NET Framework, она также включает код с поддержкой методы передачи контрактов, которые вы хотите применить.Because WCF is built using the .NET Framework, it also includes code-friendly methods of supplying the contracts you want to enforce. Одним из универсальных типов контрактов является контракт данных.One of the universal types of contracts is the data contract. Если код службы создается на языке Visual C# или Visual Basic, то самым простым способом обработки данных фактически является создание классов, которые представляют сущность данных со свойствами, принадлежащими сущности данных.In essence, as you code your service using Visual C# or Visual Basic, the easiest way to handle data is by creating classes that represent a data entity with properties that belong to the data entity. WCF включает сложную систему для работы с данными этим удобным способом.WCF includes a comprehensive system for working with data in this easy manner. После создания классов, представляющих данные, служба автоматически создает метаданные, которые позволяют клиентам обеспечивать соответствие заданным типам данных.Once you have created the classes that represent data, your service automatically generates the metadata that allows clients to comply with the data types you have designed. Дополнительные сведения см. в разделе Using Data ContractsFor more information, see Using Data Contracts

  • БезопасностьSecurity

    Сообщения можно шифровать для защиты конфиденциальности и требовать от пользователей проходить проверку подлинности перед приемом сообщений.Messages can be encrypted to protect privacy and you can require users to authenticate themselves before being allowed to receive messages. Можно реализовать широко известные стандарты безопасности, такие как SSL и WS-SecureConversation.Security can be implemented using well-known standards such as SSL or WS-SecureConversation. Дополнительные сведения см. в разделе Безопасность.For more information, see Security.

  • Несколько транспортов и кодировокMultiple Transports and Encodings

    Сообщения могут отправляться по любому из нескольких встроенных транспортных протоколов в различных кодировках.Messages can be sent on any of several built-in transport protocols and encodings. Наиболее распространенным является отправка текст в кодировке сообщения SOAP при помощи протокола передачи гипертекста (HTTP) для использования в Интернете.The most common protocol and encoding is to send text encoded SOAP messages using the HyperText Transfer Protocol (HTTP) for use on the World Wide Web. Кроме того WCF позволяет отправлять сообщения по протоколу TCP, именованные каналы или MSMQ.Alternatively, WCF allows you to send messages over TCP, named pipes, or MSMQ. Сообщения можно кодировать в виде текста или использовать оптимизированный двоичный формат.These messages can be encoded as text or using an optimized binary format. Двоичные данные можно эффективно отправлять с использованием стандарта MTOM.Binary data can be sent efficiently using the MTOM standard. Если ни один из предоставляемых транспортов и кодировок не подходит к текущим требованиям, вы можете создать собственный пользовательский транспорт или кодировку.If none of the provided transports or encodings suit your needs you can create your own custom transport or encoding. Дополнительные сведения о транспортах и кодировках, поддерживаемых WCF см. в разделе транспортов.For more information about transports and encodings supported by WCF see Transports.

  • Надежные сообщения и сообщения в очередиReliable and Queued Messages

    WCF поддерживает надежный обмен сообщениями с использованием надежных сеансов, реализованных на WS-Reliable Messaging и с помощью MSMQ.WCF supports reliable message exchange using reliable sessions implemented over WS-Reliable Messaging and using MSMQ. Дополнительные сведения о надежной поддержке обмена сообщениями в WCF см. в разделе очереди и надежные сеансы.For more information about reliable and queued messaging support in WCF see Queues and Reliable Sessions.

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

    Устойчивые сообщения не теряются в случае перебоев связи.A durable message is one that is never lost due to a disruption in the communication. Сообщения, передаваемые по устойчивому шаблону, всегда сохраняются в базе данных.The messages in a durable message pattern are always saved to a database. Если происходит перебой связи, база данных позволяет возобновить обмен сообщениями после восстановления соединения.If a disruption occurs, the database allows you to resume the message exchange when the connection is restored. Можно также создать постоянное сообщение с помощью Windows Workflow Foundation (WF).You can also create a durable message using the Windows Workflow Foundation (WF). Дополнительные сведения см. в разделе служб рабочих процессов.For more information, see Workflow Services.

  • ТранзакцииTransactions

    WCF также поддерживает транзакции, с помощью одного из трех моделей: WS-AtomicTransactions, API-интерфейсы в System.Transactions пространства имен и координатор распределенных транзакций.WCF also supports transactions using one of three transaction models: WS-AtomicTransactions, the APIs in the System.Transactions namespace, and Microsoft Distributed Transaction Coordinator. Дополнительные сведения о транзакции поддержки в WCF см. в разделе транзакции.For more information about transaction support in WCF see Transactions.

  • Поддержка AJAX и RESTAJAX and REST Support

    REST - это пример развития технологии Web 2.0.REST is an example of an evolving Web 2.0 technology. WCF можно настроить для обработки «обычный» XML-данных, не упакованных в конверт SOAP.WCF can be configured to process "plain" XML data that is not wrapped in a SOAP envelope. Также можно расширить WCF для поддержки определенных форматов XML, таких как ATOM (распространенный стандарт RSS) и даже не XML-форматы, такие как JavaScript Object Notation (JSON).WCF can also be extended to support specific XML formats, such as ATOM (a popular RSS standard), and even non-XML formats, such as JavaScript Object Notation (JSON).

  • Расширение средыExtensibility

    Архитектура WCF состоит множество точек расширения.The WCF architecture has a number of extensibility points. Если требуются дополнительные возможности, поддерживаются точки входа, посредством которых можно настроить поведение службы.If extra capability is required, there are a number of entry points that allow you to customize the behavior of a service. Дополнительные сведения о расширяемости точек см. в разделе расширение WCF.For more information about available extensibility points see Extending WCF.

Интеграция WCF с другими технологиями МайкрософтWCF Integration with Other Microsoft Technologies

WCF — это гибкая платформа.WCF is a flexible platform. Поэтому WCF также используется в ряде других продуктов Майкрософт.Because of this extreme flexibility, WCF is also used in several other Microsoft products. Изучив основы WCF, имеют непосредственное преимущество при использовании любого из этих продуктов.By understanding the basics of WCF, you have an immediate advantage if you also use any of these products.

Первая технология для его сопряжения с WCF была Windows Workflow Foundation (WF).The first technology to pair with WCF was the Windows Workflow Foundation (WF). Рабочие процессы упрощают разработку приложений путем инкапсуляции этапов в рабочем процессе в виде «действий».Workflows simplify application development by encapsulating steps in the workflow as "activities." В первой версии Windows Workflow Foundation разработчик должен был создать узел рабочего процесса.In the first version of Windows Workflow Foundation, a developer had to create a host for the workflow. Следующая версия Windows Workflow Foundation была интегрирована с WCF.The next version of Windows Workflow Foundation was integrated with WCF. Допускающая любой рабочий процесс позволяла легко размещать в службе WCF.That allowed any workflow to be easily hosted in a WCF service. Для этого автоматически выбирался тип проекта WF/WCF в Visual Studio 2012 или более поздней версии.You can do this by automatically choosing the WF/WCF project type in Visual Studio 2012 or later.

Microsoft BizTalk Server R2 также использует WCF в качестве технологии связи.Microsoft BizTalk Server R2 also utilizes WCF as a communication technology. BizTalk предназначен для получения и преобразования данных из одного стандартного формата в другой.BizTalk is designed to receive and transform data from one standardized format to another. Сообщения должны доставляться в центральный ящик, где сообщение может преобразовываться по строгому сопоставления или с использованием одной из функций BizTalk, таких как подсистема рабочих процессов.Messages must be delivered to its central message box where the message can be transformed using either a strict mapping or by using one of the BizTalk features such as its workflow engine. Теперь BizTalk может использовать WCF строки из БИЗНЕС-адаптера для доставки сообщений в окне сообщения.BizTalk can now use the WCF Line of Business (LOB) adapter to deliver messages to the message box.

Платформа Microsoft Silverlight предназначена для создания многофункциональных веб-приложений широкой совместимости и дает разработчикам возможность создавать веб-узлы, интенсивно использующие мультимедиа-функции (например, потоковое видео).Microsoft Silverlight is a platform for creating interoperable, rich Web applications that allow developers to create media-intensive Web sites (such as streaming video). Начиная с версии 2 Silverlight также входит WCF как о технологии обмена данными для подключения приложений Silverlight к конечным точкам WCF.Beginning with version 2, Silverlight has incorporated WCF as a communication technology to connect Silverlight applications to WCF endpoints.

Возможностей размещения сервера приложений Windows Server AppFabric предназначены для развертывания и управления приложениями, которые используют WCF для взаимодействия.The hosting features of Windows Server AppFabric application server are specifically designed for deploying and managing applications that use WCF for communication. Широкие возможности настройки и оснащения, специально для приложений WCF с поддержкой возможности размещения.The hosting features include rich tooling and configuration options specifically designed for WCF-enabled applications.

См. такжеSee also