WCF e ASP.NET Web API
WCF é o modelo de programação unificado 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 os investimentos existentes. ASP.NET API Web é uma estrutura que facilita a criação de serviços HTTP que alcançam uma ampla gama de clientes, incluindo navegadores e dispositivos móveis. ASP.NET Web API é uma plataforma ideal para criar aplicativos RESTful no .NET Framework. Este tópico apresenta algumas orientações para ajudá-lo a decidir qual tecnologia atenderá melhor às suas necessidades.
Escolher a tecnologia a utilizar
A tabela a seguir descreve os principais recursos de cada tecnologia.
WCF | API Web ASP.NET |
---|---|
Permite a criação de serviços que suportam vários protocolos de transporte (HTTP, TCP, UDP e transportes personalizados) e permite alternar entre eles. | Apenas HTTP. Modelo de programação de primeira classe para HTTP. Mais adequado para acesso a partir de vários navegadores, dispositivos móveis, etc, permitindo um amplo alcance. |
Permite a criação de serviços que suportam várias codificações (Texto, MTOM e Binário) do mesmo tipo de mensagem e permite alternar entre elas. | Permite a criação de APIs da Web que suportam uma grande variedade de tipos de mídia, incluindo XML, JSON, etc. |
Suporta a criação de serviços com padrões WS-*, como mensagens confiáveis, transações, segurança de mensagens. | Usa protocolos e formatos básicos como HTTP, WebSockets, SSL, JSON e XML. Não há suporte para protocolos de nível superior, como mensagens confiáveis ou transações. |
Suporta 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 SignalR e WebSockets. |
Os serviços WCF SOAP podem ser descritos em WSDL, permitindo que ferramentas automatizadas gerem proxies de cliente, mesmo para serviços com esquemas complexos. | Há uma variedade de maneiras de descrever uma API da Web, desde a página de ajuda HTML gerada automaticamente descrevendo trechos até metadados estruturados para APIs integradas OData. |
É fornecido com o .NET Framework. | Vem com o .NET Framework, mas é de código aberto e também está disponível fora da banda como download independente. |
Use o WCF para criar serviços Web confiáveis e seguros que sejam acessíveis em uma variedade de transportes. Use ASP.NET API Web para criar serviços baseados em HTTP que são acessíveis a partir de uma ampla variedade de clientes. Use ASP.NET API da Web se estiver criando e projetando novos serviços no estilo REST. Embora o WCF forneça algum suporte para escrever serviços no estilo REST, o suporte para REST em ASP.NET API Web é mais completo e todas as futuras melhorias 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 WCF e o WebHttpBinding.