Différence entre WCF et services Web

WCF remplace toutes les technologies de service Web antérieures. Il est développé par Microsoft. Il remplace ce qui est traditionnellement considéré comme des «services Web». Le service Web est basé sur SOAP qui renvoie des données sous forme XML. Il prend simplement en charge le protocole HTTP. Il n'est pas non plus open source et peut être consommé par tout client qui comprend XML. Il ne peut être hébergé que dans IIS.

Qu'est-ce que WCF?

WCF est basé sur SOAP et renvoie des données sous forme XML. C'est une extension du service Web (ASMX) et prend en charge divers protocoles comme HTTP, HTTPS, TCP, canaux nommés, MSMQ, etc. WCF a un problème avec sa configuration fastidieuse et étendue. Il n'est pas open source mais peut être utilisé par tout client qui comprend XML. Il peut être hébergé sur plusieurs plateformes comme dans l'application ou sur IIS ou en utilisant le service de fenêtre.

Dans quels scénarios WCF doit-il être utilisé?

  • Pour effectuer des transactions commerciales, WCF nous fournit un serveur sécurisé.
  • Deux personnes ou plus peuvent communiquer et également échanger des données en temps réel à l'aide d'un service de chat intégré à WCF.
  • Une application de tableau de bord qui interroge un ou plusieurs services pour obtenir des informations et les présente de manière logique.
  • Exposer un flux de travail implémenté à l'aide de Windows Workflow Foundation en tant que service WCF.

Qu'est-ce qu'un service Web?

Comme indiqué ci-dessus, les services Web fonctionnent dans un environnement sans état. Il n'est accessible que via HTTP. Les services WCF peuvent être hébergés dans différents types d'applications. Par conséquent, contrairement aux services Web, WCF est plus flexible.

WCF peut être hébergé dans différents scénarios. De tels scénarios incluent des services tels que WAS, IIS, auto-hébergement, service Windows géré, etc.

Comparaison directe entre WCF et les services Web (infographie)

Vous trouverez ci-dessous la différence entre les 9 meilleurs WCF et les services Web

Différences clés entre WCF et les services Web

Les deux WCF vs Web Services sont des choix populaires sur le marché; laissez-nous discuter de certaines des principales différences entre WCF vs Web Services

  • Lors du transfert de données d'une application vers une autre application, le service Web utilise uniquement le protocole HTTP. D'autre part, pour le transport de données, WCF prend en charge plus de protocoles par rapport aux services Web ASP.NET. Outre l'envoi de messages via HTTP, WCF prend également en charge le protocole TCP (Transmission Control Protocol), Microsoft Message Queuing (MSMQ) et les canaux nommés.
  • WCF est architecturalement plus robuste que Web Service.
  • XmlSerializer est utilisé dans les services Web. WCF utilise DataContractSerializer, qui est meilleur par rapport à XmlSerializer en termes de performances.
  • Lors de la communication entre plusieurs applications développées sur différentes plateformes, nous utilisons WCF. L'utilisation de WCF est la seule possibilité de transfert de données au cas où nous transférerions des données de la plateforme .NET vers toute autre application qui s'exécute sur d'autres systèmes d'exploitation tels qu'Unix ou Linux.
  • La sécurité dans WCF est très élevée par rapport au service Web.

Tableau de comparaison WCF vs Web Services

Ci-dessous, la 9 comparaison la plus élevée entre WCF et les services Web

La base de comparaison entre WCF vs Web Services

WCF

Services Web

