きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

『部分的にSilverlight2を使ってみるテスト』

ということで、過日、『わんくま同盟 大阪勉強会 #27』でやらせていただいたセッションの、軽いアフターフォローじみたモノを等を少しばかり。


あ、資料のタイトルはこの小見出しなんですが、レジュメのセッションタイトルは『業務アプリでSilvergith2を部分的に使ってみる(仮)」』でしたね(^^;
見切り発車ですみませんm(_ _)m

超重要事項

本当に、disってるんじゃないんです。

いや、しつこいくらいに書いたり言ったかもしれませんが、念のため(^^;

実際、XAMLやらステートマネージャやらバインドやらすばらしい機能がいっぱいあって、それらをちゃんと理解して設計して作ってやれば、かなりイケテル感じになると思うのです。

しかしながら、フルフルに生かそうとすると、既存のWebアプリ、WinFromアプリとはまったく違ったパラダイムでやら無いといけない。
いけないので、そのためのいわば人的なイニシャライズコストを許容できるかのハードルがどうしても出てこざるを得ない、と思うのです。


これも何度も言いましたが、フルフルにデータアクセス回りにWebサービスっぽいモノを使わざる得ないので、ここまで自前で何とかしようと、正直今までそのスキルが無かった人/運用を考えていなかった組織にとって、相当ハードルが上がる可能性があると思うんです。

このハードルを越えるためのコストを許容できるか出来ないかというはその現場によってまちまちで。そう、少なくとも、今現在は許容出来そうにない現場というのは、確実にある思うのです。

で、それに対する私なりの答え(と言うほどたいそうなモノではないのですが)が、今回の『部分利用』と言う訳なのです。


この部分利用から着手しながら、Silverlight2本来のパラダイムを少しづつ習得していくというのも、悪いアプローチではないと思うのです。

本題に近い部分の話。

今回の内容は、Visual Studio Express Editionでも出来ます。

これ、サラっと似たような事を云った気もしつつ、はっきりとはいってないような気もしつつ。『Blendも要らない範囲で何とかやろう』というのも今回の主旨の一つ(のつもり)だったので、いまさらですが、強調させてください。
環境の構築については、このエントリの”ケース1”辺りが参考になれば幸いです。

HTMLブリッジで必要な名前空間について。

セッション資料に書いてないんですが、『System.Windows.Browser』名前空間が今回のキモです。一番大事な子です。

Javascriptからマネージコードを呼ぶ話のフォロー

以下の3ステップは3ステップなのですが、太字のところが資料に明記されていませんでした。すみません。

  • 公開したいメソッドにScriptableMember属性を付加
  • 公開したいメソッドが属するインスタンスをHtmlPage.RegisterScriptableObject()で公開用に登録
  • Javascriptにて、Silverlight2のオブジェクトを取得し、該当のメソッドをコール

このあたりは、参考資料にもあげたMSDNライブラリののうち、以下の所を見てみてください。
チュートリアル : JavaScript からのマネージ コードの呼び出し



その他。
  • IRCの発言を横目でチラ見はしてたんですが、話に混ぜ込んで活用できませんでした(ToT)。これは反省。コメント戴いてかた、本当にすみませんでした
  • Moonlightの話、しましたっけ?多分してない?
  • ちょっと言っていたvisifireのチャート、これです。http://visifire.com/ デモもあるので、見て見てください。
  • Gridのは、当初こんな感じで汎用的なのを作ろうかと思いましたが、一瞬で挫折しましたww
  • ってか、完全にアプリに取り込むなら、そんな汎用性はいらないだろ、と思いますし。
  • あと、最後にGridにバインドしていた個人情報っぽいものは、恒例(?)のなんちゃって個人情報からいただきました。これでXMLの形でもらってきて、適当にLinqToXMLでゴニョゴニョしてました。あんまりコードをお見せしてなかったですけど、まあ、所詮あんなコードなので(以下略


以上、フォローになってるのかなってないのかな感じで申し訳ないですが、こんな感じで…。
あと、サンプルソリューションなのですが、正直、 ここのチュートリアルレベルと変わらないので、ここを見てみてください、と逃げてみる(^^;


もし、何かまだ「足りてねーダロ」的な事や、その他なんでもかまいませんので何か在りましたらお気軽に(?)お声をかけてみてくださいm(__)m