2009-01-05 21 views

Respuesta

2

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

Así que creo que, si puede, debería usar WCF.

4

WCF es una biblioteca de comunicación que está superconjunto de .NET remoto y del servicio web ASMX "anterior" 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, se debe utilizar WCF desde remota de .NET y ASMX que podría considerarse legecy (y, si no recuerdo mal, algunos errores de comunicación remota .NET solamente se fijaron en WCF y nunca en .NET sí interacción remota)

10

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.

Esto permite esto porque desacopla las partes de la comunicación del servicio fuera 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] respectivly.)

Esto tuvo la ventaja de poder escribir un servicio una vez y permitiendo que muchos tipos diferentes de clientes consuman 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á utilizar todas las características de cada transporte, incluida la seguridad, las transacciones, la mensajería confiable, 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é funciones son necesarias. Esto evita que alguien intente exponer su servicio de una manera que no admita el conjunto de características requeridas (es decir, si su servicio requiere transacciones, el tiempo de ejecución de WCF no permitirá que se acceda al servicio a través de un punto final HTTP básico).

WCF también es extensible a través de comportamientos personalizados (que influye en cómo funciona el tiempo de ejecución de WCF) y canales personalizados (que controlan la forma en WCF servicios de comunicarse 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.

+1

En WCF, DataContractSerializer puede acceder a un miembro no público, por lo que requiere plena confianza, mientras que el Serializador XML (en servicios web) no lo hace. Esto se debe usar con cuidado ya que el código completamente confiable accede a todos los recursos en su máquina. – Adeel

Cuestiones relacionadas