Version d'introductionLe service WCF a été introduit avec .NET version 3.0.Le service Web existe dans un framework .net à partir de la version 1.0.
Protocole de réception et d'envoi de messagesLes services WCF utilisent SOAP par défaut, mais les messages peuvent être dans n'importe quel format et transmis en utilisant n'importe quel protocole de transport tel que WS-HTTP, TCP, Named Pipes, HTTP, HTTPs, MSMQ, P2P (Point to Point) etc.Les services Web ASP.NET peuvent envoyer et recevoir des messages à l'aide de SOAP sur HTTP ou HTTPS uniquement.
Extension de fichierLes services Wcf ont l'extension «.svc».Les services Web ont l'extension «.asmx»
DirectifLa page svc utilise la directive «ServiceHost».La page asmx utilise la directive «WebService»
Technique de sérialisationIl utilise DataContractSerializer dans l'espace de noms System.RunTime.Serialization pour la sérialisation.Pour la sérialisation, les services Web ASP.NET sont basés sur XmlSerializer dans l'espace de noms System.XML.Serialization. Certaines des limitations de XmlSerializer sont:

  • Une possibilité de sérialisation des propriétés / champs publics.
  • La sérialisation n'est possible que pour les classes de collection implémentant Icollection ou IEnumerable.
  • La sérialisation n'est pas possible pour les classes implémentant IDictionary, par exemple, HashTable.
  • Une indication explicite des champs ou des propriétés qui doivent être sérialisés en XML et l'identification des champs qui doivent être ignorés par le sérialiseur n'est pas possible.

Mécanisme d'hébergementLes services WCF peuvent être hébergés sur plusieurs plates-formes telles que IIS, les services d'activation Windows (WAS), les services Windows gérés ou l'auto-hébergement, etc.Le service Web ASP.net ne peut être hébergé que dans IIS.
gestion des exceptions non géréeLes exceptions non gérées ne sont pas renvoyées aux clients en tant qu'erreurs SOAP.Les exceptions non gérées sont renvoyées aux clients en tant qu'erreurs SOAP dans les services Web ASP.NET.
Prise en charge multithreadLe multithread est pris en charge par les services WCF.Il n'y a pas de prise en charge du multithread dans les services Web.
PerformanceWCF est plus rapide par rapport aux services WebÉtant donné que les services Web utilisent des sérialiseurs, ils sont donc plus lents que les services WCF en termes de performances.

Exemple de WCF vs services Web

Voici un exemple de WCF par rapport aux services Web:

Services Web

L'extrait de code suivant nous montre comment développer un service dans Web Service.

(WebService) public class MyService
(
(WebMethod) public SumClass SumOfNums(string JsonStr)
(
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize(JsonStr);
return new SumClass().GetSumClass(ObjSumClass.First, ObjSumClass.Second);
)
)
public class SumClass
(
public int First, Second, Sum;
public SumClass GetSumClass(int Num1, int Num2)
(
var ObjSum = new SumClass
(
Sum = Num1 + Num2,
);
return ObjSum;
)
)

WCF

L'extrait de code suivant nous montre comment développer un service dans WCF

ServiceContract) blic class MyService : WebService
(
(OperationContract) public SumClass SumOfNums(string JsonStr)
(
var ObjSerializer = new JavaScriptSerializer();
var ObjSumClass = ObjSerializer.Deserialize(JsonStr);
return new SumClass().GetSumClass(ObjSumClass.First, ObjSumClass.Second);
)
)
(DataContract) public class SumClass
(
(DataMember) public int First;
(DataMember) public int Second;
(DataMember) public int Sum;
public SumClass GetSumClass(int Num1, int Num2)
(
var ObjSum = new SumClass
(
Sum = Num1 + Num2,
);
return ObjSum;
)
)

Conclusion - WCF vs services Web

D'après la discussion ci-dessus, le service WCF est certainement une technologie de pointe que le service Web. WCF est plus rapide que le service Web en termes de performances. WCF offre une meilleure sécurité, prend en charge divers protocoles ainsi que des formats de message. La seule zone mouvementée de WCF pour les développeurs est sa partie configuration. Cependant, ce problème a également été résolu avec WCF4.0 en introduisant des paramètres de configuration par défaut. Il est à noter que jusqu'à .NET3.5, le studio visuel fournit un modèle direct pour le service Web. Depuis.NET4.0, nous n'obtenons aucun modèle direct pour le service Web. Par conséquent, nous devons créer une application Web et y ajouter un service Web.

Articles recommandés

Cela a été un guide pour la principale différence entre WCF et les services Web. Ici, nous discutons également des principales différences WCF vs Web Services avec des infographies et un tableau de comparaison. Vous pouvez également consulter les articles suivants pour en savoir plus.

  1. Comparaison - Ubuntu vs Windows 10
  2. Application mobile vs sites Web - Comparaisons utiles
  3. Mode veille vs Hibernate-Top La plupart des différences
  4. Microsoft Azure contre Amazon Web Services