Por que estou respondendo:
Demorei muito tempo para entender a diferença entre essas duas tecnologias. Vou colocar todos esses pontos aqui que penso: "Se eu tive esses pontos no momento em que estava pensando em busca dessa resposta, então decidi muito antes selecionar a tecnologia necessária".
Fonte de informação:
Liberado o Microsoft® Visual Studio® 2015
ISBN-13: 978-0-672-33736-9 ISBN-10: 0-672-33736-3
Por que API da Web do ASP.NET e WCF:
Antes de comparar as tecnologias da API da Web do ASP.NET e do WCF, é importante entender que existem dois estilos / padrões para criar serviços da Web: REST (Representational State Transfer) e SOAP / WSDL. O SOAP / WSDL era o padrão original no qual os serviços da web foram construídos. No entanto, era difícil de usar e tinha formatos de mensagens volumosos (como XML) que prejudicavam o desempenho. Os serviços baseados em REST rapidamente se tornaram a alternativa. Eles são mais fáceis de escrever porque utilizam as construções básicas do HTTP (GET, POST, PUT, DELETE) e geralmente usam formatos de mensagens menores (como JSON). Como resultado, os serviços HTTP baseados em REST agora são o padrão para serviços de gravação direcionados estritamente à Web.
Vamos definir o objetivo da API da Web do ASP.NET
A API da Web do ASP.NET é a tecnologia da Microsoft para o desenvolvimento de serviços da Web HTTP baseados em REST. (Há muito tempo substituiu o ASMX da Microsoft, que era baseado em SOAP / WSDL.) A API da Web facilita a criação de serviços robustos com base em protocolos HTTP que todos os navegadores e dispositivos nativos entendem. Isso permite criar serviços para dar suporte ao seu aplicativo e chamá-los de outros aplicativos da web, tablets, telefones celulares, PCs e consoles de jogos. A maioria dos aplicativos criados hoje para alavancar a sempre presente conexão com a Web usa serviços HTTP de alguma maneira.
Vamos agora definir o objetivo do WCF:
A comunicação pela Internet nem sempre é o meio mais eficiente. Por exemplo, se o cliente e o serviço existirem na mesma tecnologia (ou mesmo na mesma máquina), eles poderão negociar um meio mais eficiente de se comunicar (como TCP / IP). Os desenvolvedores de serviços se viram fazendo as mesmas escolhas que estavam tentando evitar. Agora, eles teriam que escolher entre criar serviços internos eficientes e poder ter o amplo acesso encontrado na Internet. E, se eles precisassem oferecer suporte a ambos, talvez precisassem criar várias versões de seus serviços ou pelo menos proxies separados para acessar seus serviços. Esse é o problema que a Microsoft resolveu com o WCF .
Com o WCF, você pode criar seu serviço sem se preocupar com limites. Em seguida, você pode deixar o WCF se preocupar em executar seu serviço da maneira mais eficiente, dependendo do cliente que está chamando. Para gerenciar esta tarefa, o WCF usa o conceito de terminais. Seu serviço pode ter vários pontos de extremidade (configurados em tempo de design ou após a implantação). Cada ponto de extremidade indica como o serviço pode oferecer suporte a um cliente que está chamando: pela Web, via comunicação remota, pelo Microsoft Message Queuing (MSMQ) e muito mais. O WCF permite que você se concentre na criação da funcionalidade do seu serviço. Preocupa-se em como falar com mais eficiência com os clientes que ligam. Dessa maneira, um único serviço WCF pode suportar com eficiência muitos tipos diferentes de clientes.
Exemplo de WCF:
Considere o exemplo:
Os dados do cliente são compartilhados entre os aplicativos. Cada aplicativo pode ser gravado em uma plataforma diferente e pode existir em um local diferente. Você pode extrair a interface do cliente em um serviço WCF que fornece acesso comum a dados compartilhados do cliente. Isso centraliza os dados, reduz a duplicação, elimina a sincronização e simplifica o gerenciamento. Além disso, usando o WCF, você pode configurar os terminais de serviço para funcionarem da maneira que faz sentido para o cliente que está chamando. A figura mostra o exemplo de antes com acesso centralizado aos dados do cliente em um serviço WCF.
Conclusão:
i) Quando escolher a API da Web:
Não há como negar que os serviços HTTP baseados em REST, como os criados usando a API da Web do ASP.NET, se tornaram o padrão para a criação de serviços da web. Esses serviços oferecem uma abordagem fácil e direta aos desenvolvedores da Web que estão criando serviços. Os desenvolvedores da Web compreendem HTTP GET e POST e, assim, adaptam-se bem a esses tipos de serviços. Portanto, se você estiver escrevendo serviços estritamente direcionados ao HTTP , a API da Web do ASP.NET é a opção lógica.
ii) Quando escolher o WCF:
A tecnologia WCF é útil quando você precisa oferecer suporte a vários pontos de extremidade de serviço com base em diferentes protocolos e formatos de mensagem. Produtos como o Microsoft BizTalk utilizam o WCF para criar serviços robustos que podem ser usados na Web e também através de diferentes configurações de máquina para máquina.Se, no entanto, você precisar escrever um aplicativo que se comunique por TCP / IP quando conectado ao local rede e funciona sobre HTTP quando estiver fora da rede, o WCF é sua resposta .
Esteja avisado:
Os desenvolvedores da Web costumam ver o WCF como mais difícil e complexo de desenvolver. Portanto, se você não prever a necessidade de serviços multiprotocolo, provavelmente ficará com a API da Web do ASP.NET.