
ついに正式リリース! いまこそ知りたい!!
Silverlightは次世代のJavaScriptフレームワーク?
Microsoft MVP
松原晋啓
2007/9/7
編集部注:具体的なSilverlightアプリケーションの開発の仕方について詳しく知りたい読者は、本稿と併せて連載「.NETを知らない人でも分かるSilverlight入門」や連載「Silverlight 2で.NET技術をカッコよく使おう」もご参照ください。また、最新版のSilverlight 3に関しては、記事「Silverlight 3、ここがすごい!」をご参照ください。
いまこそ知りたい、“Silverlight”って何?
- - PR -
Silverlightは、マイクロソフトによって開発されたクロスブラウザ(※1)・クロスプラットフォーム(※2)・高度なメディアエクスペリエンスや RIA(Rich Interactive Application)を実現する、軽量なWebブラウザ・プラグインのアプリケーションです。つい先日(2007年9月5日)にバージョン1.0が正式リリースされました(「MS、Flash対抗「Silverlight」を正式リリース〜Linux版も提供〜」)。
Windows Vistaで使われているWindows用のプレゼンテーション・サブシステム、「WPF(Windows Presentation Foundation)」のサブセットとして開発された(「Silverlight」以前の名前は「WPF/E(Windows Presentation Foundation/Everywhere)」)ため、「XAML(Extensible Application Markup Language):ザムル」というXMLをベースとしたプレゼンテーション記述用のマークアップ言語を媒介に、開発者とデザイナーがそれぞれの使い慣れたツールを使用して完全に分業できます(※3)。
※1:Internet Explorer 6/7、Firefox 1.5以上、Safariに対応
※2:Windows OS、MacOS Xに対応。Linux向けには「Moonlight」という名称になる。今後、Windows Mobileにも対応予定
※3:ツールに関しては開発者向け「Visual Studio 2008」(2007年中、出荷予定)やデザイナー向け「Expression Blend 2」(出荷日未定)のリリースを待つ必要がある
| 図1 マイクロソフトのSilverlightサイト |
■ Silverlightは2種類ある
なお、Silverlightには、JavaScriptしか扱えない「Silverlight 1.0」とDLR(Dynamics Language Runtime)やCLR(Common Language Runtime)を組み込み、JavaScriptだけでなく.NETや動的言語を扱うことを可能とした「Silverlight 1.1」が存在しますが、JavaScriptのみで考えた場合、どちらも変わりがありませんので、ここではすでに正式版がリリースされているSilverlight 1.0を対象とします。
編集部注:その後「Silverlight1.1」は「Silverlight 2」に名称を変更しました。Silverlight 2について詳しく知りたい読者は、連載「Silverlight 2で.NET技術をカッコよく使おう」をご参照ください(2008年10月16日)。
Silverlight 1.0のアプリケーションを動かすには、Siverlightのランタイム環境(Webブラウザ・プラグイン)が必要です。しかし、それ以外はHTMLとJavaScriptしか使わないので、本稿ではSilverlight1.0をJavaScriptフレームワークとしてとらえながら、解説していこうと思います。
まずは体験! Hello Silverlight !!
取りあえず、そのSilverlight 1.0で動きのある「Hello World!!」を表示させるサンプルを紹介します。Silverlightアプリケーションはどういうものなのか、実際に動いているサンプルを見て体験してみてください。
| 図2 Silverlight 1.0の「Hello Wolrd!!」サンプル (画像をクリックするとサンプルが動きます。サンプルを動かすには、事前にランタイムのインストールが必要です。→ダウンロードページ) |
サンプルのソースコードはこちらからダウンロードできるようになっています。ソースコードの解説は後述します。
Silverlight 1.0の特徴
■ 軽量なランタイムと簡単なインストール
ランタイムは主要な Webブラウザに対応し、ダウンロードサイズも1.2Mbytes以下と軽量。未インストールの場合はインストールサイトへの誘導も行うため、手軽にインストールできます。
■ WindowsとMacintoshで共通のエクスペリエンスの実現
動作環境としてWindowsとMacintoshのどちらにも対応しているため、変更を行うことなくSilverlightの性能をフルに発揮し、高度なエクスペリエンスを共有できます(Linux向けには「Moonlight」という名前で今後リリースする予定)。
■ ベクターベースのグラフィック
グラフィックはベクターベースであるため、任意のサイズへの拡大/縮小可能ですし、多彩で柔軟性の高いグラフィックを表現できます。今回用意したサンプルは画像ファイルをいっさい使っていません。
■ 統合的なメディア形式
WMV(Windows Media Video)、SMPTE(Society of Motion Picture and Television Engineers)、VC-1、WMA(Windows Media Audio)、MP3 Audioをサポートする統合的なメディア形式により、高精細(HD)からモバイルまで幅広く対応しています。
さらに、ブロードキャスト型オーバーレイを統合することで、品質を損なうことなく、滑らかなビデオやアニメーションを使った配信が可能になります。
■ 既存のWebテクノロジーとの容易な連携
JavaScriptをベースとしているため、既存の技術(XHTML、Ajax、Java、PHP、Apacheなど)との連携も容易に行えます。
また、JSON、RSS、POX、RESTなどの共通プロトコルやLINQ(Language Integrated Query)もサポートしているため、Webサービスやマッシュアップともシームレスに連携します。
編集部注:LINQについて詳しく知りたい読者は、「C#設計者が語る5年後のプログラミング」をご参照ください。
■ 検索エンジンとの連動
インターフェイスやコンテンツがすべてXMLベースのXAMLで記述されているため、インデックス化や検索エンジンへの最適化(SEO)が容易です。
XAMLって何ざむるか?
XAMLとは、拡張子は「.xaml」となるマイクロソフトが提供するXMLをベースとしたプレゼンテーション記述用のマークアップ言語です。XAMLは「WPF」と「Silverlight」で使用される言語ですが、WPFとSilverlight間でXAMLの互換性はありません(後述の「できること←【Silverlight】→できないこと」参照)。
■ XAMLでできること
XAMLには従来のXML+XSLTのWebページのように外観やボタンなどのコントロールの配置を設定できますが、ベクターグラフィックによる描画やメディア、アニメーションなどの動画像や3Dグラフィックなども記述できます。
■ XAMLの記述例
Silverlightで「Hello World!!」を単純に表示するXAMLを記述した場合は、以下のようになります。
<Canvas |
トップレベルに<Canvas>タグを定義し、その中に名前空間の指定をします。同時に、Silverlightアプリケーション表示エリアのサイズを指定し、バックグラウンドの指定もここで行います。後は、HTMLやXMLと同様に<Canvas>タグ内にコンテンツの定義を行っていきます。
■ XAMLを使うメリット
XAMLはUIの記述を容易にするというメリットがありますが、それ以外に最大のメリットとしては、UIデザインをアプリケーションロジックから完全に分離したことで、開発者とデザイナーの完全な分業が可能となったことにあります。
従来は、例えばプロジェクトマネージャがユーザーから要件定義を行って画面の構成案をExcelやVisio などの描画ソフトで作成し、それを受け取ったデザイナーがPhotoshopやIllustratorなどのデザインソフトでUIをデザインし、その画像ファイルを開発者が参考にして開発ソフトで実際に画面をプログラミングしていました。
ここでは、2回UIデザインの引き渡しが発生しておりますが、従来は各自で使用しているツールが異なるため、うまく引き渡すことができない状況が発生することが多々ありました。しかし、XAMLを使用することで、UIデザイン部分のみを同じファイルで引き渡すことができ、プログラミング中に修正が発生した場合にもUIデザイン部分のみを再度デザイナーに引き渡して手軽に修正を行うことができます。
■ 新たな電子文書フォーマット、XPSとは?
また、XAMLにはサブセットとしてプラットフォームに依存しない電子文書フォーマットである 「XPS(XML Paper Specification)」が存在します。XPSはOffice 2007やWindows Vistaには統合されていますが、プラットフォームには依存しないため、単独でも使用できます。
次のページでは、Silverlightで作成した2つ目のサンプルを見ながら、Silverlightのアーキテクチャと処理フローなどを紹介します。
| INDEX | ||
| ついに正式リリース! いまこそ知りたい!! Silverlightは次世代のJavaScriptフレームワーク? |
||
| Page1 いまこそ知りたい、“Silverlight”って何? まずは体験! Hello Silverlight !! Silverlight 1.0の特徴 XAMLって何ざむるか? |
||
| Page2 そもそも、RIAって何だっけ? できること←【Silverlight】→できないこと Silverlightのアーキテクチャと処理フロー |
||
| Page3 Silverlightのソースコードを見てみよう Siverlightは.NET未開発者にこそオススメ |
||
| リッチクライアント&帳票 全記事一覧へ |
ホワイトペーパー(TechTargetジャパン)
- 画像を美しく魅せる効果を加えるjQueryプラグイン3選 (2010/3/17)
2つ重ねて比較するBefore/After、部分ごとに切り替えるpanelGallery、ズーム/カーテンなどができるcycle - 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |








