World Wide Web の閲覧は、1990 年代初頭から大きく変わりました。当時、ほとんどのWeb ページは、静的なテキスト、いくつかの画像、および時折ループする (そしてしばしばイライラする) MIDIサウンド ファイルで構成されていました。しかし、Web は長年にわたってより複雑になってきました。現在、ビデオ、アニメーション、サウンド、インタラクティブな機能を組み込んだ Web サイトにアクセスできます。最先端の Web サイトでは、まるで映画の中に引き込まれたような気分になります。しかし、これらの新機能を構築、表示、操作するには、プログラマーは新しいアプリケーションを作成する必要がありました。それらのアプリケーションの 1 つは、Microsoft のプログラムSilverlightです。
Silverlight は簡単には説明できません。多くの点で、Adobe Flash に似ています。 Silverlight では、開発者とユーザーはクライアントをダウンロードする必要があります。このダウンロードがなければ、Web ブラウザは Silverlight コンテンツを処理できません。これにより、Web 開発者はストリーミング ビデオ、オーディオ、アニメーションを Web ページに組み込むことができます。プログラマは、Silverlight テクノロジを使用して、複雑なユーザー対話型 Web アプリケーションを作成できます。 World Wide Web では、これらのアプリケーションには、リッチ インターネット アプリケーション( RIA ) という特別な名前が付いています。
RIA がより高度になるにつれて、デスクトップ アプリケーション (ハード ドライブ上に存在するプログラム) と Web ベースのプログラムとの違いが薄れ始めています。私たちがインターネットを使用してデータ処理とストレージのニーズを提供するにつれて、Web ブラウザは最終的には本格的なWeb ベースのオペレーティング システムに進化する可能性があります。このようにインターネットを活用することはクラウド コンピューティングと呼ばれます。プログラムとデータは、個々のユーザーのマシンではなく、インターネットの「クラウド」に存在します。
Silverlight は、プログラマーがより優れた RIA を作成できるように設計された数十のツールのうちの 1 つにすぎません。 Microsoft のエンジニアは、他の Microsoft プロジェクトの拡張として Silverlight を構築しましたが、アプリケーション自体は独立しています。 Microsoft は、Silverlight をクロスプラットフォーム、クロスブラウザーのテクノロジとして推進しています。つまり、Silverlight アプリケーションは、PC または Mac コンピュータ上で、 Internet Explorer 、 Firefox 、Safari などのブラウザ内で動作する必要があります。 Silverlight は間もなく Linux コンピュータでも動作するようになるでしょう。Mono と呼ばれるオープンソース プロジェクトがLinuxバージョンを作成する取り組みの先頭に立っています。
Silverlight は新しいテクノロジーですが、トラブルや論争が起こるのは珍しくありません。開発者やユーザーの中には、動作するためにダウンロード可能なプラグインを必要とする別の Web テクノロジに興味を持たない人もいます。また、2008 年の北京オリンピック期間中の NBC との提携は、Microsoft が期待していたほどの話題を生まなかったかもしれません。
しかし、そのすべてに入る前に、まず Silverlight の内部を詳しく見てみましょう。
Silverlight ベータ版
Silverlight について注意が必要な点の 1 つは、この記事の執筆時点では、Silverlight 1 と Silverlight 2 Beta の 2 つのバージョンが存在することです。 Silverlight 1 は、 JavaScriptプログラミング言語で記述されたアプリケーションをサポートします。 Silverlight 2 のベータ版では、 C# (「シー シャープ」と発音) やVisual Basicなどの追加のプログラミング言語がサポートされています。 Silverlight のどちらのバージョンも.NET Framework内で動作します。
では、.NET とは何でしょうか?これはMicrosoftの別の製品です。 .NET Framework はプログラミング モデルです。プログラマは、このモデル内でアプリケーション、特にeXtensible Markup Language ( XML ) に依存する Web アプリケーションを構築できます。
.NET Framework の 2 つの主要コンポーネントは、共通言語ランタイムとクラス ライブラリです。共通言語ランタイムは管理者のように機能します。アプリケーションを監視し、アプリケーションが適切に実行するために必要なリソース (メモリや処理能力など) を割り当てます。クラス ライブラリには、プログラマがアプリケーションを作成する際に利用できる再利用可能なソフトウェアオブジェクトがいくつか含まれています。ソフトウェア オブジェクトには、状態と動作という2 つの特性があります。オブジェクトの状態とは、オブジェクトが取り得るさまざまな状態を指します。たとえば、プログラムには「実行中」、「一時停止」、「停止」の状態が存在する可能性があります (ただし、すべてが同時に実行されるわけではありません)。動作とは、オブジェクトが実行できることを指します。この例では、これには「開始」、「一時停止」、「終了」が含まれます。
そして、それは Silverlight を囲むフレームワークにすぎません。 Microsoft は、Silverlight 内にWindows Presentation Foundation ( WPF ) テクノロジとeXtensible Application Markup Language ( XAML ) のサポートを組み込みます。アプリケーション開発者は、WPF と XAML の両方を使用して Web アプリケーションを作成できます。 WPF と XAML はどちらも .NET Framework 内でシームレスに動作します。 Microsoft が WPF を開発したのは、ハイパーテキスト マークアップ言語( HTML ) には制限があるためです。Web ブラウザでは、HTML ではサポートできないほど複雑な関数を実行できます。
WPF は、ベクトルベースのレンダリング エンジンを使用して、アプリケーション用のグラフィックを生成します。 2D および 3D グラフィックスをサポートでき、開発者は .NET 内で作業してアプリケーションを強化する手段を提供します。 XAML の主な目的は、開発者にアプリケーションの外観を調整する手段を提供することです。 WPF と XAML は一緒に、Silverlight アプリケーションの外観と動作を定義します。
WPF と XAML はアプリケーションの外観と動作を決定しますが、プログラマーは他のコンピューター言語を使用してアプリケーション自体を構築します。 Silverlight 1 はJavaScriptのみをサポートしていますが、Silverlight 2 のベータ版はいくつかの動的言語をサポートしています。プログラマーは、.NET Framework 内で作業しながらこれらの言語を使用してアプリケーションを構築し、WPF および XAML を使用してアプリケーションを Web ブラウジング エクスペリエンスに統合します。すべての Silverlight アプリケーションは Web ブラウザ内で実行されます。
Silverlight プラットフォームのアーキテクチャを見て、これらの要素がすべてどのように連携してプログラマーに RIA の構築に必要なプラットフォームを提供するかを見てみましょう。
Silverlight 開発
すべてのソフトウェアと同様、Silverlight プラットフォームには、アーキテクチャと呼ばれる特定の機能と機能の配置があります。プログラムのアーキテクチャから、プログラムがどのように動作するかについて多くのことがわかります。論理的な方法でタスクをグループ化し、プログラムのさまざまな部分がどのように連携してサービス全体を提供するかを示します。 Microsoft の Silverlight での目標は、次世代の Web ベース アプリケーション向けの強力かつシンプルなプラットフォームを作成することです。
Microsoft は、 Silverlight プラットフォームのアーキテクチャを、追加のインストーラーと更新要素を備えた 2 つの主要なコンポーネントに分割しています。 2 つの主要なコンポーネントには、コア プレゼンテーション フレームワークと Silverlight 用の .NET フレームワークが含まれます。それぞれを順番に見てみましょう。
コア プレゼンテーション フレームワークには次のものが含まれます。
- ユーザー インターフェイス( UI ) レンダリング エンジン。アプリケーション内のすべてのグラフィックス、アニメーション、テキストを生成します。
- キーボード、マウス、デジタル タブレットなどのデバイスからのユーザー入力を処理する入力インターフェイス
- 複数のオーディオおよびビデオ ファイル形式をサポートするメディア エンジン
- 開発者がアプリケーション内のメディアの制御を維持できるようにするデジタル著作権管理要素
- カスタマイズ可能なアプリケーション コントロールのサポート
- 動的 UI レイアウトのサポート — この機能により、開発者はアプリケーションの UI の外観をリアルタイムで変更できます。
- データ バインディングのサポート — アプリケーション内の UI 要素をデータ オブジェクトにリンクします。
- XAML 用のパーサー
.NET Framework には次の機能があります。
- 統合言語クエリ( LINQ ) 機能のサポート — LINQ を使用すると、開発者はさまざまなソースからのデータを統合できます。
- 暗号化などの基本的なプログラミング機能をサポートする基本クラス ライブラリ
- アプリケーションがリモート データやサービスに簡単にアクセスできるように設計されたWindow Communication Foundation ( WCF ) と呼ばれる一連の機能
- Windows プレゼンテーション財団 (WPF)
- ダイナミック言語ランタイム( DLR )、さまざまなプログラミング言語で記述されたアプリケーションをサポートする要素
- 共通言語ランタイム( CLR )、メモリ管理およびその他の重要な機能を処理するコンポーネント
プレゼンテーション コアと .NET Framework は、主に XAML を通じて相互に通信します。ある意味、XAML は 2 つのコンポーネント間の橋渡しとして機能します。インストールとアップデーターの要素は、一目瞭然です。ユーザーがアプリケーションの初期インストールをできるだけスムーズに行えるようにすることを目的としています。また、アプリケーションを自動更新するためのフレームワークも提供します。
さらに、Silverlight には、開発者が RIA を作成するのに役立つ機能が他にもいくつかあります。これらの機能の多くは、データ セキュリティとアプリケーション管理に重点を置いています。いくつか例を挙げると、ファイル管理機能、分離ストレージ機能、XML ライブラリなどがあります。
次に、Silverlight 開発者が構築できるアプリケーションの種類を見ていきます。
Silverlight アプリケーション
Silverlight のアプリケーションはほぼ無限です。 Silverlight のツールを使用すると、開発者は実用的なデバイスからやりがいのあるビデオ ゲームに至るまで、さまざまな Web ベースのプログラムを作成できます。 Silverlight はまだ比較的新しいプログラミング プラットフォームですが、Web 上ではすでに数十のアプリケーションが利用可能です。
開発者が Silverlight を使用してストリーミング メディア プレーヤーを作成しているのは驚くべきことではありません。メディア プレーヤーは、Flash メディア プレーヤー (YouTube などの Web サイトで使用される種類のアプリケーション) に似ています。これらのプログラムは、インターネットからユーザーのブラウザにビデオと音楽をストリーミングします。 Silverlight を使用すると、開発者は特定のコンテンツを提供するテーマ別ビデオ プレーヤーを作成できます。たとえば、Futbol Mexicano Silverlight アプリケーションは、メキシコのサッカーの試合のビデオをユーザーにストリーミングします。ただし、Silverlight ではビデオを再生する以上のことができます。
Silverlight アプリケーションは、ヒーロー バーなど、比較的単純なものにすることができます。ヒーロー バーは、宣伝文や Web サイトの奥深くにあるコンテンツへのリンクを特徴とする Web バナーです。開発者は Silverlight を使用して、 RSS フィードから情報やリンクを取得できるヒーロー バーを作成できます。ヒーロー バーは、Web マスターがサイトに新しいコンテンツを追加すると自動的に更新されます。
プログラマは、Silverlight を使用して他の Web サービスと対話することもできます。 Twitterlight は、 Twitterマイクロブログ サービスを利用する Silverlight アプリケーションです。 Twitterlight を使用すると、ユーザーは個々の Twitter フィードにアクセスし、新しいメッセージを投稿できます。
TeamLive オンライン生産性向上ソフトウェアアプリケーションを使用すると、Silverlight ユーザーはプロジェクトで共同作業できます。 TeamLive を使用すると、ユーザーはアプリケーションや Web サイトのスクリーンショットを撮り、他のユーザーと共有できるようになります。これにより、異なる場所にいるチームメンバー間のコラボレーションが容易になります。チームはリアルタイムで協力して問題を修正したり、設計を合理化したりできます。
Silverlight で実行されるゲームは、単純なものから没入型のアドベンチャーまで多岐にわたります。たとえば、Silverlight 形式の Hangman のような従来のゲームを見つけることができますが、宇宙をテーマにしたアドベンチャー ゲームである Zero Gravity のようなアーケード スタイルのゲームも見つけることができます。 Flash と同様、Silverlight は、ユーザーが Web ブラウザを通じてアクセスできる堅牢なゲーム エクスペリエンスを作成するために必要なリソースを開発者に提供します。
これらのアプリケーションは氷山の一角にすぎません。 Web がより洗練され、人々がより多くの帯域幅にアクセスできるようになると、ユーザーはブラウジング エクスペリエンスにさらに多くのことを求めるようになります。ニュース、エンターテイメント、生産性アプリケーションをインターネットに利用する人が増えています。開発者は消費者の需要に応えるために、Silverlight などのツールを使用する必要があります。
Silverlight は、より伝統的なメディアとのいくつかの戦略的パートナーシップを通じて、すでに大きな話題を呼んでいます。次のセクションでこれらの関係を詳しく見ていきます。
シルバーライトビデオ
ビル・ゲイツは、2008 年のコンシューマー エレクトロニクス ショーケース (CES) の主要基調講演者でした。このスピーチは、マイクロソフト会長としての彼の最後の CES プレゼンテーションとなった。その夜、ゲイツ氏はマイクロソフトの多くの新しいプロジェクト、製品、サービスを発表した。その中には、オリンピックを米国内でオンライン中継するためのNBCとの提携も含まれていた。
NBCはすでに米国でオリンピックを放送するテレビ放映権を取得していた。従来のテレビ放送に加えて、NBC はマイクロソフトと協力して、Web サイトでオリンピック中継をオンラインで提供しました。訪問者はビデオを見るために Silverlight をダウンロードしてコンピュータにインストールする必要がありました。一部の技術ジャーナリストはこの決定に疑問を呈した。Silverlight は強力なプラットフォームであるが、市場では Adobe Flash の方がはるかに大きな存在感を持っている。ほとんどの PC にはすでに Flash が搭載されており、Silverlight をダウンロードした人は比較的少数でした。一部のジャーナリストには、NBC が危険な実験を行っているように見えました。
ペアリングは成功しましたか?それは誰が物語を語るかによって決まります。ニューヨーク タイムズの記事によると、NBC のオリンピック Web サイトはオリンピック期間中、視聴者に 7,200 万以上のビデオ ストリームを提供しました。一部のブログでは、広告主がNBCのオンラインパフォーマンスに満足していないという噂も報告されている。
おそらく NBC がストリーミング ビデオプラットフォームとして Adobe Flash を選択していたら、より多くのオンライン視聴者がいたかもしれません。あるいは、NBC がイベントのオンライン放送を制限していなければ、もっと多くの人がウェブで試合を視聴したかもしれません。しかし、この実験は残念だという人もいたとしても、Microsoft は何百万もの人々が Silverlight をダウンロードしたことを知っています。 Microsoft の本では、それは勝利とみなされます。
マイクロソフトは米国の他の大手企業と提携を結んでいる。 2007 年後半、メジャー リーグ ベースボールのストリーミング ビデオ プレーヤーは Silverlight に切り替わりました。 CBS は、ユーザー生成コンテンツ用のインタラクティブな Web プラットフォームを作成したときに Silverlight を選択しました。また、全米バスケットボール協会もオンライン メディア プレーヤーとして Silverlight を選択しました。
Silverlight は次の大きなインターネット標準になるでしょうか?それを語るにはまだ時期尚早だ。 Adobe Flash よりも堅牢であると主張する人もいるかもしれませんが、市場では Flash の方がはるかに深く浸透しています。最終的には、どのテクノロジーがトップになろうとも、ユーザーが望むもの、つまり没入型の Web ブラウジング エクスペリエンスを提供することになります。
Silverlight と関連トピックの詳細については、次のページにあるリンクに注目してください。
NBC は、Web 上でサンデー ナイト フットボールのビデオ ストリームを提供するために Silverlight を使用せず、代わりに Adobe Flash を使用する予定です。しかし、NBC が Microsoft を無視しているとは思わないでください。この場合、ナショナル フットボール リーグは Flash を採用する決定を下しました 。