O que é o Windows Communication FoundationWhat Is Windows Communication Foundation

Windows Communication Foundation (WCF) é uma estrutura para criar aplicativos orientados a serviço.Windows Communication Foundation (WCF) is a framework for building service-oriented applications. Usando o WCF, você pode enviar dados como mensagens assíncronas do ponto de extremidade de um serviço para outro.Using WCF, you can send data as asynchronous messages from one service endpoint to another. Um ponto de extremidade de serviço pode ser parte de um serviço disponível continuamente hospedado pelo IIS, ou pode ser um serviço hospedado em um aplicativo.A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. Um ponto de extremidade pode ser um cliente de um serviço que solicita dados de um ponto de extremidade de serviço.An endpoint can be a client of a service that requests data from a service endpoint. As mensagens podem ser simples como um único caractere ou uma palavra enviada como XML ou complexo como um fluxo de dados binários.The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. Alguns cenários de exemplo incluem:A few sample scenarios include:

  • Um serviço seguro para processar transações comerciais.A secure service to process business transactions.

  • Um serviço que fornece dados atuais para outros, como um relatório de tráfego ou outro serviço de monitoramento.A service that supplies current data to others, such as a traffic report or other monitoring service.

  • Um serviço de chat que permite que duas pessoas se comuniquem ou troquem dados em tempo real.A chat service that allows two people to communicate or exchange data in real time.

  • Um aplicativo do painel que pesquisa um ou mais serviços para dados e os apresenta em uma apresentação lógica.A dashboard application that polls one or more services for data and presents it in a logical presentation.

  • Expõe um fluxo de trabalho implementado usando o Windows Workflow Foundation como um serviço WCF.Exposing a workflow implemented using Windows Workflow Foundation as a WCF service.

  • Um aplicativo do Silverlight que pesquisa um serviço para os feeds de dados mais recentes.A Silverlight application to poll a service for the latest data feeds.

Embora criar esses aplicativos fosse possível antes da existência do WCF, o WCF torna o desenvolvimento de pontos de extremidade mais fácil do que nunca.While creating such applications was possible prior to the existence of WCF, WCF makes the development of endpoints easier than ever. Em resumo, o WCF foi projetado para oferecer uma abordagem gerenciável para criar serviços Web e clientes de serviço Web.In summary, WCF is designed to offer a manageable approach to creating Web services and Web service clients.

Recursos do WCFFeatures of WCF

