ventajas servicio services que entre diferencia cuál crear consumir asp.net wcf asmx

asp.net - servicio - wcf vs rest



¿Cuál es la diferencia con WCF y otros servicios web? (3)

Creo que es justo decir que WCF reemplaza ASMX y remoting. Puede lograr todo lo que pueda con ASMX y comunicación remota y más con WCF, pero tiene muchas más capacidades y, en general, mucho más control sobre lo que está sucediendo.

Así que creo que, si puedes, deberías estar usando WCF.

Estoy confundido con WCF y otros servicios web (como asp.net ASMX, .Net Remoting), ¿alguien puede decirme qué diferencia hay con WCF y los demás y cuándo debería usarlo, gracias!


WCF es una biblioteca de comunicación que está superconjunto de .NET remoto y el servicio web ASMX "antiguo" y sucesor de ambas bibliotecas.

Los servicios web de WCF tienen un soporte mucho mejor para los estándares WS- * y tienen menos problemas con la interoperabilidad.

Básicamente, debe usar WCF ya que .Net Remoting y ASMX podrían considerarse legecy (y, si mal no recuerdo, algunos errores remotos de .NET solo se solucionaron en WCF y nunca en el propio .NET remoting)


WCF es una pila de comunicación que permite que los servicios se expongan a través de HTTP (como ASMX) y TCP (como Remoting), así como de Named Pipes (que en realidad es una llamada de proceso cruzado dentro de la máquina), MSMQ y .NET 3.5 REST.

Lo permite porque desacopla las partes de la comunicación del servicio, alejándolas de la lógica comercial. Todo lo que necesita hacer es decorar sus clases de servicio, métodos y DTO con el atributo de contrato apropiado ([SeriviceContract], [OperationContract] y [DataContract] respetuosamente).

Esto tuvo el beneficio de poder escribir un servicio una vez y permitir que muchos tipos diferentes de clientes consumieran el mismo servicio (es decir, los clientes de Java pueden usar HTTP, los clientes de .NET pueden usar TCP, los heredados pueden usar MSMQ, etc.).

WCF aún le permitirá usar todas las características de cada transporte, incluida la seguridad, las transacciones, los mensajes confiables, etc., pero debe tener cuidado. No todas las funciones funcionan en todos los transportes, y debe diseñar en consecuencia. WCF le permite especificar en su contrato qué características son necesarias. Esto evita que alguien intente exponer su servicio de una manera que no admita el conjunto de características requerido (es decir, si su servicio requiere transacciones, el tiempo de ejecución de WCF no permitirá el acceso al servicio a través de un punto final HTTP básico).

WCF también es extensible a través de comportamientos personalizados (que influyen en cómo funciona el tiempo de ejecución de WCF) y canales personalizados (que controlan cómo los servicios de WCF se comunican con el mundo exterior).

WCF tiene un poco de una curva de aprendizaje en comparación con ASMX, pero los beneficios ABSOLUTAMENTE pesan esta curva de aprendizaje.

Espero que ayude.