2008年秋に登場するRIA(リッチ・インターネット・アプリケーション)基盤の新バージョン「Silverlight 2」では,アプリケーション開発にJavaScriptだけでなく,「C#」をはじめとする.NET言語や,Ruby,Pythonが利用できる。米Microsoftのエヴァンジェリストで「Silverlight 2」(日本語版は8月末発売)を著したLaurence Moroney氏は,「C#プログラマにとって大きなチャンスだ」と語る(聞き手は中田 敦=ITpro編集)。



Silverlight 2の開発状況は?

写真●米Microsoft Laurence Moroney氏
写真●米Microsoft Laurence Moroney氏
[画像のクリックで拡大表示]
 2008年6月にリリースした「Silverlight 2」の「Beta 2」には,すべての新機能が実装されている。今は製品版のリリースに向けて,ストレス・テストやセキュリティ・チェック,パフォーマンス・チューニングを行っている段階だ。2008年8月に「CTP(Community Technology Preview)」をリリースする予定で,これが最後の評価版になる。最後のCTPリリースから数週間後,つまり2008年の秋には,製品版がリリースされる予定だ。

Silverlight 2の目玉機能の1つであるDRM(デジタル著作権管理)機能の開発状況は?

 Silverlight 2は,2種類のDRMに対応する。1つは新規に開発したDRMで,携帯デバイスなどにも対応した「PlayReady DRM」。もう1つは従来から広く使われている「Windows Media DRM」だ。

 米国では北京オリンピックのHD(高精細)動画中継が,Silverlight 2を使って実施される。Silverlight 2 Beta 2で,PlayReady DRMに対応した。北京オリンピックの直前には,細かいバグを修正するGeneral Developer Releaseが提供される。これは,Silverlight 2 Beta 2のユーザーに対して自動更新で配布される追加コンポーネントだ。

 また,従来からあるWindows Media DRMには,秋にリリースされるSilverlight 2の製品版で対応する。MicrosoftのDRM技術は今後はPlayReady DRMが主流になるため,Silverlight 2におけるWindows DRMへの対応は「後方互換性の確保」という位置づけになる。

アプリケーション開発者にとって,Silverlight 2の最大のメリットは何になる?

 メリットは大きく分けて2つある。

 1つは,パフォーマンスが大幅に改善されていることだ。C#などの.NET言語で開発されたSilverlight 2のプログラムは,JavaScriptで開発されたプログラムと比べて非常に高速だ。われわれが社内で行ったチェスのアルゴリズム・ベンチマークでは,C#で開発したプログラムの方が,JavaScriptで開発したプログラムに比べて2000~3000倍も高速だった。

 もう1つのメリットは,Ajaxスタイルのアプリケーション開発に比べて,開発の自由度が大幅に上がることだ。Ajaxを使ったアプリケーション開発では,ロジックやユーザー・インターフェースを各ブラウザ向けにそれぞれ開発する必要がある。それに対してSilverlight 2では,同一のコードがあらゆるプラットフォーム,Webブラウザ上で同じように動作する。

 現在,Ajaxスタイルのアプリケーションを提供しているユーザー企業は,アプリケーションの更新に大きな問題を抱えている。JavaScriptで記述されたソース・コードをチェックして,コードを変更し,各ブラウザ向けにHTMLを確認しながらテストをする必要があるからだ。

 Silverlight 2では,プログラムの開発に「Visual Studio 2008」という強力な開発ツールを使用可能であり,単一のアプリケーションがあらゆるブラウザ向けのSilverlight 2上で同じように動作する。ユーザー企業は,アプリケーションの迅速な更新が可能になるのだ。

Visual Studio 2008のSilverlight 2対応のスケジュールはどのようになる?

 Silverlight 2のリリースと同時に,Visual Studio 2008向けの対応モジュールを提供する。テンプレートやヘルプ・ファイルもSilverlight 2に対応したもの更新される。日本語版も同時にリリースされる予定だ。

 Silverlight 2がC#に対応することは,C#プログラマにとって大きなチャンスだ。なぜならC#は,データベース・アプリケーションやASP.NETアプリケーションの開発だけでなく,RIAのようなブラウザ上のアプリケーションの開発にも使用できるようになるからだ。つまりC#プログラマは,C#という単一のスキル・セットによって,エンタープライズ・アプリケーションからRIAまでをカバーできる。

開発者にとっては,Silverlight 2用のプログラム部品(コントロール)の充実も気になるところだ。Microsoftは2007年末に,(Silverlightのスーパー・セットである)Windows Presentation Foundation(WPF)向けにプログラム部品を提供する「Acropolisプロジェクト」(開発コード名)をキャンセルし,WPFとSilverlight向けにプログラム部品を提供するプロジェクトを新規に開始したと発表している。こちらの現状について教えてほしい。

 プログラム部品をどのように提供するのかは,非常に難しい問題だ。開発者にとっては,プログラム部品は多い方がありがたい。しかし,ランタイムがプログラム部品を大量に内蔵するようになると,Silverlight自身のサイズが肥大化してしまう。

 折衷策として,今後追加するプログラム部品に関しては,ランタイムに内蔵させるだけでなく,コミュニティ・サイト「Codeplex」などでオープン・ソースとして配布することも考えている。

Webアプリケーションに関しては最近,「GoogleGear」のようなオフライン機能が話題になっている。GoogleGearは,Webブラウザにローカル・データベース・エンジンを追加することで,Ajaxアプリケーションをオフラインでも利用可能にする技術だ。Silverlightにオフライン機能が搭載する予定はあるか?

 Silverlight 2に関しては,オフライン機能は存在しない。Silverlight次期バージョンの計画はまだ明らかにできないが,オフライン機能は重要な検討課題になるだろう。

 しかし,オフラインでアプリケーションを使用させたいのであれば,Silverlightのスーパー・セットであるWPFを使用するという手がある。SilverlightとWPFは同一のスキルで開発が可能だ。

 ただし,Silverlight 2のランタイムが5Mバイト弱と軽量であるのに対して,WPFのランタイムである「.NET Framework 3.5」は65Mバイトとあまりに巨大だ。ランタイムの大きさが,WPFにとって大きな問題になっている。

 そこでMicrosoftでは,夏の終わりにリリースする.NET Framework 3.5 Service Pack 1(SP1)で,.NET Frameworkのコア部分(.NET Framework 2.0相当)とWPFだけを切り出して配布できる「Client Profile」という仕組みを追加した。WPFアプリケーションを使いたいユーザーは,26.5Mバイトとサイズが小さいClient Profileだけをダウンロードすればよくなる。

.NET Frameworkが内蔵されていないWindows XPのユーザーでも,.NET Framework 3.5ではなくClient Profileをインストールするだけで,WPFアプリケーションが利用できるということか?

 そうだ。.NET Framework 3.5には,コア部分やWPF以外に,Windows Communication Foundation(WCF)やWindows Workflow Foundation,ASP.NETといった様々なコンポーネントが含まれている。しかし,クライアント・パソコンには,Windows Workflow FoundationやASP.NETは不要だろう。

■変更履歴
当初の記事で「北京オリンピックの直前にリリースされるSilverlightの『General Developer Release』によって,Silverlight 2はPlayReady DRMに対応する」となっていたのは誤りでした。Silverlight 2はBeta 2でPlayReady DRMに対応しています。お詫びして訂正します。本文は修正済みです。 [2008/07/04 13:00]