Diferença entre WCF e API Web
O que é WCF?
WCF significa Windows Comunicação Foundation. É usado para criar aplicativos distribuídos e interoperáveis. WCF é uma plataforma eficaz para o desenvolvimento de aplicativos orientados a serviços. Ele permite que os desenvolvedores criem soluções de desenvolvimento seguras, confiáveis e de alto perfil que podem ser integradas entre plataformas e interoperar com os investimentos existentes.
O que é API da Web?
ASP.NET Web API é uma estrutura que permite construir serviços HTTP para navegadores e dispositivos móveis. É uma plataforma ideal para desenvolver Aplicativos RESTful no ASP .NET Framework.
A API Web ASP.NET é uma estrutura extensível para a construção de serviços baseados em HTTP que podem ser acessados em diferentes aplicativos em diferentes plataformas, como web, Windows, dispositivos móveis, etc.
DIFERENÇA CHAVE
- O WCF oferece resposta de solicitação, unidirecional ou duplex, enquanto a API da Web é, por padrão, apenas resposta de solicitação.
- O WCF é usado para desenvolver serviços baseados em SOAP, enquanto a API da Web é usada para serviços baseados em SOAP e RESTful.
- O WCF não oferece suporte para recursos MVC, enquanto a API da Web oferece suporte a recursos MVC.
- O WCF oferece suporte a HTTP, UDP e protocolo de transporte personalizado, enquanto a API da Web oferece suporte apenas ao protocolo HTTP.
- O WCF oferece suporte a texto, MTOM e codificação binária, enquanto a API da Web oferece suporte ao formato de codificação UTF-8.
- O WCF oferece suporte a filas de mensagens, segurança de mensagens, comunicação duplex e transações, enquanto a API da Web não oferece suporte.
- WCF significa Windows Comunicação Foundation enquanto API significa Interface de Programa de Aplicativo.
Por que usar o WCF?
Aqui estão os prós/benefícios de usar o WCF:
- WCF é uma opção ideal se você planeja usar .NET Estrutura 3.5.
- O WCF oferece suporte a vários protocolos, como HTTP, TCP, Named pipe.
- O serviço WCF é útil se você deseja criar serviços com padrões como segurança de mensagens de transações e segurança de mensagens confiável.
- Você pode usar os padrões de troca de mensagens Request-Reply, One Way e Duplex com o WCF.
Por que usar API da Web?
Aqui estão os prós/benefícios de usar a API da web:
- A API da Web fornece suporte para ações CRUD baseadas em convenções, pois funciona com verbos HTTP (GET, PUT, POST e DELETE)
- É fácil definir, expor e consumir de forma REST.
- A API da Web ASP.Net permite que você exiba seus dados e serviços em vários dispositivos.
- A API Web é de código aberto, portanto é uma opção ideal para criar serviços RESTful na plataforma .NET.
- Permite o desenvolvimento escalonável e desacoplado de um serviço Web que pode ser compartilhado e usado por outros desenvolvedores para acessar serviços Web.
- Também é útil construir serviços HTTP simples e não baseados em SOAP.
Características do WCF
- Transportes altamente configuráveis
- Melhores opções para serialização
- Bem integrado com IIS
- Fácil para auto-hospedagem
- Metadados muito ricos
- Modelo complexo para publicação
- Contratos de dados ricos
Características da API Web
- Fortemente acoplado ao HTTP
- Fácil de testar
- Oferece suporte para negociação de conteúdo
- Permite formatação aberta
- Não há dependência de uma plataforma
- Orientação sólida para recursos
- Experiência de nível 2 com suporte hipermídia nascente
WCF versus serviço da Web
Parâmetro | WCF | API da web |
---|---|---|
Padrão de Troca de Mensagens | Solicitar resposta, unidirecional ou duplex. | Por padrão, apenas solicitação-resposta. No entanto, padrões de mensagens adicionais podem ser suportados com integração de web sockets. |
Hosting | Hospedagem IIS, auto-hospedagem e serviços de ativação de obras. | Auto-hospedagem e hospedagem IIS. |
Open Source | Não é um software de código aberto. | Ele é fornecido com o .Net framework. Também está disponível como um download independente. |
Suporte para recursos MVC | O WCF não fornece nenhum suporte para recursos MVC como controladores, roteamento, filtro, resultados de leilão, etc. | A API Web ASP.NET oferece suporte a recursos MVC como roteamento, controladores, resultados, filtro, ação, etc. |
Suporte de codificação | Texto, MTOM e binário. | Suporte padrão para formato de codificação UTF-8. |
Suporte para | Suporte para HTTP, UDP e protocolo de transporte personalizado. | Suporta apenas protocolo HTTP |
Uso do modelo | Modelo de programação baseado em atributos do usuário. | Mapeia verbos HTTP para métodos |
Configuração | Usa web.config e atributos para configurar uma classe HttpConfiguration, mas não no serviço web.config. | A API da Web pode ser configurada usando o serviço web.config. |
Serviços RESTful | Oferece suporte para serviço RESTFUL mas com limitações. | Ideal para construir serviços RESTFUL. |
O fator decisivo para WCF vs. API Web
A seguir está uma lista de verificação rápida para ajudar a determinar se deve usar WCF ou API Web
Cenário | WCF 4.5 | API da Web ASP.NET |
---|---|---|
Requer suporte para cenários como filas de mensagens, segurança de mensagens ponta a ponta, comunicação duplex, transações distribuídas, etc. | Selecionar | NÃO selecione |
Quando você já possui serviços WCF em funcionamento e deseja adicionar suporte HTTP adicionalmente. | Selecionar | NÃO selecione |
Uma base de código para fornecer suporte a endpoints SOAP e RESTful. | Selecionar | NÃO selecione |
Quer criar um serviço orientado a recursos via HTTP. | NÃO selecione | Selecionar |
Seu projeto é um aplicativo MVC e deseja alguma funcionalidade via HTTP. | NÃO selecione | Selecionar |
Você deseja construir apenas serviços HTTP/RESTful | NÃO selecione | Selecionar |