ジョイ・オブ・プログラミング:Silverlight 2

ハッとしてグッと操作! 「Silverlight 2で業務アプリ」を考える

シグマコンサルティング 菅原 英治
2008/09/02

Page1 Page2 Page3

皆さん、こんにちは。ロブです。今回は、ハッとして! グッと直観的に操作できるような使い勝手の良いビジネス・アプリをSilverlight 2で作ることができないか、についてその可能性を考えました(※本稿では、アプリケーションを「アプリ」と略記します)。

Microsoft Silverlightの公式サイト

 なお、以降、「Silverlight」と記述したものは、「Silverlight 2」を指します(※本稿は「Silverlight 1」は対象としていません。Silverlight 1については「.NETを知らない人でも分かるSilverlight入門」をご参照ください)。

 Silverlightは、マイクロソフトの新しい技術で、RIA(Rich Interactive Application、つまり使い勝手の良い)なWebアプリを作ることができる技術です。ひと言で述べると、マイクロソフト版のFlashといえます。また、ビジネス・アプリという観点からはAdobe AIRFlexが最大のライバルといえるでしょう。

 本稿でのビジネス・アプリの定義は、企業のビジネスをサポートするために利用されるアプリです。例えば、在庫管理、受発注、勤怠管理、会計・経理システムなど。これまで、ビジネス・アプリは、どちらかというと最小限の機能を満たしていればよいとされ、そのユーザー・インターフェイスの使い勝手やデザインを良くする努力は置き去りにされてきたように思えます。Silverlightによるビジネス・アプリは、そのような点を改善でき、より使い勝手の良いビジネス・アプリを提供することが可能となります。

 ただし、Silverlightのバージョンは、執筆時点でまだベータ版(Silverlight 2 Beta 2)です。従って、今回はこれまでの記事のようにサンプル・コードの解説はしません。サンプルが正式版で動かなかったら残念ですからね。そこで本稿では、Silverlightでビジネス・アプリを開発について、わたしが簡単なサンプルを作り、その結果感じたことを述べることにしました。

 それではさっそく始めましょう。まずは、なぜSilverlightでビジネス・アプリを作るのか、について考えます。

なぜSilverlight 2でビジネス・アプリを作るのか

 それでは、なぜSilverlightでビジネス・アプリを作るのか、を考えます。多々あるビジネス・アプリの開発方法の中から、なぜSilverlightを選択するのか、選択する価値はどこにあるのか、を考えます。

2つの高いポテンシャル

 わたしはSilverlightによるビジネス・アプリ開発を選択する理由として、Silverlightには次の2つの高いポテンシャルがある、と考えています。

ユーザーの数

 第一のポテンシャルは、ユーザーの数です。Silverlightは、クロスプラットホームで動作します。そのため、Windowsフォーム・アプリのようなWindowsクライアントに限らず、Mac OSクライアントなど、より多数のユーザーが期待できます。

開発者の数

 第二のポテンシャルは、開発者の数です。まずASP.NETであれ、Windowsフォーム・アプリであれ、.NETの開発経験者は、Silverlightアプリの開発方法を容易に身に付けられます。それは、Silverlightでのアプリケーション開発は、.NET開発者が慣れ親しんできたイベント・ドリブン・モデルでの開発が行えるからです。

 また、Silverlight 2に含まれる「DLR(Dynamic Language Runtime)」*1がJavaScript、PHP、Ruby、Pythonなどの言語をサポートしていることを考えると、その開発者の数は途方もない数となり得ます。

*1 Silverlight 2には、標準の.NET Frameworkのサブセット(=機能縮小版)である「.NET Framework for Silverlight」が含まれており、.NET Frameworkの一部の「基本クラス・ライブラリ」、.NETの実行エンジンである「CoreCLR」(共通言語ランタイム。通称:mini-CLR)、そのCoreCLR上で動作してIronPythonやIronRubyなどの動的言語をサポートする「DLR」(動的言語ランタイム)などがサポートされています。そのDLRによって、Silverlight 2では、C#やVisual Basicから、JavaScript、PHP、Ruby、Pythonまで、さまざまなプログラミング言語を扱えるようになっています。

