(主張×反論)<sup>2<sup>― 相対する視点から真実を見極める ―
 
インフラジスティックス・ジャパン株式会社
デベロッパー・サポート・エンジニア
山田達也 (やまだ たつや) 氏

 

Web アプリケーション推進者の主張

← 前のページへ 01 02 03 04 次のページへ →
  •  いまや情報システム コストの多くが、システムの運用、管理に費やされていることは周知のとおりだ。ひとたびコンピューターにソフトウェアをインストールすると、以後ソフトウェアのメンテナンスにコストがかかり続ける。伝統と実績を誇るクライアント アプリケーションだが、この根本問題に企業が頭を抱えている。
  •  アプリケーションもデータも Web サーバーに配置し、クライアント側は Web ブラウザーさえあればアクセスできる Web アプリケーションが、業務アプリケーション領域においても急速に広がっている。Web アプリケーションでは、実質的にすべてがサーバー側に集約されているので、ソフトウェアの更新などはサーバー側だけで完結できる。加えて SaaS の台頭など、ここで Web アプリケーションの普及について改めて説明するまでもないだろう。
  •  さらにマイクロソフトは、Web ブラウザーに実行環境をアドインとして組み込むことで、プログラム コードをクライアント側で実行可能にした Silverlight を開発し、現在は最新の Silverlight 2 を提供している。この Silverlight 2 では、開発言語として Visual Basic や C# といった .NET 開発言語を利用でき、プログラミング インターフェイスとしても .NET Framework のサブセットを使える。高機能な開発言語、高機能なプログラミング インターフェイスを利用して、リッチなアプリケーション開発が可能であると同時に、実行はサーバーからコードが毎回ダウンロードされるので、バージョン管理の問題がない。HTML に制約されるために、どうしても表現力や入力生産性に弱点がある Web アプリケーションだが、Silverlight なら、その欠点を補いながら、サーバー側でバージョン管理を完結できるという双方の利点に浴せる。
  •  今回のテーマは Web アプリケーションだが、読者の関心も Silverlight にあると思われるので、ここでは Silverlight 2 を中心に話をしたい。
  • ■ Silverlight は業務アプリケーション開発で真価を発揮する
  •  まずは動画表示用途で利用が広がったことから、Silverlight はコンシューマ向けの、動画表示用のテクノロジーだと間違って認識されているふしがある。実際には、高度なプログラミング言語とプログラミング インターフェイスを備えており、これらを使ったアプリケーション開発が可能だ。
  •  インフラジスティックスは現在、Silverlight で業務アプリケーションを開発するためのコンポーネント集を開発している。弊社 Web サイトから、実際に Silverlight 2 で開発されたサンプル アプリケーションを実行してみることができる (サイトはこちら) 。



  • Silverlight 対応のデータグリッド コントロール
    業務アプリケーション向けの Silverlight 対応コンポーネント集を開発中だ。


    NetAdvantage for Silverlight で提供されるコンポーネントの使用例
    チャート コンポーネントを使った例。

  •  こうしたサンプル アプリケーションを見れば分かるが、Silverlight を利用して、ASP.NET や ASP.NET AJAX では実現不可能な (困難な) リッチな業務アプリケーションを開発できる。
  •  私たちはこれまで、Visual Basic 6 (VB6) ベースのコンポーネントを販売してきており、現時点でもなお、VB6 ベースのアプリケーション開発を行っている開発者が少なくないことを知っている。これまでも VB.NET や ASP.NET に移行できるチャンスがあったのに、これまで移行しなかったのは、新たなスキル獲得などの投資に見合うリターンを実感できなかったからではないか。この点 Silverlight は、従来のクライアント アプリケーションに勝るとも劣らない表現力、入力生産性を備えながら、クライアント アプリケーションの問題であるアプリケーション配布の問題を回避できる。
  • ■ Web ブラウザーさえあれば使える
  •  すでに述べているとおり、Web アプリケーションの強みは、クライアント側は Web ブラウザーさえあればよいので、幅広いクライアント環境から手軽にアクセスできることだ。クライアント アプリケーションのように、特定のアプリケーションをインストールするには、クライアント OS やバージョンなどをある程度統一する必要があるが、Web アプリケーションならこれはあまり問題にならない。
  •  Web アプリケーションは、Web の技術に制約されるため、表現力や入力生産性の点でクライアント アプリケーションに劣るとされてきたが、AJAX の開発によってこの問題は大きく改善された。AJAX を活用した Google マップや GMail などを使ってみれば、これは簡単に体感できるだろう。こうした高度なアプリケーションが、ブラウザーさえあれば使える
  • クライアント アプリケーション推進者の反論
    池原氏の反論:実際のところ、AJAX で使える機能は、ブラウザーによってかなり違いがある。AJAX プログラマは、ブラウザーごとの違いに日々格闘しているのが現実だ。
  •  ただし AJAX プログラミングでは、ブラウザーごとの配慮が必要で、JavaScript プログラミングが煩雑だった。これに対し Silverlight は、ブラウザー依存の少ない、統一された実行環境を提供してくれる。また Silverlight を使えば、AJAX からさらに一段とアプリケーションの表現力や自由度が増す。AJAX と同様に、Windows だけでなく、Mac OS、Linux ユーザーでも、Silverlight アプリケーションを実行することができる
  • クライアント アプリケーション推進者の反論
    池原氏の反論:マイクロソフトは「Windows、Mac OS X、Linux 上の主要なすべてのブラウザーをサポートする」と説明しているが、いまのところ、例えば Google Chrome は正式なサポート対象に入っていない(まだ Chrome はベータ版なので、今後対応される可能性はあるが)。また、OS、ブラウザーともにライフサイクルがあるが、ブラウザーの方がサイクルが短いと感じる。Silverlight 2 が OS やブラウザーの差異を吸収するとしても、Silverlight 2 アプリケーションは、次々に発表されるブラウザーの新バージョンに対し、動作確認が必要であり、場合によっては修正対応が必要なのではないか。これは保守コストがかさむ要因になりうると考える。
  •  個人的な意見だが、Silverlight は、VB で爆発的に普及した、クライアント サーバー型業務アプリケーションの将来形としての土台となると考えている。まだ VB 6 を使っている開発者はもちろん、本当は Web アプリケーションはあまり得意でないが、必要に迫られて ASP.NET ベースの Web アプリケーションを開発しているという開発者も、Silverlight に移行してくるのではないか。
  • ■ Silverlight は分かりやすい
  •  マイクロソフトはストレートには言わないが、Silverlight は実質的に Adobe Flash テクノロジーのマイクロソフト版だと考えてよいだろう。すでに Flash は広く普及していることから、どういうもので何ができるのかがはっきりしている。それと同じことが、いやそれ以上のことが Silverlight ならできると考えれば、ユーザーにとっても、プログラマにとっても非常に分かりやすい。これは、WPF と比較して圧倒的に有利な点だと思う。
  •  Windows 開発者の中には、Flash 開発にチャレンジしようと考えたものの、実現しなかったプログラマも多いのではないか。プログラミング言語 (ActionScript) にせよ、開発環境にせよ、Windows 開発者から見ると、Flash 開発のハードルは高かったと思う。こうした開発者は、Silverlight にどっと流れてくるのではないか。
  •  業務アプリケーション領域で Silverlight の利用が進むことは間違いないが、いきなりすべてを Silverlight に移行する必要はない。まずは ASP.NET ベースの Web アプリケーションとして枠組みを作り、必要な部分から Silverlight 化を進めるのが比較的容易だろう。従来の Windows フォーム アプリケーションがあったとして、これを全面的に WPF に置き換えることに比べれば、こちらの方がスムースだと思う。こうした取り組みを通して、新しい XAML ベースのアプリケーション開発に慣れるのがよい。この後、必要なら全面的な Silverlight 移行に進めばよいだろう。Silverlight も WPF も、.NET Framework など土台は共通なので、このレベルになれば、WPF への移行も容易になっているはずだ。入り口としては、WPF よりも Silverlight の方が適しているだろう
  • クライアント アプリケーション推進者の反論
    池原氏の反論:WPF は登場してからすでに時間がたっており、技術情報などがかなり充実している。今後拡充されるものと思うが、Silverlight のそれはまだまだ不十分だ。Silverlight の活用には、相応の試行錯誤が必要になるだろう。
  • ■高機能なフレームワークが使える Silverlight
  •  Silverlight 2 には、WPF UI フレームワークや、.NET Framework のベース クラス ライブラリのサブセット版が提供される。フル機能ではないので、WPF クライアント アプリケーションと同じというわけにはいかないが、強力なグラフィック機能、各種の標準コントロール、アニメーション機能、テンプレート機能など、主要な機能の多くがサポートされている。これらの高度なプログラミング インターフェイスを、VB.NET や C# だけでなく、IronPython、IronRuby などの言語で利用可能だ。かなり高度なアプリケーションも、Silverlight で開発可能である。
  • クライアント アプリケーション推進者の反論
    池原氏の反論:Silverlight 2 で利用できる WPF や .NET Framework の機能は、あくまでサブセットである。開発者視点で両者を比較すると、重要な機能のいくつか、例えばコマンド パターンやイベント、バインディングなどで、一部の機能が Silverlight 2 でサポートされていないか、制限がある。従って WPF で開発した XAML ベースのアプリケーションをそのまま Silverlight 2 に移行できるという保証はない。具体的にいえば、Silverlight 2 では DynamicResource がサポートされない。これは実行時にリソース キーが検索されるリソース参照で、Silverlight 2 では、読み込み時のみリソースが参照される StaticeResource しか使えない。これ以外にも、スタイルに関しては、ほかのスタイルから新しいスタイルを作成可能にする BasedOn スタイルがサポートされない、TargetType 属性の指定が必須(WPF では暗黙のスタイルを指定可能)など、Silverlight 2 と WPF には違いがある。詳細については、マイクロソフトの解説ページにまとめられている。
← 前のページへ 01 02 03 04 次のページへ →