連載
続・無償環境でSilverlight 2アプリを開発しよう!

第3回 ファイルを利用するSilverlightアプリを作ろう

シグマコンサルティング 菅原 英治
2009/06/09
Page1 Page2

 皆さん、こんにちは。連載第3回となる今回は、分離ストレージ上のファイルを利用するSilverlight 2アプリの開発方法をご紹介します。分離ストレージとは、Silverlightで扱えるクライアント側の特殊なファイル・システムです(詳細後述)。これにより、アプリ上で操作した情報を保存したり、逆に保存した情報を読み出したりすることが可能になります。

 本稿では、Silverlightで作成した、非常にシンプルな「メモ帳アプリ」のサンプルを示します。サンプル上で入力した文章は保存することができ、一度ブラウザを閉じても、次回起動時に入力した文章を読み出すことができます。ファイルを利用すると、このようなブラウザを閉じても、情報を維持するようなアプリを作ることができます。

 それではさっそく始めましょう!

サンプルを動かそう

 まずはサンプルを実際に動かしてみましょう。繰り返しになりますが、今回のサンプルは、シンプルなメモ帳アプリです。テキストボックスに文字を入力し、その情報を保存することができます。

 以下に、そのSilverlight 2アプリを表示しています(サンプルを動作させるためには、「Silverlight 2プラグインのインストール」が必要です)。

ファイルを利用したSilverlight 2アプリ
・[保存]ボタンを押すとテキストボックスに入力した文字を保存します。
・[読出]ボタンを押すと保存した文字をテキストボックスに読み出します。
・[クリア]ボタンを押すとテキストボックスに入力した文字をすべて削除します。
※注意:[保存]ボタンを押した際に「初期化に失敗しました」というエラー・メッセージが表示される場合は、次の手順を行ってください。
(1)ブラウザ上のSilverlightアプリ上で右クリック
(2)表示される「Silverlight」をクリック
(3)[アプリケーションの記憶域]タブをクリック
(4)[アプリケーションの記憶域を有効にする]チェックボックスをクリックし有効にする

 サンプルでは、テキストボックスに文字を入力でき、[保存]ボタンを押すと、入力した文字が保存されます。[読出]ボタンを押すと、一度保存した文字が、テキストボックスに読み出されます。

 次に、一度、このブラウザ(=いままさにご覧になっているこのページ)を閉じて(PCを再起動しても構いません)、再度このページを開き、サンプル上の[読出]ボタンを押してみてください。保存した文字が、テキストボックスに読み出されるはずです。

 サンプルはうまく動作したでしょうか? ファイルを利用すると、このようにブラウザを閉じてもアプリで操作した情報を維持、すなわち情報を永続化することができます。

 それでは、次にこのサンプルのコードについて説明……する前に、Silverlightアプリで情報を永続化する方法について解説します。それによって、本稿で紹介するファイルを利用する方法の使いどころを理解していただくことが狙いです。

Silverlightアプリでの情報の永続化の考察

 Silverlightアプリにおいて、情報を永続化する方法としては、大きく次の2つが考えられます。

【情報の永続化方法】
  (1)ファイルを利用する方法
  (2)データベースを利用する方法

 それぞれの特徴を私の観点で、次の表にまとめてみました。

永続化方法 データの保存場所 情報の共有 利用しやすさ
(1)ファイル利用 クライアント側 向いていない 利用しやすい
(2)データベース利用 サーバ側 向いている 利用しにくい
情報の永続化方法の特徴

 前者の「(1)ファイルを利用する方法」が、本稿で解説する方法です。特徴としては、まず、データの保存場所がクライアント側のPCであるという点が挙げられます。そのため、アプリ上で入力した情報を複数のユーザーで瞬時に共有するような用途には向いていません。またこの方法は、利用するのが非常に簡単でもあります。

 一方で、後者の「(2)データベースを利用する方法」は、データベース・サーバ上に情報を保存するので、情報共有するのに向いています。しかしながら、利用するのが若干難しくなります。

 まず、当然ですが、データベースを用意する必要があります。しかしセキュリティに関する制限により、Silverlightアプリから直接データベースにアクセスすることはできません。このため、Silverlightアプリからデータベースを利用するためには、(基本的には)WCFサービスを作成し、そこからデータベースにアクセスするという手間が必要となります。このため、通常のASP.NETアプリやWindowsフォーム・アプリより、利用するためのハードルがもう一段階高いということになります。

 また、「(1)ファイルを利用する方法」には、いつでもクライアントが「機能を無効にできる」という特徴があります。そのため、常にこの方法が利用できるという前提でアプリを設計するのは現実的ではありません。

 以上を踏まえると、「(1)ファイルを利用する方法」の使いどころとしては、アプリ上の外観の設定情報(例えば、ウィンドウの位置や色、文字の大きさなど)のような一時的な情報を保存するのが最も適しているのかもしれません。そのような情報であれば、最悪保存できなくてもアプリの動作には問題がないからです。

 それでは、次にサンプルのコードを解説します。

【コラム】ファイルを利用する方法のそのほかの使いどころ

 本文中では、「ファイルを利用する方法」の使いどころとして、一時的な外観の設定情報を保存するのに向いていると述べました。そのほかの便利な使いどころとして、画面のトレース(=操作)ログを記録するという用途があります。

 Silverlightアプリは、ASP.NETでのWebアプリに比べて、UIに関する処理で発生する例外を発見することが難しいという特徴があります。Webアプリでは、通常、ボタンを押すなどの操作は、一度サーバ側にリクエストが行われます。ですので、UI処理で発生した例外でも、少なくともサーバ側で情報を捕捉することができます。

 一方、Silverlightアプリでは、UIの操作がクライアント側で完結します。UI処理で例外が発生した場合、ブラウザのスクリプト・エラーとなるので、エラーを発生したことをサーバ側で捕捉することができません。

 そこで、画面のトレース(=操作)ログを、「ファイルを利用する方法」で保存するわけです。こうすると、少なくとも画面側で発生した例外をその場で記録として残すことができるので、後々のデバッグに役立ちます。



 INDEX
  連載:続・無償環境でSilverlight 2アプリを開発しよう!
  第3回 ファイルを利用するSilverlightアプリを作ろう
  1.Silverlightアプリでの情報の永続化の考察
    2.コードビハインド側コードのポイント

インデックス・ページヘ  「続・無償環境でSilverlight 2アプリを開発しよう!」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH