いよいよ完成、でもまだ1つ問題が!
前ページまででホストアプリケーションからSilverlightまでの道筋ができたことになりますが、ここで1つ問題があります。
Silverlightのローカルメッセージングは、異なるURIスキーム間で通信ができません。つまり、ホストで使うfile://~とWeb上のSilverlightのhttp://~の間では通信ができません。この問題を解決するには、WebBrowserコントロールのアクセス先をhttp://でアクセスできる場所に置く必要があります。オンラインに置いてもいいですが、今回は簡易ウェブサーバーを組み込むことにしました。パーソナルファイアウォールに止められる可能性は残りますが、Windows標準のファイアーウォールでは遮断されない(「社内ネットワーク」または「ホームネットワーク」の場合)ようです。最終的には、Silverlightとサーバーとのソケット通信も加わって、構成は以下のようになります。
今回、この中のSilverlight側の実装はうましかアプリとは別のプロジェクトファイルとして作ってあります。通信部分をDLLファイルにして、Silverlightアプリケーションから参照することで、通信の仕様を隠蔽したり、Silverlightアプリケーション側のソースコードをアニメーションなどの見た目部分に集中させることができます。
■Amazon.co.jpで購入
YUREX面白法人 カヤック