Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O WCF (Windows Communication Foundation) é 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 fazer parte de um serviço continuamente disponível 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 tão simples quanto um único caractere ou palavra enviada como XML ou tão complexa quanto 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 outras pessoas, 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 de painel que sonda um ou mais serviços em busca de dados e os apresenta em uma apresentação lógica.
Expor 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 facilita mais do que nunca o desenvolvimento de pontos de extremidade. Em resumo, o WCF foi projetado para oferecer uma abordagem gerenciável para criar serviços Web e clientes de serviço Web.
gRPC como uma alternativa ao WCF
gRPC é uma estrutura RPC moderna que é uma alternativa popular ao WCF. O gRPC é criado com base em HTTP/2, o que fornece uma série de vantagens em relação ao WCF, incluindo:
- Desempenho: gRPC é muito mais eficiente do que o WCF, especialmente para conexões de longa execução.
- Escalabilidade: o gRPC foi projetado para dimensionar para um grande número de clientes e servidores.
- Segurança: o gRPC dá suporte a uma variedade de mecanismos de segurança, incluindo TLS e autenticação.
- Multiplataforma: o gRPC é neutro em plataforma e pode ser usado com uma variedade de linguagens de programação.
Para obter mais informações sobre como desenvolver ou migrar aplicativos WCF para gRPC, consulte:
- Por que recomendamos gRPC para desenvolvedores do WCF
- Comparando WCF com gRPC
- Introdução ao gRPC para desenvolvedores do WCF
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 WS é que o WCF permite que você crie aplicativos orientados a serviços . A SOA (arquitetura orientada a serviços) é a dependência dos 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 vagamente acoplada implica que qualquer cliente criado em qualquer plataforma pode se conectar a qualquer serviço, desde que os contratos essenciais sejam atendidos.
Interoperabilidade
O WCF implementa padrões modernos do setor para interoperabilidade do 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, em que 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 diferentes padrões de troca de mensagens 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 clientes automaticamente para acessar serviços do WCF. Os metadados podem ser publicados por HTTP e HTTPS ou usando o padrão exchange de metadados de serviço Web. Para obter mais informações, confira Metadados.
Contratos de dados
Como o WCF foi 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. Em essência, à medida que você codifica seu serviço usando Visual C# ou Visual Basic, a maneira mais fácil de lidar com dados é criando classes que representam uma entidade de dados com propriedades que pertencem à entidade de dados. O WCF inclui um sistema abrangente para trabalhar com dados dessa maneira fácil. Depois de criar as classes que representam dados, o serviço gerará automaticamente os metadados que permitem que os clientes cumpram os tipos de dados que você projetou. Para obter mais informações, consulte Como usar 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 poderem receber mensagens. A segurança pode ser implementada usando padrões conhecidos, como SSL ou WS-SecureConversation. Para obter mais informações, consulte Segurança.
Vários transportes e codificações
As mensagens podem ser enviadas em qualquer um dos vários protocolos de transporte e codificações internos. O protocolo e a codificação mais comuns são enviar mensagens SOAP codificadas em texto usando o HTTP (Protocolo de Transferência de HiperTexto) para uso na World Wide Web. Como alternativa, o WCF permite que você envie mensagens via TCP, por pipes nomeados ou pelo 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 transportes e codificações compatíveis com o WCF, consulte Transportes.
Mensagens confiáveis e na fila
O WCF dá suporte à troca de mensagens confiável usando sessões confiáveis implementadas em WS-Reliable Mensagens e usando o MSMQ. Para obter mais informações sobre o suporte à mensagens confiáveis e na fila no WCF, confira Filas e sessões confiáveis.
Mensagens duráveis
Uma mensagem durável é aquela que nunca é perdida devido a uma interrupção na comunicação. As mensagens em um padrão de mensagem durável são sempre salvas em um banco de dados. Se ocorrer uma interrupção, 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 Windows Workflow Foundation (WF). Para obter mais informações, consulte Serviços de Fluxo de Trabalho.
Transações
O WCF também dá suporte a transações usando um dos três modelos de transação: WS-AtomicTransactions, as APIs no namespace e o System.Transactions Coordenador de Transações Distribuídas da Microsoft. Para obter mais informações sobre o suporte à transação no WCF, consulte Transações.
Suporte a AJAX e REST
REST é um exemplo de uma tecnologia Web 2.0 em evolução. O WCF pode ser configurado para processar dados XML "sem formatação" que não estão encapsulados 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 JSON (JavaScript Object Notation).
Extensibilidade
A arquitetura WCF tem vários pontos de extensibilidade. Se a funcionalidade extra for necessária, haverá vários pontos de entrada que permitem personalizar o comportamento de um serviço. Para obter mais informações sobre os pontos de extensibilidade disponíveis, consulte Estendendo o WCF.
Integração do WCF com outras tecnologias da Microsoft
O WCF é uma plataforma flexível. Devido a essa flexibilidade extrema, o WCF também é usado em vários outros produtos da Microsoft. Ao entender as noções básicas do WCF, você terá uma vantagem imediata se também usar qualquer um desses produtos.
A primeira tecnologia a ser emparelhada com o WCF foi o Windows Workflow Foundation (WF). Os fluxos de trabalho simplificam o desenvolvimento de aplicativos encapsulando as etapas no fluxo de trabalho como "atividades". Na primeira versão do Windows Workflow Foundation, um desenvolvedor teve que criar um host para o fluxo de trabalho. A próxima versão do Windows Workflow Foundation foi integrada ao WCF. Isso permitiu que qualquer fluxo de trabalho fosse facilmente hospedado 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 foi projetado para receber e transformar dados de um formato padronizado para outro. As mensagens devem ser entregues à caixa de mensagem central em que a mensagem pode ser transformada usando um mapeamento estrito ou usando um dos recursos do BizTalk, como seu mecanismo de fluxo de trabalho. O BizTalk agora pode usar o adaptador LOB (Linha de Negócios) do WCF para entregar mensagens à caixa de mensagem.
Os recursos de hospedagem do servidor de aplicativos AppFabric do Windows Server foram 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 especificamente projetadas para aplicativos habilitados para WCF.