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.