なぜMS系でクリエイティブか?
MicrosoftのRIA戦略
Webかどうかはひとまず置いておいて、プレゼンテーションレイヤのアプリケーション開発を、制作会社あるいは開発者のフィールドで分けて考えるとき、1つはFlashやJavaScript、CSS、そしてHTMLなどに代表されるWebクリエイティブで実現する領域があります。
また、それとは別として、WindowsならC#やVBなどの言語に代表されるデスクトップアプリケーションで実現する領域があります。
この2つは、それぞれ領域に応じた専門知識と手法が必要であり、これまではなかなか両方に手を出すということが難しいのが実情でした。
そんな中、MicrosoftはSilverlightというテクノロジーを投入してきました。これは、今までデスクトップアプリケーション開発のプラットフォームとして提供してきた.NET Frameworkのサブセットで構成されるテクノロジーであり、いわば、WebクリエイティブをWindows用デスクトップアプリケーションとほぼ同じ手法で開発できるというものです。
Silverlightを使うことで、これまでデスクトップアプリケーションなど比較的固めのフィールドを専業としてきた開発者やSIerも、Webブラウザ内で動作するRIAアプリケーションを同じ手法で開発できるようになるのです。結果として、SIerの得意とするエンタープライズ領域や大規模なシステム開発において、プレゼンテーションレイヤをWebブラウザベースとしつつも、デスクトップアプリケーションと遜色(そんしょく)のないリッチさを実現することが可能となります。
.NET Frameworkの恩恵をWebに
それでは、「Windows用デスクトップアプリケーションと同じ手法」とは、具体的にどのようなことを指すのでしょうか。それはつまり、.NET Framework用アプリケーションの開発手法ということです。
.NET Frameworkとは、アプリケーション開発のためのフレームワークであり、実体はクラスライブラリの集合体です。もともと、さまざまなWindowsのバージョンが存在する中で、各OS用にそれぞれ専用のコードを書くのではなく、.NET Frameworkさえインストールされていれば、環境にかかわらず同じように動作させることのできるプラットフォームとして開発されました。
実行には.NET Frameworkランタイムが必要になりますが、そのランタイムがアプリケーション実行時に、アプリケーション内のコードをネイティブコードに変換してくれます。
イメージ的には、JREがインストールされていれば同じように動作するJavaバーチャルマシンに近いのですが、大きな違いとして、.NET Frameworkは特定の言語に依存しないという特長があります。これは、CLR(Common Language Runtime)という機能により実現されます。
そして実は、Silverlightプラグインとは、この.NET Frameworkの一部をWebブラウザ内で実行できるようにしたものです。これによりSilverlightアプリケーションは、クロスプラットフォーム、クロスブラウザでありながら、C#、VB、JavaScript、RubyやPythonなどの言語でも開発が可能となっています。
結果として、.NET Framework対応のアプリケーションを制作してきた開発者は、そのコーディング手法とクラスライブラリの知識を活用しながら、Webブラウザで動作するアプリケーションを開発できるのです。