このエントリーをはてなブックマークに追加このエントリをつぶやく

silverlightで業務アプリ(ローカルメッセージ機能小ネタその1)

silverlight、使ってマスカ?

昨年、silverlight4がリリースされて「業務システムもsilverlightで!」と言われてから早1年近く。中々情報が増えませんね。
そうこうしているうちにsilverlight5のベータリリースも迫ってきた今日この頃です。

そこで、WebアプリやWindowsアプリの開発経験者が、silverlightアプリ開発時に悩みそう(というか、悩んだ)なポイントに対する小ネタを紹介していきたいと思います。
(本当に小ネタなんです。ええ。)

業務アプリの要件というと「他(既存)システムとの連携」なんていうのが良く出てくるかと思います。
最近ですとお互いにWebアプリであることが多いのでURLパラメータやPOSTによるブラウザ間連携が一番シンプルな方法でしょうか。
その際に懸念として上がってくるのが、silverlightの起動処理の重さ。
PCのCPUが最近のCore-iなんちゃらとかなら、かなりヘビーなアプリでもサクっと起動してくれますが、そんなPC環境はそうそう多く無いわけで、一昔前のCPUだと・・・。
だけど、一度起動してしまえばPCスペックに関係無く結構サクサク動いてくれる、という利点もあったりします。
(じゃぁ一体何で起動処理は重いんだ?というのはまた改めて)

そこでちょっと考えてみました。
ブラウザ間連携で毎回silverlightアプリを読み込んでいたら業務に耐えられない。
だったら、起動済みのアプリに対して外部からデータを投げ込んで処理すればいいんじゃね?

ということで、ローカルメッセージ機能を使ってブラウザ間連携をしてみました。
(前フリ長い)

ちなみに、ローカルメッセージ機能自体はsilverlighr3で追加された機能です。
詳しいことはこちらで
Silverlight ベースのローカル アプリケーション間の通信

さて、もちろんローカルメッセージはsilverlightアプリ間での通信手段なので外部のWebアプリとの連携にはそのまま使えません。

ということで、下の図のように、ちょっと連携方法を変えてみます。

silverlightでローカルメッセージを利用したブラウザ連携

本来の連携したいアプリ間に連携用のsilverlightアプリを挟んで、silverlightアプリ間でローカルメッセージによる連携を行う、という方法です。
(赤い線の部分がローカルメッセージによる通信になります)

この時、連携用のsilverlightアプリBは極力軽いアプリにするのがミソです。
連携用のロジックが書かれただけのアプリがベストです。

これで、「高速で起動可能なsilverlightアプリに対して外部アプリから連携することによって、silverlightアプリの起動時間が最短に出来るよね!silverlightアプリAは一度起動しちゃえばローカルメッセージ通信で初期処理いらずさ!」となって問題が解決(改善)されるはず。。。

それでは実際にサンプルコードを・・・おっと、時間のようです。
ということで「次回、サンプルコードは完成するのか?」で。

カテゴリー: プログラミング   タグ:   この投稿のパーマリンク

コメントは受け付けていません。