web-dev-qa-db-fra.com

Pourquoi WCF est-il si important et dans quels cas est-il utilisé?

Je comprends dans une certaine mesure que cela aide les applications à communiquer quel que soit leur emplacement. Pourquoi est-ce important et quel est un exemple d'utilisation réelle de WCF?

40
simplyme

WCF est un mécanisme de communication générique qui vous permet de configurer une communication client/hôte générique entre deux parties. La chose intéressante à propos de WCF est qu'il vous permet de configurer les propriétés de service telles que le transport (http/pipes/tcp/Tibco EMS), les modèles de sécurité (l'une des normes W3C), la compression, l'encodage, les délais d'expiration, etc., sans changer AUCUN code . C'est puissant. Mieux encore, vous pouvez le configurer pour avoir un service en C # et un client en Java (ou tout autre langage ou l'inverse), à ​​condition qu'ils parlent tous les deux en utilisant les mêmes mécanismes.

Vous pouvez créer un service Web HTTP SOAP en utilisant WCF et un jour décider de le changer pour utiliser les canaux nommés plus rapides pour la communication locale. Vous pouvez créer des services Web qui parlent via TibcoEMS et ont un basculement facile. au niveau de la file d'attente. Vous pouvez créer un service Web de diffusion de fichiers qui distribue toutes sortes d'images/vidéos à votre application.

59
Szymon Rozga

Il n'y a pas grand-chose à ajouter aux réponses jusqu'à présent, en particulier celle de "siz".

Une chose à ajouter est que WCF est le moyen actuel de faire des services Web sur la plate-forme .NET. Ce n'est pas la "nouvelle" manière, c'est la manière actuelle. Les services Web ASMX sont une méthode ancienne et à peine maintenue. Un employé de Microsoft a déclaré publiquement que seuls les correctifs de sécurité critiques seraient apportés à la plate-forme ASMX, donc si vous avez l'intention que vos services soient utiles dans plus d'un an, n'utilisez pas ASMX.

En plus des cas d'utilisation typiques de "service Web", WCF gère des cas atypiques, comme la communication binaire sur des canaux nommés, des files d'attente de messages, etc. Dans une très large mesure, le service que vous écrivez pour prendre en charge quelque chose de simple comme SOAP over SSL peut également prendre en charge ces autres protocoles, sans modification du code.

9
John Saunders

Pour répondre au "monde réel", je suis en train de terminer un système de répartition par lequel un Visual Basic 6. /accède au récepteur d'alarme, un WPF/SQL ERP Le système et une application iPhone partagent tous des informations pour planifier et exécuter des tâches.

4
SteveCav

Il existe un certain nombre de raisons pour lesquelles il est avantageux par rapport aux services Web ASP.NET classiques (.asmx).

Quelques-uns de ceux-ci au sommet de ma tête sont:

  1. La possibilité d'avoir plusieurs liaisons pour le même appel de service signifie que le message n'a pas à être sérialisé en XML et inversement si vous souhaitez simplement communiquer à l'intérieur d'une batterie de serveurs Web.

  2. La façon dont les contrats sont définis est beaucoup plus indulgente lorsqu'il s'agit de plusieurs versions d'un même contrat.

3
Chris Simpson

Essentiellement, le cas d'utilisation est celui où vous voulez que deux applications distinctes se parlent d'une manière ou d'une autre et que leurs emplacements sont inconnus (il peut s'agir de la même machine (mais différente domaine d'application ), du même réseau ou de l'autre côté du internets)

Vous pouvez facilement l'intégrer dans une application Windows Forms . C'était une belle chose à découvrir. C'est tellement plus facile que . NET Remoting aussi.

3
Quibblesome