Compartilhar via


ASP.NET Web API e WCF

O WCF é o modelo de programação unificada da Microsoft para a criação de aplicativos orientados a serviços. Ele permite que os desenvolvedores criem soluções seguras, confiáveis e transacionadas que se integram entre plataformas e interoperam com investimentos existentes. ASP.NET API Web é uma estrutura que facilita a criação de serviços HTTP que atingem uma ampla gama de clientes, incluindo navegadores e dispositivos móveis. ASP.NET API Web é uma plataforma ideal para a criação de aplicativos RESTful no .NET Framework. Este tópico apresenta algumas diretrizes para ajudá-lo a decidir qual tecnologia atenderá melhor às suas necessidades.

Escolhendo qual tecnologia usar

A tabela a seguir descreve os principais recursos de cada tecnologia.

WCF (Windows Communication Foundation) ASP.NET Web API
Habilita a criação de serviços que dão suporte a vários protocolos de transporte (HTTP, TCP, UDP e transportes personalizados) e permite alternar entre eles. Somente HTTP. Modelo de programação de primeira classe para HTTP. Mais adequado para acesso de vários navegadores, dispositivos móveis etc. permitindo amplo alcance.
Habilita a criação de serviços que dão suporte a várias codificações (Texto, MTOM e Binário) do mesmo tipo de mensagem e permite alternar entre elas. Habilita a criação de APIs Web que dão suporte a uma ampla variedade de tipos de mídia, incluindo XML, JSON etc.
Dá suporte à criação de serviços com padrões WS-* como Reliable Messaging, Transactions, Message Security. Usa protocolo e formatos básicos, como HTTP, WebSockets, SSL, JSON e XML. Não há suporte para protocolos de nível superior, como Reliable Messaging ou Transactions.
Dá suporte a padrões de troca de mensagens Request-Reply, One Way e Duplex. HTTP é solicitação/resposta, mas padrões adicionais podem ser suportados por meio da integração do SignalR e do WebSockets.
Os serviços SOAP do WCF podem ser descritos no WSDL, permitindo que ferramentas automatizadas gerem proxies de cliente mesmo para serviços com esquemas complexos. Há várias maneiras de descrever uma API Web que vai desde a página de ajuda HTML gerada automaticamente descrevendo snippets até metadados estruturados para APIs integradas do OData.
Vem com o .NET Framework. É fornecido com o .NET Framework, mas é de software livre e também está disponível fora de banda como download independente.

Use o WCF para criar serviços Web confiáveis e seguros acessíveis em uma variedade de transportes. Use ASP.NET API Web para criar serviços baseados em HTTP acessíveis de uma ampla variedade de clientes. Use ASP.NET API Web se você estiver criando e projetando novos serviços no estilo REST. Embora o WCF forneça algum suporte para a criação de serviços no estilo REST, o suporte para REST em ASP.NET API Web é mais completo e todas as melhorias futuras de recursos REST serão feitas em ASP.NET API Web. Se você tiver um serviço WCF existente e quiser expor pontos de extremidade REST adicionais, use o WCF e o WebHttpBinding.

Consulte também