VB研公開ゼミ:テクノロジーバトル 開発者の選択第1回 Silverlight vs. jQuery+ASP.NET AJAXデジタルアドバンテージ 一色 政彦2009/07/01 |
|
第8回まで続いたVB研公開ゼミだが、今回は趣向を変え、2つの技術をバトル形式で議論するセミナー形式で開催された。2009年6月13日(土曜日)にベルサール九段で開催されたテクノロジーバトル「開発者の選択」第1回には、約70名の参加者が集まり、大いに盛り上がった。
第1回 テクノロジーバトル会場の様子 |
今回は「Silverlight vs. jQuery+ASP.NET AJAX」と題し、.NET系のRIA(リッチ・インターネット・アプリ)テクノロジの大本命として注目される「Silverlight」、そしてWebをリッチにする技術としてGoogle Mapsに始まりWeb世界で広く活用されている「Ajax」という2つの技術を対決させた。なお今回の「Ajax」とは、純粋な「JavaScriptとXMLによる非同期通信」だけを指すのではなく、.NET Frameworkとの親和性が高い「ASP.NET AJAX」や、オープンソースで人気が高くVisual Studioに統合された「jQuery」ライブラリなどを活用したJavaScriptによるUI実装からAjax通信(=XMLHttpRequestによる非同期通信)までを指している。
基調講演では、山田氏がAjaxについて、八巻氏がSilverlightについて、その基礎的な内容を説明した。この基調講演を踏まえて、前半/後半、40分ずつでパネル・ディスカッションが開かれ、それぞれの機能、長所/欠点、実情、将来性などを議論した。パネル・ディスカッションのパネラーとして参加したのは、以下の方々(以下、敬称略)。
パネラー | []Ajax陣営: []Silverlight陣営: |
司会 | 小川 誉久(@IT Windows Server Insider編集長) |
パネル・ディスカッションの様子 |
聴講者には、セミナー申し込み時に「いま、SilverlightとAjaxのどちらを支持するか」というアンケートに答えていただいた。68名の参加者分の集計結果によると、32名(47%)が「Silverlight派」、19名(28%)が「Ajax派」、残りの17名(25%)が「どちらでもない派」と、大幅にSilverlightに票が集まっていた。パネル・ディスカッション後に、それぞれの派閥の人数がどう変化するのかで勝敗が決められる。
本稿では、このパネル・ディスカッションの内容を要約してお伝えする。※アプリケーションは「アプリ」と略す。
■
■Silverlight、Ajaxのできること/できないこと
―― SilverlightとAjax、それぞれで他方にはない利点とは何ですか?
[]一色 Ajaxの良いところは、HTMLコードとシームレスに連携が取れる点です。例えばjQueryを使えば、非常にシンプルで直感的な記述でHTML DOM(Document Object Model)を操作できます。どれくらいシンプルかというと、
「$("#ID名").css("プロパティ名", "値");」
のように1行で書けます。この1行の構文は、HTMLタグに指定した「ID」に対応する「CSS」として(例えば「background-color: #FF0000;」などの)「プロパティ」と「値」を指定することでデザインを変更できると知っているだけで使いこなせます。つまり、HTMLとCSSの知識を持っている一般的なWebデザイナーなら、特別な学習はほとんど要りません。Ajaxの方が簡単なので、わざわざSilverlightを使う必要はないと思います。
[]Silverlight派 グレープシティ株式会社 ツール事業部 テクニカルエバンジェリスト 八巻 雄哉 |
[]八巻 確かにjQueryプラグインなどによるアニメーションやエフェクトはよくできていると思いますが、開発という面は弱いのではないかと思います。先ほど「Webデザイナーが直感的にできる」という話がありましたが、VB6などでクライアント/サーバ型システムを開発してきた開発者にとって、HTMLやCSSの世界は遠いところにあるのではないでしょうか。そういう観点でいうと、SilverlightはExpression Blendなどのツールがそろっており、開発者にとってはAjaxよりも開発しやすいと思います。
[]一色 なるほど、Silverlightのそういった利点は理解できます。しかし、八巻さんの基調講演の中でも同様の発言がありましたが、例えばよく見るSilverlightのデモは業務アプリからかけ離れており、実際にはSilverlightが提供するような高度なアニメーション機能は不要ではないでしょうか。
[]八巻 業務アプリで要求が多いのは、UI(ユーザー・インターフェイス)側で細かな操作をすることです。例えばエンド・ユーザーにクリックされないように制御したり、ある部分をクリックしたら何かを表示したりするなどです。サーバサイドのASP.NET AJAXでこれらを実現するには限界があるため、クライアント側のJavaScriptコードをゴリゴリと書いて細かい機能を実現しなければいけません。この点、Silverlightなら、使い慣れたVB(Visual Basic)言語を使って、クライアント側で細かい機能をより簡単に実現できます。
―― 例えば、Silverlightの基調講演のデモ「Silverlight Airlines」にあった飛行機の航路をシミュレートするようなUIは、Ajaxでも実現できるのでしょうか。
Silverlight Airlinesの実行例 |
[]山田 はい、このデモのようなものであれば実現できると思います。もう1つのデモにあった医療業務アプリ「Patient Journey Demonstrator」については、SilverlightのDeep Zoom機能(=画像を深く拡大していく機能)が使われていますが、このような画像系の処理は、Ajaxは得意ではありません。しかしながら、一色さんも述べたとおり、あそこまでグラフィカルなUIが要求されることがどれくらいあるかというと、現実的にはあまりないと思います。従って、飛行機の航路のアプリをAjaxで作る技術を持っているなら、あえてSilverlightのような新しいテクノロジを使う必要性はあまりないのではないでしょうか。
Patient Journey Demonstratorの実行例 |
―― Silverlight側で「Ajaxにはこれはできない」という指摘はありますか?
[]菅原 Silverlightは特に動画の扱いが強いです。例えば、医療向けの内視鏡で撮った動画を編集するアプリは、Ajaxではできないと思います。
[]八巻 まもなく発表が予定されるバージョン3からですが、3Dを用いたUIやシェーダと呼ばれるエフェクトなどはSilverlightにしかできません。正直、3Dなどは業務アプリとはあまり関係ないと思いますが、できる/できないでいうと、こういうのはAjaxではできません。
[]宮崎 確かにそれはAjax自体ではできません。しかし、YouTubeに代表されるように、実際のWebアプリではこういった処理はサーバサイドで実現されます。つまり、Ajax技術を使ったサイトでも、そのようなサイトを構築できないわけではありません。
INDEX | ||
VB研公開ゼミ:テクノロジーバトル 開発者の選択 | ||
第1回 Silverlight vs. jQuery+ASP.NET AJAX | ||
1.Silverlight、Ajaxのできること/できないことの対決 | ||
2.リッチUI/開発言語/開発環境の対決 | ||
3.クライアント環境/対応OS/クロスブラウザ/SEO対策問題の対決 | ||
4.システム・アーキテクチャ/将来性の対決 | ||
「VB研公開ゼミ議事録」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -