ワールドワイドウェブの閲覧は、1990年代初頭から大きく変化しました。当時、ほとんどのWebページは、静的なテキスト、いくつかの画像、および時折ループする(そしてしばしばイライラする)MIDIサウンドファイルで構成されていました。しかし、Webは何年にもわたってより複雑になっています。今日では、ビデオ、アニメーション、サウンド、およびインタラクティブ機能を組み込んだWebサイトにアクセスできます。最先端のWebサイトでは、まるで映画に引き込まれるようなものです。しかし、これらの新機能を構築、表示、および操作するために、プログラマーは新しいアプリケーションを作成する必要がありました。それらのアプリケーションの1つは、MicrosoftのプログラムSilverlightです。
Silverlightは簡単な説明に逆らいます。多くの点で、AdobeFlashに似ています。 Silverlightでは、開発者とユーザーがクライアントをダウンロードする必要があります。Webブラウザーは、このダウンロードなしではSilverlightコンテンツを処理できません。これにより、Web開発者は、ストリーミングビデオ、オーディオ、およびアニメーションをWebページに組み込むことができます。プログラマーは、Silverlightテクノロジを使用して、複雑でユーザーと対話可能なWebアプリケーションを作成できます。ワールドワイドウェブでは、これらのアプリケーションには特別な名前があります:リッチインターネットアプリケーション(RIA)。
RIAがより洗練されるにつれて、デスクトップアプリケーション(ハードドライブ上に存在するプログラム)とWebベースのプログラムの違いは薄れ始めます。インターネットを使用してデータ処理とストレージのニーズを提供するにつれて、Webブラウザは最終的に本格的なWebベースのオペレーティングシステムに進化する可能性があります。このようにインターネットを活用することをクラウドコンピューティングと呼びます。プログラムとデータは、個々のユーザーのマシンではなく、インターネットの「クラウド」に存在します。
Silverlightは、プログラマーがより優れたRIAを作成できるように設計された数十のツールの1つにすぎません。 Microsoftのエンジニアは、他のMicrosoftプロジェクトの拡張としてSilverlightを構築しましたが、アプリケーション自体は独自のものです。マイクロソフトは、Silverlightをクロスプラットフォームのクロスブラウザーテクノロジとして推進しています。つまり、Silverlightアプリケーションは、PCまたはMacコンピューターのいずれかで、Internet Explorer、Firefox、Safariなどのブラウザー内で動作する必要があります。 SilverlightはまもなくLinuxコンピューターでも動作するはずです。Monoと呼ばれるオープンソースプロジェクトが、Linuxバージョンを作成する取り組みの先頭に立っています。
Silverlightは若いテクノロジーですが、トラブルや論争に見知らぬ人ではありません。一部の開発者とユーザーは、ダウンロード可能なプラグインが機能する必要があるさらに別のWebテクノロジーに熱心ではありません。また、2008年の北京オリンピックでのNBCとのパートナーシップは、マイクロソフトが期待したほどの話題を生み出しなかった可能性があります。
しかし、そのすべてに飛び込む前に、まずSilverlightの内部を詳しく見てみましょう。
- Silverlightベータ版
- Silverlightの開発
- Silverlightアプリケーション
- Silverlightビデオ
Silverlightベータ版
Silverlightの注意点の1つは、この記事の執筆時点で、Silverlight1とSilverlight2Betaの2つのバージョンがあることです。Silverlight 1は、JavaScriptプログラミング言語で記述されたアプリケーションをサポートします。Silverlight 2のベータ版は、C#(「cシャープ」と発音)やVisualBasicなどの追加のプログラミング言語をサポートしています。両方のバージョンのSilverlightは、.NETFramework内で機能します。
では、.NETとは何ですか?これはMicrosoftの別の製品です。.NETFrameworkはプログラミングモデルです。プログラマーは、このモデル内でアプリケーションを構築できます。特に、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フレームワーク内でシームレスに機能します。ハイパーテキストマークアップ言語(HTML)には制限があるため、MicrosoftはWPFを開発しました。Webブラウザは、HTMLではサポートできないほど複雑な関数を実行できます。
WPFは、ベクターベースのレンダリングエンジンを使用して、アプリケーションのグラフィックスを生成します。 2Dおよび3Dグラフィックスをサポートでき、開発者に.NET内で作業することによってアプリケーションを強化する手段を提供します。 XAMLの主な目的は、開発者にアプリケーションの外観を微調整する手段を提供することです。 WPFとXAMLは一緒になって、Silverlightアプリケーションの外観と動作を定義します。
WPFとXAMLはアプリケーションの外観と動作を決定しますが、プログラマーは他のコンピューター言語を使用してアプリケーション自体を構築します。Silverlight 1はJavaScriptのみをサポートしますが、Silverlight2のベータ版はいくつかの動的言語をサポートします。プログラマーは、.NET Framework内で作業しながらこれらの言語を使用してアプリケーションを構築し、WPFとXAMLを使用してアプリケーションをWebブラウジングエクスペリエンスに統合します。すべてのSilverlightアプリケーションは、Webブラウザー内で実行されます。
Silverlightプラットフォームのアーキテクチャを見て、これらの要素がすべて連携して、RIAを構築するために必要なプラットフォームをプログラマーに提供する方法を見てみましょう。
Silverlightの開発
すべてのソフトウェアと同様に、Silverlightプラットフォームには、アーキテクチャと呼ばれる機能と機能の特定の配置があります。プログラムのアーキテクチャは、プログラムがどのように機能するかについて多くのことを教えてくれます。タスクを論理的な方法でグループ化し、プログラムのさまざまな部分がどのように連携してサービス全体を提供するかを示します。SilverlightでのMicrosoftの目標は、次世代のWebベースアプリケーション用の強力でシンプルなプラットフォームを作成することです。
Microsoftは、Silverlightプラットフォームのアーキテクチャを、インストーラーと更新要素を追加して2つの主要なコンポーネントに分割しています。2つの主要なコンポーネントには、Silverlightのコアプレゼンテーションフレームワークと.NETフレームワークが含まれます。それぞれを順番に見ていきましょう。
コアプレゼンテーションフレームワークには、次のものが含まれています。
- アプリケーション内のすべてのグラフィック、アニメーション、およびテキストを生成するユーザーインターフェイス(UI)レンダリングエンジン
- キーボード、マウス、デジタルタブレットなどのデバイスからのユーザー入力を処理する入力インターフェイス
- いくつかのオーディオおよびビデオファイル形式をサポートするメディアエンジン
- 開発者がアプリケーション内のメディアの制御を維持できるようにするデジタル著作権管理要素
- カスタマイズ可能なアプリケーションコントロールのサポート
- 動的UIレイアウトのサポート-この機能により、開発者はアプリケーションのUIの外観をリアルタイムで変更できます
- データバインディングのサポート-UI要素をアプリケーション内のデータオブジェクトにリンクする
- XAMLのパーサー
.NETFrameworkには次の機能があります。
- 統合言語クエリ(LINQ)機能のサポート-LINQを使用すると、開発者はさまざまなソースからのデータを統合できます。
- 基本クラスライブラリなどの暗号化などの基本的なプログラミング機能をサポートしています
- アプリケーションがリモートデータやサービスに簡単にアクセスできるように設計された、Window Communication Foundation(WCF)と呼ばれる一連の機能
- Windows Presentation Foundation(WPF)
- 動的言語ランタイム(DLR)、さまざまなプログラミング言語で記述されたアプリケーションをサポートする要素
- 共通言語ランタイム(CLR)、メモリ管理やその他の重要な機能を処理するコンポーネント
プレゼンテーションコアと.NETFrameworkは、主に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フィードから情報とリンクを取得できるヒーローバーを作成できます。ウェブマスターがサイトに新しいコンテンツを追加すると、ヒーローバーは自動的に更新されます。
プログラマーは、Silverlightを使用して他のWebサービスと対話することもできます。Twitterlightは、Twitterマイクロブログサービスを利用するSilverlightアプリケーションです。Twitterlightを使用すると、ユーザーは個々のTwitterフィードにアクセスして、新しいメッセージを投稿できます。
TeamLiveオンライン生産性ソフトウェアアプリケーションを使用すると、Silverlightユーザーはプロジェクトで共同作業を行うことができます。TeamLiveを使用すると、ユーザーはアプリケーションまたはWebサイトのスクリーンショットを撮り、他のユーザーと共有することができます。これにより、さまざまな場所にいるチームメンバー間のコラボレーションが容易になります。チームはリアルタイムで協力して、問題を修正したり、設計を合理化したりできます。
Silverlightで実行されるゲームは、単純なものから没入型の冒険までさまざまです。たとえば、Silverlight形式のハングマンなどの従来のゲームを見つけることができますが、宇宙をテーマにしたアドベンチャーゲームであるゼログラビティなどのアーケードスタイルのゲームも見つけることができます。Flashと同様に、Silverlightは、ユーザーがWebブラウザーを介してアクセスできる堅牢なゲームエクスペリエンスを作成するために必要なリソースを開発者に提供します。
これらのアプリケーションは、氷山の一角にすぎません。Webがより洗練され、人々がより多くの帯域幅にアクセスできるようになるにつれて、ユーザーはブラウジング体験により多くを要求するようになります。ますます多くの人々がニュース、エンターテインメント、生産性アプリケーションのためにインターネットに目を向けています。開発者は、消費者の需要を満たすためにSilverlightなどのツールを使用する必要があります。
Silverlightは、より伝統的なメディアとのいくつかの戦略的パートナーシップを通じて、すでに大きな飛躍を遂げています。次のセクションでは、これらの関係について詳しく見ていきます。
Silverlightビデオ
ビルゲイツは、2008年のコンシューマーエレクトロニクスショーケース(CES)のメイン基調講演者でした。スピーチは、マイクロソフトの会長としての彼の最後のCESプレゼンテーションをマークしました。その夜、ゲイツ氏は多くの新しいマイクロソフトのプロジェクト、製品、サービスを発表しました。その中には、米国内でオリンピックをオンラインで放送するためのNBCとのパートナーシップがありました。
NBCは、米国でオリンピックを放送するためのテレビの権利をすでに取得していました。従来のテレビ放送に加えて、NBCはMicrosoftとともに、そのWebサイトでオリンピックの報道をオンラインで提供しました。訪問者は、ビデオを視聴するために、Silverlightをダウンロードしてコンピューターにインストールする必要がありました。一部の技術ジャーナリストはこの決定に疑問を呈しました。Silverlightは強力なプラットフォームですが、AdobeFlashは市場ではるかに大きな存在感を示しています。ほとんどのPCにはすでにFlashが搭載されており、Silverlightをダウンロードした人は比較的少数です。一部のジャーナリストには、NBCが危険な実験を行っているように見えました。
ペアリングは成功しましたか?それは誰が話をするかによります。 The New York Timesの記事によると、NBCのオリンピックWebサイトは、オリンピック期間中に視聴者に7,200万を超えるビデオストリームを提供しました[出典:Stelter ]。しかし、TechCrunchのようなブログは、オリンピックをカバーする他のサイト(ビデオをまったく取り上げていないサイト)にはNBCのサイトよりも多くの訪問者がいたと主張している[出典:Schonfeld ]。一部のブログでは、広告主がNBCのオンラインパフォーマンスに満足していないという噂も報告されています。
おそらくNBCは、ストリーミングビデオプラットフォームとしてAdobe Flashを選択していれば、より多くのオンライン視聴者を抱えていただろう。あるいは、NBCがオンラインで放送されるイベントを制限していなければ、もっと多くの人がWebでゲームを視聴していたでしょう。しかし、実験をがっかりさせたと言う人がいたとしても、Microsoftは何百万もの人々がSilverlightをダウンロードしたことを知っています。マイクロソフトの本では、それは勝利として数えられます。
マイクロソフトは、米国の他の有名企業とパートナーシップを結んでいます。2007年後半、メジャーリーグベースボールのストリーミングビデオプレーヤーはSilverlightに切り替わりました。CBSは、ユーザー生成コンテンツ用のインタラクティブなWebプラットフォームを作成したときに、Silverlightを選択しました。また、NBAは、オンラインメディアプレーヤーにもSilverlightを選択しました。
Silverlightは次の大きなインターネット標準になるのでしょうか?言うにはまだ時期尚早です。Adobe Flashよりも堅牢であると主張するかもしれませんが、Flashは市場にはるかに深く浸透しています。最終的には、どのテクノロジーが最上位にあるとしても、ユーザーが望むもの、つまり没入型のWebブラウジング体験を提供します。
Silverlightおよび関連トピックの詳細については、次のページにあるリンクに光を当ててください。
ハネムーンは終わりましたか?
NBCは、Silverlightを使用してWeb上でSunday Night Footballのビデオストリームを提供することはありません。代わりに、AdobeFlashを使用します。しかし、NBCがマイクロソフトを肩をすくめると思い込まないでください。この場合、ナショナルフットボールリーグはフラッシュを採用することを決定しました[出典:Learmonth ]。
多くの詳細情報
関連記事
- Microsoftのしくみ
- コンピュータメモリのしくみ
- グラフィックカードのしくみ
- インターネットTVのしくみ
- オペレーティングシステムのしくみ
- ストリーミングビデオとオーディオのしくみ
- テレビのしくみ
- ビデオフォーマットのしくみ
- YouTubeの仕組み
その他のすばらしいリンク
- Microsoft Developer Network
- 公式のMicrosoftSilverlightサイト
ソース
- クーパー、チャールズ。「私たちは皆、このオリンピックが大好きですよね?アドビではありません。」CNet。2008年8月14日。(2008年9月10日)http://news.cnet.com/8301-10787_3-10017507-60.html?tag=nefd.top
- フロマー、ダン。「Adobe:Silverlight Who?FlashVideoが世界中のオリンピックを席巻しました。」シリコンアレイインサイダー。2008年8月27日。(2008年9月9日)http://www.alleyinsider.com/2008/8/adobe-silverlight-who-flash-video-dominated- olympics-worldwide-adbe-msft-
- ラモニカ、マーティン。「Linux上のSilverlight?私たちは参加しています」とMonoの創設者は言います。CNet。2007年5月1日。(2008年9月10日)http://news.cnet.com/8301-10784_3-9714669-7.html
- リアマンス、マイケル。「NFL、NBCはライブサッカーのためにアドビのフラッシュをタップします。」シリコンアレイインサイダー。2008年9月4日。(2008年9月10日)http://www.alleyinsider.com/2008/9/nfl-nbc-tap-adobe-s-flash-for-live-football
- マクドナルド、マシュー。「Silverlight2VisualEssentials」。押してください。2008年。
- マクドナルド、マシュー。「SilverlightとASP.NETが明らかになりました。」スプリンガー。2007年。
- Matyszczyk、クリス。「オンライン広告主はNBCのオリンピックのパフォーマンスに失望していますか?」CNet。2008年8月18日。(2008年9月10日)http://news.cnet.com/8301-17852_3-10018721-71.html
- Microsoft DeveloperNetwork。「VisualStudioでの.NETFrameworkプログラミング」。2007年11月。(2008年9月9日)http://msdn.microsoft.com/en-us/library/k1s94fta.aspx
- マイクロソフト開発ネットワーク。「シルバーライト。」2008.(2008年9月8日)http://msdn.microsoft.com/en-us/library/bb188743.aspx
- マイクロソフト開発ネットワーク。「WindowsPresentationFoundation」。2007年11月。(2008年9月8日)http://msdn.microsoft.com/en-us/library/ms754130.aspx
- マイクロソフトシルバーライト。"ニュース。" (2008年9月10日)http://www.microsoft.com/silverlight/news/default.aspx
- モロニー、ローレンス。「Web開発、Silverlight、ASP.NETAJAXの開始。」エイプレス、2008年。
- シェーンフェルド、エリック。「NBCがどのようにそれを回転させても、オリンピックのWeb戦略は敗者になります。」TechCrunch。2008年8月25日。(2008年9月10日)http://www.techcrunch.com/2008/08/25/no-matter-how-nbc-spins-it-olympics- web-strategy-comes-up -a-敗者/
- ステルター、ブライアン。「ゲームのWebオーディエンスはNBCとYahooで急上昇しています。」ニューヨークタイムズ。2008年8月24日。(2008年9月10日)http://www.nytimes.com/2008/08/25/sports/olympics/25online.html
- Javaチュートリアル。「オブジェクトとは」2008年2月14日。(2008年9月10日)http://java.sun.com/docs/books/tutorial/java/concepts/object.html
- ウェンズ、クリスチャン。「エッセンシャルシルバーライト」オライリー。2008年。
- ウィルダムス、ショーン。「Silverlight入門」。オライリー。2007年。