Cela fait maintenant un certain nombre de fois que cette question revient à mes petites oreilles, alors voici une réponse simplette claire sur le sujet : "Tout le monde!"

Oui, tout le monde peut consumer un service de workflows, car c'est en fait WCF qui fait tout le travail lié au Binding, au Endpoint et à l'exposition des metadata (WSDL, pas de metadatas internes à un workflow). La seule partie différente pour le moment se situe au niveau du message et de l'enveloppe SOAP employée par défaut par WF4. Les méthodes classiques de génération de proxy pour consommer un service WCF fonctionnent donc.

On peut donc utiliser un proxy :

  1. Généré par Visula Studio avec la commande "Ajouter une référence à un service Web".
  2. Généré par svcutil.
  3. Créé dynamiquement via une classe héritant de ClientBase<T>.
  4. Créé dynamiquement via ChannelFactory<T>.

Les deux premières se feront en toute transparence, et les deux secondes demanderont un peu d'adaptation afin que le workflow simule l'implémentation du contrat. Pour savoir comment contraindre un workflow à correspondre à un contrat, je vous renvoi vers un précédent article.

C'est quatre approches étant valables, on peut consommer du service de workflow sur toute plateforme en acceptant au moins une. On peut donc utiliser ces services depuis des clients écrits en .net 2, tout comme on peut le faire via un client mobile type Windows Phone 7 ;)

Qui a dit que WF4 n'était compatible avec absolument rien???

Cela fait