O que é o Windows Communication Foundation

Windows Communication Foundation (WCF) é uma estrutura para a criação de aplicativos orientados a serviços. Usando o WCF, você pode enviar dados como mensagens assíncronas de um ponto de extremidade de serviço para outro. 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. Um ponto de extremidade pode ser um cliente de um serviço que solicita dados de um ponto de extremidade de serviço. As mensagens podem ser simples como um único caractere ou uma palavra enviada como XML ou complexo como um fluxo de dados binários. Alguns cenários de exemplo incluem:

  • Um serviço seguro para processar transações comerciais.

  • Um serviço que fornece dados atuais para outros, como um relatório de tráfego ou outro serviço de monitoramento.

  • Um serviço de chat que permite que duas pessoas se comuniquem ou troquem dados em tempo real.

  • Um aplicativo do painel que pesquisa um ou mais serviços para dados e os apresenta em uma apresentação lógica.

  • Expõe um fluxo de trabalho implementado usando o Windows Workflow Foundation como um serviço WCF.

Embora a criação desses 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. Em resumo, o WCF foi projetado para oferecer uma abordagem gerenciável para criar serviços Web e clientes de serviço Web.

Recursos do WCF

O WCF inclui o seguinte conjunto de recursos. Para obter mais informações, consulte Detalhes do recurso do WCF.

  • Orientação de serviço

    Uma consequência do uso de padrões do WS é que o WCF permite que você crie aplicativos orientados a serviço. A arquitetura orientada a serviços (SOA) é a confiança nos serviços Web para enviar e receber dados. Os serviços têm a vantagem geral de serem fracamente acoplados em vez de embutidos no código de um aplicativo para outro. 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.

  • Interoperabilidade

    O WCF implementa padrões modernos do setor para interoperabilidade de serviço Web. Para obter mais informações sobre os padrões com suporte, consulte Interoperabilidade e integração.

  • Vários padrões de mensagem

    As mensagens são trocadas em um dos vários padrões. 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. O segundo ponto de extremidade responde. Há outros padrões como uma mensagem unidirecional em que um único ponto de extremidade envia uma mensagem sem nenhuma expectativa de resposta. 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. Para obter mais informações sobre como implementar padrões de troca de mensagens diferentes usando o WCF, consulte Contratos.

  • Metadados de serviço

    O WCF dá suporte à publicação de metadados de serviço usando formatos especificados em padrões do setor, como WSDL, esquema XML e WS-Policy. Esses metadados podem ser usados para gerar e configurar automaticamente clientes para acessar serviços WCF. Os metadados podem ser publicados em HTTP e HTTPS ou usando o padrão Metadata Exchange do Serviço Web. Para obter mais informações, consulte Metadados.

  • Contratos de dados

    Como o WCF é criado usando o .NET Framework, ele também inclui métodos amigáveis de código para fornecer os contratos que você deseja impor. Um dos tipos universais de contratos é o contrato de dados. 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. O WCF inclui um sistema abrangente para trabalhar com dados dessa maneira fácil. 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. Para obter mais informações, consulte Usando contratos de dados.

  • Segurança

    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. A segurança pode ser implementada usando padrões conhecidos como SSL ou WS-SecureConversation. Para saber mais, consulte Segurança.

  • Vários transportes e codificações

    As mensagens podem ser enviadas de qualquer um dos vários protocolos e codificações internos de transporte. O protocolo e a codificação mais comuns são enviar mensagens SOAP codificadas em texto usando o PROTOCOLO HTTP para uso no World Wide Web. Como alternativa, o WCF permite que você envie mensagens por TCP, pipes nomeados ou MSMQ. Essas mensagens podem ser codificadas como texto ou usando um formato binário otimizado. Os dados binários podem ser enviados com eficiência usando o padrão MTOM. Se nenhum dos transportes ou codificações fornecidos atender às suas necessidades, você poderá criar seu próprio transporte ou codificação personalizado. Para obter mais informações sobre transporte e codificações com suporte pelo WCF, consulte Transports.

  • Mensagens confiáveis e na fila

    O WCF dá suporte à troca de mensagens confiáveis usando sessões confiáveis implementadas WS-Reliable Mensagens e usando o MSMQ. Para obter mais informações sobre o suporte a mensagens confiáveis e em fila no WCF, consulte Filas e sessões confiáveis.

  • Mensagens duráveis

    Uma mensagem é durável porque nunca é perdida devido a um rompimento na comunicação. As mensagens em um padrão durável são sempre salvas em um banco de dados. Se um rompimento ocorrer, o banco de dados permitirá que você retome a troca de mensagens quando a conexão for restaurada. Você também pode criar uma mensagem durável usando o WF (Windows Workflow Foundation). Para obter mais informações, consulte Workflow Services.

  • Transações

    O WCF também dá suporte a transações usando um dos três modelos de transação: WS-AtomicTransactions, as APIs System.Transactions no namespace e Coordenador de Transações Distribuídas da Microsoft. Para obter mais informações sobre o suporte a transações no WCF, consulte Transações.

  • Suporte AJAX e REST

    REST é um exemplo de uma tecnologia Web 2.0 em evolução. O WCF pode ser configurado para processar dados XML "simples" que não são empacotados em um envelope SOAP. 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 formatos não XML, como JavaScript Object Notation (JSON).

  • Extensibilidade

    A arquitetura do WCF tem vários pontos de extensibilidade. Se o recurso adicional for necessário, há inúmeros pontos de entrada que permitem que você personalize o comportamento de um serviço. Para obter mais informações sobre os pontos de extensibilidade disponíveis, consulte Estendendo o WCF.

Integração WCF com outras tecnologias da Microsoft

O WCF é uma plataforma flexível. Devido a essa extrema flexibilidade, o WCF também é usado em vários outros produtos da Microsoft. Ao entender os conceitos básicos do WCF, você terá uma vantagem imediata se também usar qualquer um desses produtos.

A primeira tecnologia a emparelhar com o WCF foi o WF (Windows Workflow Foundation). Fluxos de trabalho simplificam o desenvolvimento de aplicativos encapsulando etapas no fluxo de trabalho como "atividades". Na primeira versão do Windows Workflow Foundation, um desenvolvedor precisava criar um host para o fluxo de trabalho. A próxima versão do Windows Workflow Foundation foi integrada ao WCF. Isso permitia que qualquer fluxo de trabalho fosse hospedado facilmente em um serviço WCF. Você pode fazer isso escolhendo automaticamente o tipo de projeto WF/WCF no Visual Studio 2012 ou posterior.

O Microsoft BizTalk Server R2 também utiliza o WCF como uma tecnologia de comunicação. O BizTalk é criado para receber e transformar dados de um formato padronizado para outro. 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. O BizTalk agora pode usar o adaptador de LINHA de Negócios do WCF (LOB) para entregar mensagens à caixa de mensagem.

Os recursos de hospedagem do Windows server AppFabric são projetados especificamente para implantar e gerenciar aplicativos que usam o WCF para comunicação. Os recursos de hospedagem incluem ferramentas avançadas e opções de configuração projetadas especificamente para aplicativos habilitados para WCF.

Confira também