Servicios Web de WCF vs ASMX ("Estándar")


Estoy trabajando en un nuevo proyecto. ¿Hay algún beneficio con ir con un servicio web WCF sobre un servicio web regular de la vieja moda?

Visual Studio ofrece plantillas para ambos. ¿Cuáles son las diferencias? Pros y contras?

Author: John Saunders, 2008-08-09

7 answers

¿Qué es un "servicio web tradicional"?"Un servicio ASMX, o estás usando WSE también? Los servicios ASMX no son interoperables de forma natural, no admiten especificaciones WS-* y ASMX es una tecnología que está envejeciendo muy rápidamente. Los servicios WSE (Web Service Enhancements) agregan soporte para WS - * y se pueden hacer interoperables, pero WCF está destinado a reemplazar a WSE, por lo que debe tomarse el tiempo para aprenderlo. Yo diría que a menos que su aplicación es rápida un sucio, usted ganará inmenso flexibilidad y terminar con un mejor diseño si elige WCF. WCF tiene una curva de aprendizaje más allá de un atributo [WebMethod], pero la curva de aprendizaje es exagerada en mi opinión, y es exponencialmente más poderosa y a prueba de futuro que los servicios ASMX heredados.

A menos que su línea de tiempo simplemente no pueda tolerar la curva de aprendizaje, se estaría haciendo un gran favor aprendiendo WCF en lugar de quedarse con ASP.NET Servicios Web. Las solicitudes solo continuarán a cada vez más distribuido e interconectado, y WCF es el futuro de la computación distribuida en la plataforma Microsoft.

Aquí hay una comparación entre los dos.

 32
Author: Nathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-10 02:36:34

Las ventajas de hacer todo por ti mismo son:

  • Sin curva de aprendizaje
  • Muy flexible

Los pros de WCF son:

  • Cuesta menos tiempo a largo plazo
  • Cambiar protocolos sin programación

Una desventaja de WCF: algunos nombres de propiedades estáticas pueden ser bastante largos...

Para resumir: WCF le permite centrarse en la programación, pero primero necesita aprenderla; -)

 9
Author: doekman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-09 12:14:17

Pro para WCF : No necesita un servidor web (IIS). En realidad no necesita un sistema operativo de servidor.

 3
Author: Andrei Rînea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-05 20:02:57

Me gusta el hecho de escribir servicios WCF hace que sea fácil separar su servicio de la implementación. Puede escribir su servicio y luego alojarlo en IIS,una aplicación de consola o un servicio de Windows; también puede hablar con él a través de HTTP, net TCP, etc.

 2
Author: Esteban Araya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-25 21:33:51

Las pruebas unitarias de implamentación e interacción de sus servicios son más fáciles de hacer !

 1
Author: Nicolas Dorier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-12 21:56:24

Si su proyecto está usando framework 4.0, por qué no prueba WebAPI, que es fácil de entender y utiliza la convención sobre la configuración.

Es una gran manera de construir aplicaciones con interfaces súper rápidas

Echar un vistazo a los primeros videos de MS, Que ha evolucionado a partir de servicios de datos WCF.

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

 0
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-30 06:27:21

En mi experiencia

WCF

Es absurdamente prolijo trabajar con él, no es del todo compatible con otros productos de microsoft y, por supuesto, no es ampliamente aceptado fuera del mundo de microsoft.

Pero mi principal problema es que no es estable, tiende a fallar (en alguna situación) y requiere retocarlo antes de que pueda ser utilizado.

En su lugar

SOAP (también conocido como Webservice estándar), funciona, es fácil de trabajar y es ampliamente compatible (Java-JAX lo acepta sin ninguna modificación).

Añadir autenticación en SOAP podría ser un poco complicado pero no imposible.

 -2
Author: magallanes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-20 16:43:04