O WCF inclui o seguinte conjunto de recursos.WCF includes the following set of features. Para obter mais informações, consulte detalhes de recursos do WCF.For more information, see WCF Feature Details.

  • Orientação de serviçoService Orientation

    Uma consequência do uso de padrões WS é que o WCF permite que você crie orientada a serviços aplicativos.One consequence of using WS standards is that WCF enables you to create service oriented applications. A arquitetura orientada a serviços (SOA) é a confiança nos serviços Web para enviar e receber dados.Service-oriented architecture (SOA) is the reliance on Web services to send and receive data. Os serviços têm a vantagem geral de serem fracamente acoplados em vez de embutidos no código de um aplicativo para outro.The services have the general advantage of being loosely-coupled instead of hard-coded from one application to another. Uma relação fracamente acoplada significa que qualquer cliente criado em qualquer plataforma pode se conectar a qualquer serviço contanto que os contratos essenciais sejam atendidos.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.

  • InteroperabilidadeInteroperability

    O WCF implementa padrões modernos da indústria para interoperabilidade de serviço Web.WCF implements modern industry standards for Web service interoperability. Para obter mais informações sobre os padrões com suporte, consulte interoperabilidade e integração.For more information about the supported standards, see Interoperability and Integration.

  • Vários padrões de mensagemMultiple Message Patterns

    As mensagens são trocadas em um dos vários padrões.Messages are exchanged in one of several patterns. O padrão mais comum é o padrão de solicitação/resposta, onde um ponto de extremidade solicita dados de um segundo ponto de extremidade.The most common pattern is the request/reply pattern, where one endpoint requests data from a second endpoint. O segundo ponto de extremidade responde.The second endpoint replies. Há outros padrões como uma mensagem unidirecional em que um único ponto de extremidade envia uma mensagem sem nenhuma expectativa de resposta.There are other patterns such as a one-way message in which a single endpoint sends a message without any expectation of a reply. Um padrão mais complexo é o padrão de troca duplex onde dois pontos de extremidade estabelecem uma conexão de dados e enviar para frente e para trás, semelhante a um programa de mensagens instantâneas.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. Para obter mais informações sobre como implementar a troca de mensagens diferentes padrões de uso do WCF ver contratos.For more information about how to implement different message exchange patterns using WCF see Contracts.

  • Metadados de serviçoService Metadata

    O WCF oferece suporte a metadados de serviço de publicação usando formatos especificados nos padrões da indústria como WSDL, esquema XML e WS-Policy.WCF supports publishing service metadata using formats specified in industry standards such as WSDL, XML Schema and WS-Policy. Esses metadados podem ser usados para gerar automaticamente e configurar clientes para acessar os serviços WCF.This metadata can be used to automatically generate and configure clients for accessing WCF services. Os metadados podem ser publicados em HTTP e HTTPS ou usando o padrão Metadata Exchange do Serviço Web.Metadata can be published over HTTP and HTTPS or using the Web Service Metadata Exchange standard. Para obter mais informações, consulte metadados.For more information, see Metadata.

  • Contratos de dadosData Contracts

    Como o WCF foi criado usando o .NET Framework.NET Framework, ele também inclui métodos de código amigável de fornecer contratos que você deseja impor.Because WCF is built using the .NET Framework.NET Framework, it also includes code-friendly methods of supplying the contracts you want to enforce. Um dos tipos universais de contratos é o contrato de dados.One of the universal types of contracts is the data contract. Essencialmente, à medida que você codifica o serviço usando Visual C# ou Visual Basic, a maneira mais fácil de manipular dados é criando classes que representam uma entidade de dados com as propriedades que pertencem à entidade de dados.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. O WCF inclui um sistema abrangente para trabalhar com dados dessa maneira fácil.WCF includes a comprehensive system for working with data in this easy manner. Assim que você tiver criado as classes que representam dados, o serviço gera automaticamente os metadados que permitem que os clientes sejam compatíveis com os tipos de dados que você criou.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. Para obter mais informações, consulte usando contratos de dadosFor more information, see Using Data Contracts

  • SegurançaSecurity

    As mensagens podem ser criptografadas para proteger a privacidade e você pode exigir que os usuários se autentiquem antes de terem permissão de receber mensagens.Messages can be encrypted to protect privacy and you can require users to authenticate themselves before being allowed to receive messages. A segurança pode ser implementada usando padrões conhecidos como SSL ou WS-SecureConversation.Security can be implemented using well-known standards such as SSL or WS-SecureConversation. Para obter mais informações, consulte Segurança.For more information, see Security.

  • Vários transportes e codificaçõesMultiple Transports and Encodings

    As mensagens podem ser enviadas de qualquer um dos vários protocolos e codificações internos de transporte.Messages can be sent on any of several built-in transport protocols and encodings. Mais comum de protocolo e codificação é enviar texto codificado em mensagens SOAP usando o protocolo HTTP (HyperText Transfer) para uso na World Wide Web.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. Como alternativa, o WCF permite que você envie mensagens por TCP, pipes nomeados ou MSMQ.Alternatively, WCF allows you to send messages over TCP, named pipes, or MSMQ. Essas mensagens podem ser codificadas como texto ou usando um formato binário otimizado.These messages can be encoded as text or using an optimized binary format. Os dados binários podem ser enviados com eficiência usando o padrão MTOM.Binary data can be sent efficiently using the MTOM standard. Se nenhum dos transportes ou codificações fornecidos atender às suas necessidades, você poderá criar seu próprio transporte ou codificação personalizado.If none of the provided transports or encodings suit your needs you can create your own custom transport or encoding. Para obter mais informações sobre os transportes e codificações com suporte pelo WCF, consulte transportes.For more information about transports and encodings supported by WCF see Transports.

  • Mensagens confiáveis e na filaReliable and Queued Messages

    O WCF oferece suporte à troca de mensagens confiáveis usando sessões confiáveis implementadas por WS-Reliable Messaging e usando o MSMQ.WCF supports reliable message exchange using reliable sessions implemented over WS-Reliable Messaging and using MSMQ. Para obter mais informações sobre o suporte do sistema de mensagens confiável e em fila no WCF, consulte sessões confiáveis e filas.For more information about reliable and queued messaging support in WCF see Queues and Reliable Sessions.

  • Mensagens duráveisDurable Messages

    Uma mensagem é durável porque nunca é perdida devido a um rompimento na comunicação.A durable message is one that is never lost due to a disruption in the communication. As mensagens em um padrão durável são sempre salvas em um banco de dados.The messages in a durable message pattern are always saved to a database. Se um rompimento ocorrer, o banco de dados permitirá que você retome a troca de mensagens quando a conexão for restaurada.If a disruption occurs, the database allows you to resume the message exchange when the connection is restored. Você também pode criar uma mensagem durável usando o Windows Workflow Foundation (WF).You can also create a durable message using the Windows Workflow Foundation (WF). Para obter mais informações, consulte serviços de fluxo de trabalho.For more information, see Workflow Services.

  • TransaçõesTransactions

    O WCF também oferece suporte a transações usando um dos três modelos de transação: WS-AtomicTtransactions, as APIs no namespace System.Transactions e Coordenador de transações distribuídas da Microsoft.WCF also supports transactions using one of three transaction models: WS-AtomicTtransactions, the APIs in the System.Transactions namespace, and Microsoft Distributed Transaction Coordinator. Para obter mais informações sobre transações suporte no WCF ver transações.For more information about transaction support in WCF see Transactions.

  • Suporte AJAX e RESTAJAX and REST Support

    REST é um exemplo de uma tecnologia Web 2.0 em evolução.REST is an example of an evolving Web 2.0 technology. O WCF pode ser configurado para processar dados XML "simples" que não são encapsulados em um envelope SOAP.WCF can be configured to process "plain" XML data that is not wrapped in a SOAP envelope. O WCF também pode ser estendido para dar suporte a formatos XML específicos, como ATOM (um padrão RSS popular) e até mesmo o XML não formatos, como notação JSON (JavaScript Object).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).

  • ExtensibilidadeExtensibility

    Arquitetura do WCF tem um número de pontos de extensibilidade.The WCF architecture has a number of extensibility points. Se o recurso adicional for necessário, há inúmeros pontos de entrada que permitem que você personalize o comportamento de um serviço.If extra capability is required, there are a number of entry points that allow you to customize the behavior of a service. Para obter mais informações sobre a extensibilidade disponível Consulte pontos estendendo o WCF.For more information about available extensibility points see Extending WCF.

