October 2008 - 投稿

先月の X-Dev でもお話しさせていただきましたが、今後の BI のキーワードはデータの視覚化 (Data Visualization) であり、それを実現するプラットフォームは WPF 、そして Silverlight2 ということになると思います。

先日の MIX essentials. Silverlight Day でも、 Silverlight をつかった BI ポータルの興味深いデモを通して、そのポテンシャルを垣間見た気がします。

Infragistics は Silverlight向けのCTPとして、Silverlight2 beta1 の頃からチャートゲージを 公開してきましたが、今回 Silverlight2 正式版対応に伴い、新たなコントロールが加わりましたStar

今回加わったコントロールは2つ、マップタイムラインです。

マップでは、自在にズームやスクロールができる地図上に、データを関連づけて視覚化することができます。

サンプル事例 IG Election Center では、アメリカの州マップの上で過去の大統領選の結果をグラフィカルに表現しています。

マップの事例

全国拠点ごとの営業成績や状況表示に使ったり、エリアの選択用として使ったりと、BIポータルへの応用が自然にイメージしやすいコンポーネントだと思います。

ちなみにMapデータは標準フォーマットであるESRI社のShapeFile形式をサポートしているので、日本地図データも簡単に使えます。

 

日本地図をだしてみる

(この Shape File データはESRIジャパン社のサイトからダウンロードできます)

 

もうひとつのタイムラインは、ひとつまたは複数のデータを時系列にマップするコントロールで、表示範囲を自由に移動・拡縮できるスライダーとセットになっています。

タイムライン

これも時系列だけではなく、線形のビジネス データを表現する手段としていろいろな応用が考えられそうですね。

もちろん、新顔コントロールだけではなく、チャートやゲージのアップデートや新サンプルも加わっています。

英語サイトですが、ここで実際に動かしたり、ソースのダウンロードもできるのでぜひお試しください!Music

 

 

今度は北へ。

先日鈴木もちょこっと触れましたが、札幌でのアカデミア開催が決まりました!!Yes

 

 Infragistics アカデミア 2008 in 札幌 

20081113日(木) マイクロソフト株式会社(北海道支店)

 

東京・大阪のDevDay'sにはじまり、名古屋、広島と開催してきた今年のアカデミアシリーズ最後の開催となります。そしてInfragistics初の北海道地区での開催。私も冬場の札幌は初めてなので、とても楽しみにしています。

今回はWinFormsとASP.NETでのNetAdvantage開発Tipsに加えて、WPFとSilverlightの最新情報をより多くご紹介できればと思っています。

そしてなんと、マイクロソフトの市橋様にもセッション (Light Up the Web) をして頂けることになりました!

内容盛りだくさんの濃厚な4時間半になると思いますので、札幌エリアにお住いの方は、ぜひともお早めのご登録をお願いします(もちろん、参加無料ですよWink)。

先日RC0がリリースされたSilverlight2。

今週の金曜日には待望のMIX essentials. Silverlight Day も控えており、ますますヒートアップしてきてきました。わくわくですねGeeked

そんな中で最近はいろいろなお客さまからSilverlightへの期待を耳にすることが多いのですが、いつも話題になるのは、

 「実際の業務アプリの開発の中でSilverlightはどこまで使えるの?」

という疑問であったり、

「Silverlightになってデータのやり取りはどういう風になるの?」

という質問だったりします。

 

今回は、そんな疑問に対する回答として、インフラジスティックスのエバンジェリストであるトニー(Anthony Lombardo)が書いた記事をご紹介します。

Siverlight2でLine-of-Business(LOB = 業務アプリケーション)を作る」というもので、以下のサイトで公開されています。

Building Line-of-Business Apps with Silverlight 2


業務アプリの開発に欠かせないコアな機能を、Silverlight2 上ではどのように実現すべきなのかという、いくつかのヒントがありますので、ここではその要点をかいつまんでみたいと思います。

 

