ASP.NET Web API e WCF
WCF é o modelo de programação unificada da Microsoft para a criação de aplicativos orientados a serviços. Ele permite aos desenvolvedores criarem soluções seguras, confiáveis e transacionadas que se integram nas plataformas e interoperam com os investimentos existentes. O ASP.NET Web API é uma estrutura que facilita o desenvolvimento de serviços HTTP que alcançam uma ampla variedade de clientes, incluindo navegadores e dispositivos móveis. O ASP.NET Web API é uma plataforma ideal para o desenvolvimento de aplicativos RESTful no .NET Framework. Este tópico apresenta algumas diretrizes para ajudá-lo a decidir qual tecnologia atenderá melhor suas necessidades.
Escolhendo a tecnologia a ser usada
A tabela a seguir descreve os principais recursos de cada tecnologia.
WCF | ASP.NET Web API |
---|---|
Permite serviços de compilação que dão suporte a vários protocolos de transporte (HTTP, TCP, UDP e transportes personalizados) e permite a alternância entre eles. | Somente HTTP. Modelo de programação de primeira classe para HTTP. Mais apropriado para o acesso de vários navegadores, dispositivos móveis etc. habilitando o alcance amplo. |
Permite criar serviços que dão suporte a várias codificações (Text, MTOM e Binary) do mesmo tipo de mensagem e permite a alternância entre eles. | Permite criar as APIs da Web que dão suporte a ampla variedade de tipos de mídia que incluem XML, JSON etc. |
Dá suporte a serviços de compilação com padrões WS-* como Mensagens Confiáveis, Transações, Segurança da Mensagem. | Usa o protocolo básico e formatos como HTTP, WebSockets, SSL, JSON e XML. Não há suporte para protocolos de nível mais alto como Mensagens Confiáveis ou Transações. |
Dá suporte a padrões de troca de mensagens solicitação-resposta, unidirecional e duplex. | HTTP é solicitação/resposta, mas os padrões adicionais podem ser aceitos por meio de SignalR integração de WebSockets. |
Os serviços de WCF SOAP podem ser descritos no WSDL permitindo que as ferramentas automatizadas gerem proxies de cliente mesmo para os serviços com esquemas complexos. | Há várias maneiras de descrever uma API da Web variando de página de ajuda HTML gerada automaticamente descrevendo snippets para metadados estruturados para APIs integradas de OData. |
É fornecido com o .NET framework. | É fornecido com o .NET framework, mas tem código aberto e também está disponível fora da banda como download independente. |
Use WCF para criar serviços Web confiáveis e seguros que estejam acessíveis em uma variedade de transportes. Use ASP.NET Web API para criar serviços baseados em HTTP que estejam acessíveis a partir de uma ampla variedade de clientes. Use o ASP.NET Web API se você estiver criando novos serviços de estilo REST. Embora o WCF forneça algum suporte para escrever serviços de estilo REST, o suporte para REST no ASP.NET Web API é mais completo e todas as melhorias futuras do recurso REST serão feitas no ASP.NET Web API. Se você tiver um serviço WCF existente e quiser expor pontos de extremidade adicionais REST, use WCF e o WebHttpBinding.