Silverlight HTML-JS-DOM Bridge: случаи использования в реальном мире? - PullRequest
3 голосов
/ 15 августа 2010

Я видел много материалов в Интернете, которые демонстрируют учебные пособия по концепции того, как Silverlight можно использовать для улучшения веб-страниц, передавая ему задачи, используя потоки, манипулируя DOM, достигая функциональности, подобной Comet, и т. Д. .

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

Ответы [ 2 ]

4 голосов
/ 18 августа 2010

Конечно. Я использовал взаимодействие HTML DOM по нескольким причинам.

Во-первых, при миграции существующего приложения ASP.NET на Silverlight. В архитектуре, с которой мы работали, приложение было очень сильно основано на AJAX с большим количеством обратных вызовов. Вместо того, чтобы изобретать колесо для Silverlight, мы смогли использовать взаимодействие DOM для создания моста, чтобы элемент управления Silverlight мог выполнять обратный вызов аналогичным образом. Это означало использование информации безопасности и представления состояния ASP.NET для извлечения информации с сервера и загрузки в приложение Silverlight. Мы уже возвращали данные в формате JSON, поэтому было легко разобрать их обратно в приложение Silverlight.

Другим примером является взаимодействие со сторонними элементами управления и службами. Например, Google Analytics предоставляет богатые функции отслеживания страниц. Этот проект является ярким примером:

http://silverlightanalytics.codeplex.com/

Там, где приложение может интегрироваться и даже если вы работаете в Silverlight, вы по сути отслеживаете клики, действия и просмотры страниц.

Другое место, где я использовал это, это когда Silverlight не используется как приложение, а скорее как часть или элемент управления на странице. Хотя элементы управления Silverlight могут взаимодействовать друг с другом с помощью локальной связи, это не работает с другими элементами управления не Silverlight. Используя мост HTML-DOM, вы можете легко создать связь между компонентами на основе JavaScript. Может быть, например, элемент управления Silverlight представляет собой интерактивную карту мира, которая позволяет вам просматривать регион. Когда вы выбираете регион, он вызывает событие JavaScript, которое другие элементы управления прослушивают и обновляют по этой причине.

Вы также можете использовать Silverlight в качестве элемента управления, например, элемента управления Captcha, где ваша форма использует мост DOM для проверки ввода пользователя в приложение Silverlight.

Я видел приложения облака тегов, в которых элемент управления Silverlight использует взаимодействие DOM для обхода текущей страницы, а затем генерирует анимированное облако тегов на основе этого.

Надеюсь, они предоставят примеры из реального мира.

1 голос
/ 24 августа 2010

Одна вещь, для которой я использовал DOM-Bridge, это вызывать события.HTML-страницы, на которых размещено мое приложение, подписываются на эти события и, соответственно, реагируют.

Например, мое приложение получает и отображает данные о продажах, поступающие от веб-службы WCF.Когда данные изменяются, возникает событие, так что на остальной части страницы могут отображаться другие данные.

Если вы не можете использовать ASP.Net, запрашивать и получать данные из веб-службы намного проще и меньше ошибок.в Silverlight, чем в Javascript (и также быстрее, потому что вы можете использовать оптимизированный кодировщик «binary-xml»).

Я думаю, что мост DOM наиболее полезен, когда вы распространяете приложение silverlight для встраивания впроизвольные веб-сайты, на которых вы не можете делать предположения о серверной среде, но должны обеспечивать возможность взаимодействия с приложением SL.

...