2008-08-09 21 views
32

Estoy trabajando en un nuevo proyecto. ¿Hay algún beneficio al ir con un servicio web de WCF a través de un servicio web tradicional antiguo?Servicios web - WCF vs. ASMX ("Estándar")

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

+9

WCF tiene una curva de aprendizaje muy grande, no se equivoquen. Sí, puedes obtener un servicio que no se ejecute de manera demasiado infernal con algunos copiar y pegar y rellenar los espacios en blanco, pero la mayoría de los desarrolladores tardarán meses antes de que comprendan qué hace realmente toda esa configuración y configuración. – Sander

+2

La mayoría de los desarrolladores no necesitan una _necesita_ para comprender toda la configuración, y además, esto ha cambiado radicalmente con .NET 4.0. –

+0

Puedo responder por el hecho de que es una curva de aprendizaje empinada. WCF es casi bizantino. Lo he estado estudiando durante aproximadamente un mes y solo estoy comenzando a entenderlo. Existen muchas complejidades en torno a diferentes métodos de seguridad, diferentes tipos de certificados digitales y validación cliente/servidor. Hay muchos video tutoriales muy buenos. Eche un vistazo en questpond.com. No recuerdo que ASMX sea tan angustiante, pero WCF parece ser bastante poderoso y ha valido la pena el esfuerzo. –

Respuesta

32

¿Qué es un "servicio web normal a la antigua?" ¿Un servicio ASMX, o estás usando WSE también? Los servicios ASMX no son naturalmente interoperables, no son compatibles con las especificaciones WS- * y ASMX es una tecnología que está envejeciendo muy rápidamente. Los servicios WSE (Web Service Enhancements) PUEDEN agregar soporte para WS- * y se pueden hacer para que sean 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 sea rápida y sucia, obtendrá una flexibilidad inmensa y tendrá un mejor diseño si elige WCF. WCF tiene 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 heredados de ASMX.

A menos que su línea de tiempo simplemente no pueda tolerar la curva de aprendizaje, usted se haría un gran favor al aprender WCF en lugar de limitarse a los servicios web de ASP.NET. Las aplicaciones solo seguirán distribuyéndose e interconectándose cada vez más, y WCF es el futuro de la informática distribuida en la plataforma de Microsoft.

Here is a comparison entre los dos.

9

Los pros de hacer todo por sí mismo es:

  • Sin curva de aprendizaje
  • Muy flexible

Los pros de WCF son:

  • cuesta menos tiempo en el más tiempo corrida
  • Cambie los protocolos sin programar

Una desventaja de WCF: algunos nombres de las propiedades estáticas can be pretty lengthy ...

En resumen: WCF le permite centrarse en la programación, pero hay que aprender primero ;-)

2

me gusta el el hecho de escribir los servicios de WCF facilita la separación de 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, TCP neta, etc.

3

Pro para WCF: no necesita un servidor web (es decir, IIS). En realidad no necesitas un sistema operativo de servidor.

1

¡Pruebas unitarias en sus servicios de implante e interacción son más fáciles de hacer!

-2

En mi experiencia

WCF

Es absurdo detallado para trabajar con él, que no es del todo compatible con otros productos de Microsoft y, por supuesto, no es ampliamente aceptado fuera de la The Microsoft mundo.

Pero mi problema principal es que no es estable, tiende a fallar (en alguna situación) y requiere modificarlo antes de poder usarlo.

lugar

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

Para agregar autenticación en SOAP podría ser un poco complicado pero no imposible.

+4

-1 por desinformación y opinión sin fundamento. Solo puedo suponer que está hablando de configuración cuando dice que WCF es "detallado", en cuyo caso, debería comenzar a usar .NET 4.0 o 4.5. "No compatible con otros productos de Microsoft" debe fundamentarse si desea que se lo tome en serio. Pero pierde toda credibilidad al contrastar WCF con SOAP. –

+0

@ John Saunders, por lo que me está buscando sin ningún motivo. sheesh chico. Y no, incluso en la red 4.0, wcf aún está medio cocido. De todos modos, WCF es vendedor bloqueado. – magallanes

+1

Youb claramente no tiene idea de lo que estás hablando. "Vendedor bloqueado" es una tontería obvia. Puede corregir mi opinión presentando hechos y no discursos. –

0

Si su proyecto está utilizando Framework 4.0, ¿por qué no prueba WebApi, que es fácil de entender y utiliza la convención sobre la configuración.

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

Tener vistazo a los vídeos que consiguen iniciadas desde MS, Se ha pasado de los Servicios de datos de WCF.

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

Cuestiones relacionadas