はじめに
NetAdvantage Silverlight LOBは、Silverlight 4に対応した高性能コントロール・スイートです。高機能なデータグリッドコントロールであるxamWebGridを含めさまざまな業務向けコントロールが収録されていますが、その真価はコントロールだけではなく、その背後に構築されたフレームワーク機能にも便利なものが多数あります。今回は その中の一つVirtualCollectionフレームワークを使用して、Silverlightのデータグリッドソリューションでロードオンデマンド処理を実現する方法を解説します。
対象読者
Silverlightによるアプリケーション開発者。特にVisual Studio 2010, Expression Blendなどのツールを使ったプログラミング経験がある方。なお、本記事の中でご紹介するプログラムコードはすべてC#で記述しています。
必要環境
Silverlight 4アプリケーションが構築できる環境としてVisual Studio 2010およびSilverlight 4 Tools for Visual Studio 2010がインストールされていること。さらにNetAdvantage Silverlight LOB 2010 Vol.1が含まれる、NetAdvantage for WebClient 2010 Vol.1またはNetAdvantage for .NET 2010 Vol.1の正式版またはトライアル版をインストールする必要があります。
NetAdvantageのインストール
はじめてNetAdvantage Silverlight LOBを使用する場合には、事前にソフトウェアをインストールする必要があります。まだお持ちでない場合は、インフラジスティックス ジャパン社のWebサイトよりインストーラーを入手してください。製品購入前の評価用として用意しているトライアル版で、各コントロールの使い方を学ぶことができます。
なお、NetAdvantage Silverlight LOB 2010 Vol.1はもともとSilverlight 3でビルドされていますが、製品購入後に取得可能なサービスリリースを適用することでSilverlight 4版のアセンブリーにアップデートされます。
NetAdvantage Silverlight LOB について
NetAdvantage Silverlight LOB(Line Of Business)は、Silverlightをプラットフォームとした本格的な業務アプリケーション構築を行うためのコントロールスイート製品です。本記事で紹介するxamWebGrid以外にも、ツリービュー(xamWebTree)、Outlookライクなナビゲーション(xamWebOutlookBar)、マスキングや数値入力のエディターなどさまざまなコントロールが含まれています。詳細についてはサイトまたはオンラインサンプルでご確認ください。
ロードオンデマンドの必要性
まずは本稿で解説する「ロードオンデマンド」機能について解説します。
一般にWebアプリケーションで大量行のデータを表示する際、「ページング機能」を併用することが多いと思いますが、これはまさにHTMLベースのWebアプリケーションにおいて欠かすことのできないロードオンデマンドの代表的な適用例と言えます。ページングを適用して1ページあたりの表示行数に制限を加えることで、初回(または2回目以降)の読み込みデータ量を制限することができ、結果として1回あたりの画面ロード時間の短縮を実現します。そして、ユーザーが選択したページのデータを「必要に応じて(=Load On Demand)」読み込んで表示を差し替えることで、情報量の制限による利便性の低下を最小限に抑えています。
WebアプリケーションではHTMLとして描画情報を転送するコストの高さからロードオンデマンドが欠かせない要素となっていますが、対してSilverlightアプリケーションではクライアント側のリソースを描画に使えるため、必要なデータのみを転送することができ、Webアプリケーションに比べるとその重要性は若干薄れる感はあります。例えば一度に1000行程度のデータをロードしてデータグリッド上に情報を表示しても、初回のロード時間さえ我慢できれば快適な操作が可能です。しかしながら、例えばWeb検索サイトのように数万~数十万のデータをロードする必要がある場合には初回ロードのデータ転送だけで相当な時間がかかってしまうでしょうし、初回表示までの応答速度こそが最優先の場合などはやはりロードオンデマンドの実現が重要になります。