Варианты связи Async Silverlight-to-WPF? - PullRequest
0 голосов
/ 07 апреля 2010

Какая самая быстрая модель связи для компонента Silverlight, взаимодействующего с компонентом WPF? То есть, по крайней мере, я хотел бы использовать событие из компонента Silverlight в компоненте WPF.

  • Я понимаю, что вы можете использовать WCF для создания моста
  • Я понимаю, что вы можете использовать Javascript для моста из WPF -> Silverlight (и у меня это работает)
  • Я понимаю, что вы можете использовать COM, чтобы пойти другим путем (Silveright -> WPF)

Однако я ищу более тесную коммуникационную модель (без использования COM) - возможно, как EventAggregator (пабы компонентов Silverlight, подпрограммы компонентов WPF) ... но я видел только eventAggregation в WPF или Silverlight, но не оба одновременно.

Есть идеи по созданию такого eventAgg / eventBus, без использования WCF, без использования COM?

Открыт для любых подходов / идей; может быть, я чего-то не учел.

Спасибо.

1 Ответ

0 голосов
/ 07 апреля 2010

Интересная задача - не могли бы вы рассказать немного подробнее о том, зачем вам это нужно?

Мой первый вопрос: вы представляете, что эти два приложения работают на одном компьютере одновременно? Оба важны.

Если ответ «да» (один и тот же компьютер, оба работают), вы должны иметь возможность реализовать решение с использованием WCF, с помощью службы, размещенной в приложении WPF, со ссылкой на нее клиента Silverlight и междоменной политики настроить соответственно.

Если ответ положительный, но не в то же время, вам понадобится третье лицо, например, шина сообщений, возможно, реализованная как служба Windows. NServiceBus приходит на ум.

В любом случае, WCF действительно является лучшим решением для обмена сообщениями в Silverlight. Если вы собирались использовать приложение Silverlight для приложения Silverlight , для этого существует механизм, который не требует WCF.

Шина сообщений предоставит вам функциональность Event Aggregator, о которой вы думаете - игрок, который всегда готов принять подписки и публикации.

Другой вариант (если он выполняется одновременно) - повысить уровень доверия к приложению Silverlight и использовать Сокеты . См. эту ссылку для получения дополнительной информации (он может привести полезный пример).

...