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 concrète de la WCF?
Réponses
Trop de publicités?WCF est un générique mécanisme de communication qui vous permet de configurer les génériques client/hôte de la communication entre les deux parties. La chose intéressante à propos de la WCF est qui est permet de configurer les propriétés du service de transport (http/tuyaux/tcp/Tibco EMS), des modèles de sécurité (tous les standards du W3C), compression, codage, les délais, etc, sans modification de code. C'est puissant. Le meilleur de tous, vous pouvez le configurer de sorte que vous pouvez avoir un service en C# et un client en Java (ou toute autre langue ou dans l'autre sens), aussi longtemps que les deux parlent en utilisant les mêmes mécanismes.
Vous pouvez créer un standard HTTP web service SOAP en utilisant WCF et un jour, décident de passer à l'utilisation la plus rapide des canaux nommés pour la communication locale. Vous pouvez créer des services web qui parlent TibcoEMS et ont facilement de basculement dans la file d'attente de niveau. Vous pouvez créer un fichier de streaming service web qui distribue toutes sortes d'images et de vidéos pour votre application.
Il y a peu à ajouter aux réponses jusqu'à présent, en particulier celui de "siz".
Une chose à ajouter, c'est que la WCF est la façon actuelle de faire des services web sur le .NET plate-forme. Ce n'est pas le "nouveau" mode, c'est la façon actuelle. Services web ASMX sont l'ancien et le à peine maintenu façon. Un employé de Microsoft a déclaré publiquement que seul critique des correctifs de sécurité seront mis à la ASMX plate-forme, donc si vous avez l'intention de vos services à être utile à plus d'un an à partir de maintenant, ne pas utiliser de ASMX.
En plus de la typique "web service" des cas d'utilisation, WCF poignées de cas atypiques, comme les binaires de la communication sur des canaux nommés, les files d'attente, etc. Dans une très large mesure, le service de vous écrire afin de soutenir quelque chose de simple comme le SAVON sur SSL peut également soutenir ces autres protocoles, sans modifier le code.
Pour répondre au bit "monde réel", je viens de terminer un système de répartition par lequel un récepteur d'alarme Visual Basic 6.0 / access, un système ERP WPF / SQL et une application iPhone partagent tous des informations pour planifier et exécuter des travaux.
Il existe un certain nombre de raisons pour lesquelles il est avantageux par rapport aux services Web ASP.NET classiques (.asmx).
Quelques unes de celles-ci sont les suivantes:
La possibilité d'avoir plusieurs liaisons pour le même appel de service signifie que le message n'a pas besoin d'être sérialisé en XML et inversement si vous souhaitez simplement communiquer au sein d'une batterie de serveurs Web.
La façon dont les contrats sont définis est beaucoup plus clémente lorsqu'il s'agit de plusieurs versions du même contrat.
Essentiellement le cas d'utilisation est l'endroit où vous souhaitez que deux applications distinctes pour parler les uns aux autres d'une certaine façon et leurs emplacements sont inconnues (peut être la même machine (mais différents domaine d'application), d'un même réseau ou sur l'autre côté de la internets)
Vous pouvez facilement l'intégrer dans un Windows Forms application. C'était une belle chose à découvrir. Il est tellement plus facile que .NET Remoting trop.