配布の容易さとRIA開発の容易さ

 別の理由として、Silverlightの配布の容易さRIA開発の容易さもある、と考えています。RIA開発の容易さとは、使い勝手の良いアプリをいかに簡単に作れるかということです。この2つの容易さを、Visual Studio 2008を利用したビジネス・アプリのほかの形態と比較して考えて行きます。

Visual Studio 2008によるビジネス・アプリの4つの形態

 現在、Visual Studio 2008を利用したビジネス・アプリの主な形態を挙げると、下記の4つになるでしょう。

Windowsフォーム・アプリ
WPFアプリ
ASP.NET Webアプリ
ASP.NET AJAXアプリ

 Windowsフォーム・アプリとWPFアプリは、クライアント・コンピュータ上で動作します。そのため、アプリが新しくなった場合は、ClickOnceなどの配布テクノロジを使って、アプリを更新する方法を用意する必要があり、この場合には配置がやや面倒です。またクライアント側に.NET Frameworkをインストールする必要があるなど、動作させるためのハードルが、ほかと比べてやや高いといえます。

 ASP.NET Webアプリは、その名のとおりWebアプリです。そのため、アプリの配置はとても簡単に行えます。また、クライアント側にはInternet Explorerなどのブラウザさえあればよいという利点があります。

 わたしの経験から述べると、ビジネス・アプリ開発では、昨今はその配布の便利さなどから、特にASP.NET Webアプリが普及してきたように思えます。また、新しい技術に理解のある開発プロジェクトでは、ASP.NET Webアプリに加え、より使いやすい機能を提供するためにASP.NET AJAXを採用している場合もあるでしょう。

4つの形態とSilverlightによる開発との比較

 さて、これら4つの形態のアプリとSilverlightアプリとの比較を、配布の容易さ、RIA開発の容易さの観点からまとめると、次の表のようになります。

アプリの形態 配布の容易さ RIA開発の容易さ
Silverlight
Windowsフォーム
×
WPF
×
ASP.NET Web
×
ASP.NET AJAX
4つの形態のアプリとSilverlightアプリとの比較

 表に示したとおり、Silverlightによる開発は、配布の容易さとRIA開発の容易さの2つを兼ね備えているといえるでしょう。

 配布の容易さとして、Silverlightでは.xapファイル(=クライアント側で利用する.DLLファイルをZIP圧縮してまとめたファイル)をWebサーバ上に置くだけで配布が可能です。また、利用するクライアントとしては、初回利用時にのみブラウザにSilverlightのプラグインをインストールする必要があるものの、以降はブラウザで簡単に利用できます。

 RIA開発の容易さについてですが、Silverlightでは、例えば、画面上の画像やボタンなどを拡大/縮小、回転させるなどのアニーメーションを簡単に設定できます。また、テキストボックスに入力されたキーの制御など、Webアプリでは実装するのがなかなか面倒な処理も、簡単に行えます。ほかにも、Webアプリでは実現が難しいユーザー・インターフェース(例えば、ブラウザ上のフォームにマウスで手書きの絵を描くなど)を提供できます。

 Silverlightは、WPFのサブセットなので、WPFで行えるすべての機能をサポートしているわけではありません。しかしながら、DataGridコントロールのように、ビジネス・アプリ役立つSilverlightにしか存在しない機能もあります。

Silverlightで作る価値がありそう

 以上から、Silverlightは、多数のユーザー、多数の開発者が期待でき、また、配布の容易さ、RIA開発の容易さの2つの良さを兼ね備えており、ビジネス・アプリの開発方法として検討する価値がありそうです。

 そこで、わたしは実際にSilverlightでサンプルのビジネス・アプリを作成し、その内容を評価することにしました。


 INDEX
  ジョイ・オブ・プログラミング:Silverlight 2
  ハッとしてグッと操作! 「Silverlight 2で業務アプリ」を考える
  1.なぜSilverlight 2でビジネス・アプリを作るのか
    2.Silverlight 2を活用したビジネス・アプリのサンプル
    3.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