[MIX10] Microsoft と jQuery、そして ASP.NET Ajax Library

 MIX10 がラスベガスで開催されています。
そのキーノートでは、Silverlight 4, Windows Phone 7, IE9 など、さまざまな発表がおこなわれました。私も久しぶりにワクワクドキドキでした♪

MIX10_jQuery

その中で、若干地味ですが、マイクロソフトの jQuery サポート強化についても発表がありました。ここでは、下記のブログの内容を要約して、私なりにまとめてみました。

Stephen Walther's Blog:
Microsoft, jQuery, and Templating

https://stephenwalther.com/blog/archive/2010/03/16/microsoft-jquery-and-templating.aspx

James Senior's Blog:
Microsoft <3 jQuery

https://www.jamessenior.com/post/Microsoft-3c3-jQuery.aspx

jQuery Official Blog:
Microsoft to Expand its Collaboration with the jQuery Community

https://blog.jquery.com/2010/03/16/microsoft-to-expand-its-collaboration-with-the-jquery-community/

MIX10 キーノートで Scott Guthrie が発表したように、マイクロソフトテクノロジーにおいても、クライアントサイド Ajax アプリケーションを開発する第一の方法として、今後は jQuery を使うことが推奨されます。

マイクロソフトでは、すでにとても強力なクライアントサイドのスクリプトライブラリである jQuery を本格的に採用しサポートしていくことになります。
MS 本社 ASP.NET チームのエンジニアは、MIX10 2 日目のキーノートにも登壇した John Resig (Creator of jQuery) とともに、リッチなデータ駆動 Web アプリケーションを、今までよりも簡単に実装できる新しい jQuery Template エンジンの仕様決めとプロトタイプ実装を進めていて、jQuery コアの実装、および、いろいろなマイクロソフトテクノロジと共に jQuery が使えるように調整しているそうです。
さらに、jQuery のコアに追加予定の新しい機能は、マイクロソフトテクノロジベースの Web アプリケーションだけではなく、もちろん PHP, Rails など、jQuery が使えるほぼすべての Web 開発で使用することができます。

キーノートのデモでは、初期の jQuery Template プロトタイプが使われました。今のところ jQuery プラグインとして Template 機能が使えますが、将来的には jQuery のコアライブラリに実装される予定だそうです。

現在は GithubjQuery Templates のプロトタイプ版が入手できます。
オリジナルバージョン:
https://github.com/jquery/jquery-tmpl
最新バージョン:
https://github.com/nje/jquery-tmpl

jQuery Templates

新しく追加される機能として、Templates の機能があります。これは、ASP.NET Ajax Library で提供されていた、クライアントテンプレートと DataView コントロールとほぼ同等の機能になります。

実装コードサンプル
--------------------------------------------------------------------------------
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="jquery.tmpl.js" type="text/javascript"></script>
<script type="text/javascript">  
jQuery(function(){  
  var products = [  
        { name: "Product 1", price: 12.99},  
        { name: "Product 2", price: 9.99},  
        { name: "Product 3", price: 35.59}  
  ];  
  $("ul").append("#template", products);  
});  
</script>  
<script id="template" type="text/html">  
    <li>{%= name %} - {%= price %}</li>  
</script>  

<ul></ul>
-------------------------------------------------------------------------------

テンプレートの記述では {%= ... %} が使われます。
(ASP.NET Ajax Library のクライアントテンプレートでは {{ ... }} でした)

これに、バインドしたデータのプロパティの値が自動的に埋め込まれ、さらにアイテム数だけ <li> ... </li> が生成されます。

この機能を使うことで、何かしらのサービス経由で JSON 形式で取得したデータコレクションを、クライアントサイド(ブラウザ側)で、HTML にレンダリングして表示させることが簡単にできます。DOM を操作したりしてゴリゴリと JavaScript を書かなくても、上記のように非常にシンプルなコード記述で可能です。

ASP.NET AJAX Control Toolkit は?

現在、CodePlex で提供されている ASP.NET AJAX Control Toolkit は、ASP.NET Web フォームの開発ではとても有用なコントロールです。サーバーサイド開発における Web サーバーコントロールとして、今後もマイクロソフトはこの ASP.NET AJAX Control Toolkit に投資していきます。
さらに、現在、数か月ごとに新しいバージョンの ASP.NET AJAX Control Toolkit のリリースを計画しているそうです。

ただし、Web サーバーコントロールを使用しないで、クライアントサイド中心の Ajax 開発を行いたい場合 (ASP.NET MVC なども含む) では、これからは jQuery の利用を推奨します。

ASP.NET AJAX Control Tookit に対応するクライアントサイドコントロールとしては、

jQuery UI (https://jqueryui.com/themeroller/)

がありますので、ぜひこれを試してみてください。

ASP.NET Ajax Library の今後は?

the ASP.NET Ajax Wiki で公開されていた、新しい ASP.NET Ajax Library (Beta0911)では、
クライアントテンプレート、ライブデータバインディング、Script Loader など、便利な機能が実装されていました。さらに、クライアントサイドコードだけで使用できる ASP.NET AJAX Control Toolkit が統合されていました。すでに、これらを使用している Web アプリケーションでは、引き続きこれらを使っていくことができます。Ajax CDN でも提供され続けるでしょう。

ただし、今後、ASP.NET Ajax Control Toolkit は、サーバーサイド開発を中心に提供されるようになります。もしも、ASP.NET Ajax Library に実装されていたクライアントテンプレートの機能の使用を検討しているなら、jQuery Templates の利用を検討してください。

※追記 (2010.3.19) ※
ASP.NET Ajax Library (https://ajax.codeplex.com/) の Important Note に "The ASP.NET Ajax Library is now included in the Ajax Control Toolkit." との記述が追加されました。ASP.NET AJAX Control Toolkit の次のアップデートで、ASP.NET Ajax Library は ASP.NET AJAX Control Toolkit に含まれることになるようです。

・・・

以上のように、jQuery に対する本格的な対応は、オープンソース分野において、マイクロソフトのエキサイティングな一歩だと思います。オープンソース&コミュニティベースの元で、そして、サーバーサイドテクノロジに関係なく、すべての人にとって Web がより良いものになることを手助けできるのではないでしょうか。

jQuery Template 仕様は下記に公開されています。ぜひ、レビューをして jQuery フォーラムにフィードバックしてみてください!

jQuery Templates Proposal
https://wiki.github.com/nje/jquery/jquery-templates-proposal

jQuery カンファレンス
来月 4 月にサンフランシスコで jQuery カンファレンスが開催されるそうです。行ってみたいなぁ・・・

jQuery Conference 2010: San Francisco Bay Area Announced
https://blog.jquery.com/2010/03/15/jquery-conference-2010-san-francisco-announced/

ということで、MIX10 を境にして、先月の Tech Days 2010 で行った私のセッション
T2-309
「進化した ASP.NET Ajax Library と MVC 2 、そして jQuery による次世代 Web 開発」

の内容が、一部すでに古いものとなってしまったのはここだけの秘密です・・・(涙