WCF - Versus Web Service

Il existe des différences majeures entre WCF et un service Web qui sont répertoriées ci-dessous.

  • Attributes - Le service WCF est défini par les attributs ServiceContract et OperationContract, tandis qu'un service Web est défini par les attributs WebService et WebMethod.

  • Protocols - WCF prend en charge une gamme de protocoles, c'est-à-dire HTTP, Named Pipes, TCP et MSMQ, alors qu'un service Web ne prend en charge que le protocole HTTP.

  • Hosting Mechanisms - Différents mécanismes d'activation existent pour l'hébergement WCF, à savoir IIS (Internet Information Service), WAS (Windows Activation Service), l'auto-hébergement et le service Windows, mais un service Web n'est hébergé que par IIS.

  • Services - WCF prend en charge une sécurité robuste, une messagerie, une transaction et une interopérabilité fiables, tandis qu'un service Web ne prend en charge que les services de sécurité.

  • Serializer - WCF prend en charge le sérialiseur DataContract en utilisant System.Runtime.Serialization, tandis qu'un service Web prend en charge le sérialiseur XML en utilisant System.Xml.Serialization.

  • Tools - L'outil ServiceMetadata (svcutil.exe) est utilisé pour la génération de client pour un service WCF, tandis que l'outil WSDL.EXE est utilisé pour générer le même pour un service Web.

  • Exception Handling- Dans WCF, les exceptions non gérées sont mieux gérées à l'aide de FaultContract. Ils ne reviennent pas au client comme dans un service Web en tant que défauts SOAP.

  • Hash Table - Il est possible de sérialiser une table de hachage dans WCF, mais ce n'est pas le cas dans un service Web.

  • Bindings - WCF prend en charge plusieurs types de liaisons comme BasicHttpBinding, WSDualHttpBinding, WSHttpBinding, etc., tandis qu'un service Web ne prend en charge que SOAP ou XML.

  • Multithreading - WCF prend en charge le multithreading à l'aide de la classe ServiceBehavior, alors que cela n'est pas pris en charge dans un service Web.

  • Duplex Service Operations - WCF prend en charge les opérations de service duplex en dehors de la prise en charge des opérations de service unidirectionnel et de demande-réponse, alors qu'un service Web ne prend pas en charge les opérations de service duplex.