Qual a diferença entre eles?
Quando eu optaria por um em vez do outro?
wcf
web-services
Desenvolvedor
fonte
fonte
Respostas:
Esta resposta é baseada em um artigo que não existe mais:
Resumo do artigo:
"Basicamente, o WCF é uma camada de serviço que permite construir aplicativos que podem se comunicar usando uma variedade de mecanismos de comunicação. Com ele, você pode se comunicar usando Ponto a Ponto, Pipes Nomeados, Serviços da Web e assim por diante.
Você não pode compará-los porque o WCF é uma estrutura para construir aplicativos interoperáveis. Se quiser, você pode pensar nisso como um facilitador de SOA. O que isto significa?
Bem, o WCF está em conformidade com algo conhecido como ABC, onde A é o endereço do serviço com o qual você deseja se comunicar, B representa a ligação e C representa o contrato. Isso é importante porque é possível alterar a vinculação sem necessariamente alterar o código. O contrato é muito mais poderoso porque força a separação do contrato da implementação. Isso significa que o contrato é definido em uma interface, e há uma implementação concreta que é vinculada pelo consumidor usando a mesma ideia do contrato. O modelo de dados é abstraído. "
... mais tarde ...
"deve usar o WCF quando precisamos nos comunicar com outras tecnologias de comunicação (por exemplo, ponto a ponto, Pipes nomeados) em vez de serviço da Web"
fonte
De Qual é a diferença entre a WCF e Web Services?
fonte
O Web Service é baseado em SOAP e retorna dados em formato XML. Ele suporta apenas o protocolo HTTP. Não é um código aberto, mas pode ser consumido por qualquer cliente que entenda xml. Ele pode ser hospedado apenas no IIS.
O WCF também é baseado em SOAP e retorna dados em formato XML. É a evolução do serviço web (ASMX) e suporta vários protocolos como TCP, HTTP, HTTPS, Pipes Nomeados, MSMQ. O principal problema com o WCF é sua configuração entediante e extensa. Não é um código aberto, mas pode ser consumido por qualquer cliente que entenda xml. Ele pode ser hospedado no aplicativo ou no IIS ou usando o serviço de janela.
fonte
A diferença básica e principal é que o serviço Web ASP.NET é projetado para trocar mensagens SOAP sobre HTTP apenas enquanto o serviço WCF pode trocar mensagens usando qualquer formato (SOAP é o padrão) em qualquer protocolo de transporte, ou seja, HTTP, TCP, MSMQ ou NamedPipes etc.
fonte
O serviço da Web usa apenas o protocolo HTTP ao transferir dados de um aplicativo para outro.
Mas o WCF oferece suporte a mais protocolos para transportar mensagens do que os serviços da Web ASP.NET. O WCF oferece suporte ao envio de mensagens usando HTTP, bem como o TCP (Transmission Control Protocol), pipes nomeados e Microsoft Message Queuing (MSMQ).
Para desenvolver um serviço em Web Service, escreveremos o seguinte código
Para desenvolver um serviço no WCF, iremos escrever o seguinte código
O Web Service não é arquitetonicamente mais robusto. Mas o WCF é arquitetonicamente mais robusto e promove as melhores práticas.
Os serviços da Web usam XmlSerializer, mas o WCF usa DataContractSerializer. Qual é o melhor desempenho em comparação com o XmlSerializer?
Para chamadas serviço a serviço internas (por trás do firewall), usamos a ligação net: tcp, que é muito mais rápida do que o SOAP.
O WCF é 25% a 50% mais rápido do que os serviços da Web ASP.NET e aproximadamente 25% mais rápido do que o .NET Remoting.
O WCF é usado para se comunicar entre outros aplicativos que foram desenvolvidos em outras plataformas e usando outra tecnologia.
Por exemplo, se eu tenho que transferir dados de uma plataforma .net para outro aplicativo que está sendo executado em outro sistema operacional (como Unix ou Linux) e eles estão usando outro protocolo de transferência (como WAS ou TCP), então só é possível transferir dados usando WCF.
Aqui não há restrição de plataforma, protocolo de transferência de aplicativo durante a transferência de dados entre um aplicativo para outro aplicativo.
A segurança é muito alta em comparação com o serviço da web
fonte
A principal diferença é o tempo limite, o serviço WCF atingiu o tempo limite quando não houve resposta, mas o serviço da web não tem essa propriedade.
fonte