Pregunta

Estoy trabajando en un nuevo proyecto.¿Hay algún beneficio al utilizar un servicio web WCF en lugar de un servicio web antiguo normal?

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

¿Fue útil?

Solución

¿Qué es un "servicio web regular a la antigua?" ¿Un servicio ASMX, o también está utilizando WSE?Los servicios ASMX no son interoperables de forma natural, no son compatibles con las especificaciones WS-* y ASMX es una tecnología que está envejeciendo muy rápidamente.Los servicios WSE (Mejoras de servicios web) SÍ agregan soporte para WS-* y se pueden hacer para que sean interoperables, pero WCF está destinado a reemplazar 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 inmensa flexibilidad y terminará con un mejor diseño si elige WCF.WCF hace tiene una curva de aprendizaje más allá de un atributo [WebMethod], pero en mi opinión, la curva de aprendizaje es demasiado exagerada y es exponencialmente más poderosa y preparada para el futuro que los servicios ASMX heredados.

A menos que su cronograma simplemente no pueda tolerar la curva de aprendizaje, se estaría haciendo un gran favor aprendiendo WCF en lugar de limitarse a seguir con los servicios web ASP.NET.Las aplicaciones seguirán estando cada vez más distribuidas e interconectadas, y WCF es el futuro de la informática distribuida en la plataforma Microsoft.

Aquí hay una comparación entre los dos.

Otros consejos

Las ventajas de hacerlo todo usted mismo son:

  • Sin curva de aprendizaje
  • Muy flexible

Las ventajas de WCF son:

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

Una desventaja de WCF:algunos nombres de propiedades estáticas puede ser bastante largo...

Para resumir:WCF te permite concentrarte en la programación, pero primero debes aprenderlo ;-)

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

Me gusta el hecho de que escribir servicios 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 puedes hablar con él a través de HTTP, net TCP, etc.

¡Las pruebas unitarias sobre la implementación e interacción de sus servicios son más fáciles de realizar!

Si su proyecto utiliza 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 excelente manera de crear aplicaciones con interfaces súper rápidas.

Mire los videos de introducción de MS. Ha evolucionado a partir de los servicios de datos WCF.

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

En mi experiencia

WCF

Es absurdamente detallado 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 algunas situaciones) y es necesario modificarlo antes de poder usarlo.

En cambio

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).

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top