Pergunta

Estou trabalhando em um novo projeto.Existe algum benefício em optar por um serviço da Web WCF em vez de um serviço da Web antigo e regular?

O Visual Studio oferece modelos para ambos.Quais são as diferenças?Prós e contras?

Foi útil?

Solução

O que é um "serviço da web antiquado regular?" Um serviço ASMX, ou você também está usando o WSE?Os serviços ASMX não são naturalmente interoperáveis, não suportam especificações WS-* e ASMX é uma tecnologia que está envelhecendo muito rapidamente.Os serviços WSE (Web Service Enhancements) adicionam suporte para WS-* e podem ser interoperáveis, mas o WCF foi criado para substituir o WSE, portanto, você deve reservar um tempo para aprendê-lo.Eu diria que, a menos que seu aplicativo seja rápido e sujo, você ganhará imensa flexibilidade e acabará com um design melhor se escolher o WCF.WCF faz têm uma curva de aprendizado além de um atributo [WebMethod], mas a curva de aprendizado é exagerada na minha opinião e é exponencialmente mais poderosa e preparada para o futuro do que os serviços ASMX legados.

A menos que sua linha do tempo simplesmente não possa tolerar a curva de aprendizado, você estaria fazendo um grande favor a si mesmo aprendendo o WCF em vez de apenas ficar com os serviços da Web do ASP.NET.Os aplicativos continuarão a se tornar cada vez mais distribuídos e interconectados, e o WCF é o futuro da computação distribuída na plataforma Microsoft.

Aqui está uma comparação entre os dois.

Outras dicas

As vantagens de fazer tudo sozinho são:

  • Sem curva de aprendizado
  • Muito flexível

Os prós do WCF são:

  • Custa menos tempo no longo prazo
  • Alternar protocolos sem programação

Uma desvantagem do WCF:alguns nomes de propriedades estáticas pode ser bem demorado...

Para resumir:O WCF permite que você se concentre na programação, mas você precisa aprender primeiro ;-)

Pró para WCF:Você não precisa de um servidor web (ou seja,ISS).Na verdade, você não precisa de um sistema operacional de servidor.

Gosto do fato de escrever serviços WCF facilitar a separação do serviço da implementação.Você pode escrever seu serviço e hospedá-lo no IIS, em um aplicativo de console ou em um serviço do Windows;você também pode conversar com ele via HTTP, net TCP, etc.

Testes unitários na implementação e interação de seus serviços são mais fáceis de fazer!

Se o seu projeto está usando o framework 4.0, por que não tentar o WebApi, que é fácil de entender e usa a convenção sobre a configuração.

É uma ótima maneira de construir aplicativos com interfaces super rápidas

Veja os vídeos de introdução do MS. Ele evoluiu dos serviços de dados do WCF.

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api

Em minha experiência

WCF

É absurdamente detalhado trabalhar com ele, não é totalmente compatível com outros produtos da Microsoft e, claro, não é amplamente aceito fora do mundo da Microsoft.

Mas meu principal problema é que ele não é estável, tende a falhar (em algumas situações) e é necessário ajustá-lo antes de poder ser usado.

Em vez de

SOAP (também conhecido como Webservice padrão), funciona, é fácil de trabalhar e é amplamente compatível (Java-JAX aceita sem nenhuma modificação).

Adicionar autenticação em SOAP pode ser um pouco complicado, mas não impossível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top