■ 認証(Authentication)

  • ASP.NETの認証モデルを利用し、Windows認証やForm認証を行うのが最も簡単な方法。
  • でもフルスクリーンのSilverlightアプリの中でよりハイレベルなログインのためのUXを実現するためには、WCFを使って要件にマッチしたものを作りたい。
  • ASP.NET3.5には認証やロール、プロファイルについてのWCFサービスが含まれているので、これらのサービスを導入のは簡単!
  • 単純なWCFサービスを作成してこれを認証用サービスのEndPointとし、さらにweb.config上でこのサービスを有効化するように構成すればよい(記事内のリスト1およびリスト2のコードを参照)
  • あとはSilverlightアプリ上でこのサービスを参照し、コーディングを行うだけ。

■ 個人設定とストレージ(Application Settings and Storage)

  • 個人設定の保持については、ASP.NETのプロファイル サービスをそのまま使用し、サーバー サイドでの管理が可能(記事のリスト3)。
  • ただ、シナリオによっては、クライアント側にプロファイルを保持したい場合もあるかと。そんなときは、分離ストレージ(Isolated Storage)を使うことができる。
  • 分離ストレージ自体は以前から.Net Frameworkに含まれていた機能なので、リスト4(記事内)のようなコードにもお馴染みだと思う。
  • でもSilverlightではIsolated Storageによるキャッシュ領域の最大サイズが100KBに制限されている点に注意!(拡張も可能だけどユーザが承認する必要がある)

■ データアクセス(Data Access)

  •  コントロールとのデータバインドについては、(当然ながら)XAMLベースのWPFのシナリオに非常に近い。ASP.NETに慣れている人にも、テンプレートを使った宣言的バインディングの方法を想像すればよいかと。
  • TextBox、checkBoxなどのコントロールでデータバインドを行うときは、リスト5のようにバインドしたいプロパティに対してDataContextの対象となるプロパティ名を記述する形が一般的。DataContextはすべてのコントロールが上位のコンテナから引き渡される。
  • DataGridをバインドするときは、ListSourceプロパティが従来のDataSourceプロパティの役目を果たす。
  • データの取得については、LinqToSqlをホストするWCFと通信するのが一般的なシナリオ。そのときにはDataContextのSerializationModeプロパティをUnidirectionalに指定するのがポイント(日本語 VisualStudio では、シリアル化モードを「一方向」と設定)。
  • 既にビジネス エンティティ クラスを独自に作成している場合は、双方向のデータバインドを実現するために INotifyPropertyChanged インターフェースを実装し忘れないように。

■ Silverlightでの双方向サービスについて (A Note on Silverlight's DuplexService)

  • サーバ側からのデータプッシュを可能にする双方向サービスという考え方は非常に魅力的だが、 あくまでHTTPコネクションの上で構築されているため、サーバ側から接続をはじめることはできない。
  • Silverlightでは、クライアント側からのHTTPコネクション上での一定時間のポーリングを行う形で、サーバサイドからのプッシュに似た機能を実現している。
  • ただ、現段階では双方向サービスは評価専用の別ライブラリ(System.ServiceMode.PollingDuplex.dll)で提供されていることもあり、まだ十分に使える段階とはいえない。実際のプロジェクトで採用するにはもう少し待った方が良いと思われる。

■ Model - View - ViewModel パターン (MVVM)

  • WPFでも多く使われているMVVMパターンは、当然Silverlightでも有効。デザイン(View)と画面ごとのロジック(ViewModel)の分離はWPF/SilverlightのXAMLモデルと相性が良い。
  • しかしSilverlightではWPFにおけるコマンド(Command)が存在しない点注意が必要。コマンドはMVVMの重要な要素なので、これに代わる部分をカスタムコーディングする必要がある。でもこの点はご安心を。Nikhil Kothari's blogでソリューションが紹介されている。


こんな感じです。最後にトニーはLOBの将来について、LOB2.0ともいうべきこれからの時代では、アニメーションやビデオといった外見だけではないSilverlightの真価が発揮されるでしょうと言及しています。

 この中でも双方向サービスやMVVMについての考察はとても興味深いところ。このへんを今後もうちょっと掘り下げてみたいと思います。