2010-04-07 16 views
0

Quel est le modèle de communication le plus rapide pour un composant Silverlight communiquant avec un composant WPF? C'est-à-dire, à tout le moins j'aimerais consommer un événement d'un composant Silverlight dans un composant WPF.Options pour la communication Async Silverlight-to-WPF?

  • Je comprends que vous pouvez utiliser WCF pour construire un pont
  • Je comprends que vous pouvez utiliser Javascript pour combler de WPF -> Silverlight (et je dois que le travail)
  • Je comprends que vous pouvez utiliser COM aller dans l'autre sens (Silveright -> WPF)

Cependant, je suis à la recherche d'un modèle de communication plus serré (ne pas utiliser COM) - peut-être comme EventAggregator (pubs composant Silverlight, sous-marins de composants WPF) ... mais j'ai Afficher uniquement l'événementAgrégation dans WPF ou Si mais pas les deux en même temps.

Des idées pour créer un tel eventAgg/eventBus, sans utiliser WCF, sans utiliser COM?

Ouvert à toutes les approches/idées; pourrait être quelque chose que je n'ai pas considéré.

Merci.

+0

Également - supposons un déploiement Windows uniquement, puisque WPF est impliqué. Et par "modèle comm plus serré" je ne veux pas dire couplage serré. EventAgg serait génial mais devrait être hébergé sur PC local, disponible pour les composants Silverlight et WPF. Est-ce que je suis fou de tenter même cela? :) –

+0

... Des idées pour créer un tel eventAgg/eventBus, sans utiliser WCF, sans utiliser COM? . . Explorer TCP/sockets, options de mémoire partagée aussi. –

+0

cela peut aider quelqu'un http://eneter.blogspot.com/2010/11/silverlight-how-to-receive-messages.html?showComment=1331198714279#c7370731825042576434 – Raathigesh

Répondre

0

Défi intéressant - pourriez-vous fournir un peu plus de détails sur les raisons pour lesquelles vous devez le faire?

Ma première question est: Envisagez-vous ces deux applications fonctionnant sur la même machine, en même temps? Les deux sont importants. Si la réponse est oui (même machine, les deux en cours d'exécution), vous devriez pouvoir implémenter une solution utilisant WCF, avec le service auto-hébergé dans l'application WPF, le client Silverlight le référençant et un domaine inter-domaines configuration de stratégie appropriée.

Si la réponse est oui, mais pas en même temps, alors vous aurez besoin d'un tiers, comme un bus de messages, peut-être implémenté en tant que service Windows. NServiceBus vient à l'esprit.

Dans tous les cas, WCF est vraiment la meilleure solution pour la messagerie dans Silverlight. Si vous utilisiez Silverlight app-à l'application Silverlight there is a mechanism for that qui ne nécessite pas WCF.

Un bus de messages vous donnerait la fonctionnalité Event Aggregator à laquelle vous songez - un lecteur qui est toujours là pour accepter les abonnements et les publications.

Une autre option (si elle s'exécute en même temps) consiste à élever votre application Silverlight en mode de confiance totale et à utiliser Sockets. Voir this link pour plus d'informations (il fournit un exemple qui peut être utile).