WCF - Versus Web Service

Existen algunas diferencias importantes entre WCF y un servicio web que se enumeran a continuación.

  • Attributes - El servicio WCF está definido por los atributos ServiceContract y OperationContract, mientras que un servicio web está definido por los atributos WebService y WebMethod.

  • Protocols - WCF admite una variedad de protocolos, es decir, HTTP, Canalizaciones con nombre, TCP y MSMQ, mientras que un servicio web solo admite el protocolo HTTP.

  • Hosting Mechanisms - Existen varios mecanismos de activación para el alojamiento WCF, es decir, IIS (Servicio de información de Internet), WAS (Servicio de activación de Windows), Autohospedaje y Servicio de Windows, pero un servicio web está alojado solo por IIS.

  • Services - WCF admite una seguridad sólida, mensajería confiable, transacciones e interoperabilidad, mientras que un servicio web solo admite servicios de seguridad.

  • Serializer - WCF admite el serializador DataContract mediante el uso de System.Runtime.Serialization, mientras que un servicio web admite el serializador XML mediante el uso de System.Xml.Serialization.

  • Tools - La herramienta ServiceMetadata (svcutil.exe) se usa para la generación de clientes para un servicio WCF, mientras que la herramienta WSDL.EXE se usa para generar lo mismo para un servicio web.

  • Exception Handling- En WCF, las excepciones no controladas se manejan de una mejor manera haciendo uso de FaultContract. No regresan al cliente como en un servicio web como fallas SOAP.

  • Hash Table - Es posible serializar una tabla hash en WCF, pero este no es el caso en un servicio web.

  • Bindings - WCF admite varios tipos de enlaces como BasicHttpBinding, WSDualHttpBinding, WSHttpBinding, etc., mientras que un servicio web solo admite SOAP o XML.

  • Multithreading - WCF admite subprocesos múltiples mediante la clase ServiceBehavior, mientras que esto no es compatible con un servicio web.

  • Duplex Service Operations - WCF admite operaciones de servicio dúplex además de admitir operaciones de servicio de solicitud-respuesta unidireccionales, mientras que un servicio web no admite operaciones de servicio dúplex.