Integração WCF com outras tecnologias da MicrosoftWCF Integration with Other Microsoft Technologies

O WCF é uma plataforma flexível.WCF is a flexible platform. Devido a essa flexibilidade extrema, o WCF também é usado em vários outros produtos da Microsoft.Because of this extreme flexibility, WCF is also used in several other Microsoft products. Ao entender os conceitos básicos do WCF, você terá uma vantagem imediata se também usar qualquer um desses produtos.By understanding the basics of WCF, you have an immediate advantage if you also use any of these products.

A primeira tecnologia a emparelhar com o WCF foi o Windows Workflow Foundation (WF).The first technology to pair with WCF was the Windows Workflow Foundation (WF). Fluxos de trabalho simplificam o desenvolvimento de aplicativos encapsulando as etapas no fluxo de trabalho como "atividades".Workflows simplify application development by encapsulating steps in the workflow as "activities." Na primeira versão do Windows Workflow Foundation, um desenvolvedor tinha que criar um host para o fluxo de trabalho.In the first version of Windows Workflow Foundation, a developer had to create a host for the workflow. A próxima versão do Windows Workflow Foundation foi integrada com o WCF.The next version of Windows Workflow Foundation was integrated with WCF. Que permitiu que qualquer fluxo de trabalho fosse facilmente hospedado em um serviço WCF.That allowed any workflow to be easily hosted in a WCF service. Você pode fazer isso automaticamente escolhendo o tipo de projeto do WF/WCF no Visual Studio 2012 ou posterior.You can do this by automatically choosing the WF/WCF project type in Visual Studio 2012 or later.

Microsoft BizTalk Server R2 também utiliza o WCF como uma tecnologia de comunicação.Microsoft BizTalk Server R2 also utilizes WCF as a communication technology. O BizTalk é criado para receber e transformar dados de um formato padronizado para outro.BizTalk is designed to receive and transform data from one standardized format to another. As mensagens devem ser entregues a sua caixa de mensagens central onde a mensagem pode ser transformada usando um mapeamento restrito ou usando um dos recursos de BizTalk como o mecanismo de fluxo de trabalho.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 agora pode usar o adaptador WCF linha de negócios (LOB) para entregar mensagens para a caixa de mensagem.BizTalk can now use the WCF Line of Business (LOB) adapter to deliver messages to the message box.

O Microsoft Silverlight é uma plataforma para criar aplicativos Web interoperáveis, aplicativos Web avançados que permitem que os desenvolvedores criem sites voltados para mídia (como a streaming de vídeo).Microsoft Silverlight is a platform for creating interoperable, rich Web applications that allow developers to create media-intensive Web sites (such as streaming video). Começando com a versão 2, o Silverlight inseriu WCF como uma tecnologia de comunicação para conectar os aplicativos do Silverlight a pontos de extremidade do WCF.Beginning with version 2, Silverlight has incorporated WCF as a communication technology to connect Silverlight applications to WCF endpoints.

O funcionalidades de hospedagem do Windows Server AppFabrichosting features of Windows Server AppFabric servidor de aplicativos foi desenvolvido especificamente para implantar e gerenciar aplicativos que usam o WCF para comunicação.The funcionalidades de hospedagem do Windows Server AppFabrichosting features of Windows Server AppFabric application server is specifically built for deploying and managing applications that use WCF for communication. O funcionalidades de hospedagemhosting features inclui opções de ferramentas e configuração avançadas projetadas especificamente para aplicativos habilitados para WCF.The funcionalidades de hospedagemhosting features includes rich tooling and configuration options specifically designed for WCF-enabled applications.

Consulte tambémSee Also