Visual Studio 2010と.NET Framework 4.0の特長
Visual Studio 2010と.NET Framework 4.0のBeta1が公開された。
筆者の個人的な見解だが、.NET Framework 3.5のWPFやLINQほどの大きな変化がなく、アーキテクチャレベルの拡張は前バージョンで一段落した印象を受ける。4.0では、3.0以降に導入された機能の改良や、大規模システム向けの拡張(クラウドへの対応を見据えているのだろうと思われる)が主として行われているように感じた。
そうは言っても、やはり非常に数多くの新機能が追加されている。本シリーズでは、それらの新機能の中から、いくつか目立ったものをピックアップして解説を行うことにする。ここで取り上げるのは以下の3つだ。
- ASP.NET Ajaxにおけるクライアントサイドレンダリング
- F#とC#の新機能
- Managed Extensibility Framework(MEF)
ちなみに、VS 2010は、現在Beta1が利用可能だ。こちらのWebサイトからダウンロードできる。本シリーズのサンプルをぜひ動かしてみていただければと思う。
ASP.NET Ajaxのテンプレート機能
本稿では、1つめの「ASP.NET Ajaxにおけるクライアントサイドレンダリング」について取り上げてみよう。
ASP.NETは元々動的なWebアプリケーションを開発するためのフレームワークだったが、Visual Studio 2008に含まれたASP.NET Ajaxによって、Ajaxにも対応した(ちなみに、MVCモデルに対応したASP.NET MVCというフレームワークも用意されている)。
ASP.NET Ajaxによって、サーバー・クライアント間のデータ送受信や、Webページの部分的な更新については、JavaScriptをそれほど意識することなく、簡単に行えるようになった。しかし、ある程度複雑な画面更新を行おうとすると、それなりの分量のJavaScriptを記述しなければならなかった。
しかし、本来であればそういうコードはあまり好ましくない。そもそも、ASP.NETではWebページを動的に生成する場合であっても、ASPXファイルやコードビハインドといった仕組みを使用することで、C#などのコード記述は最小限に抑えるようになっている。それは「HTMLを組み立てるためにわざわざC#などのコードを書くのは効率が悪い」という理由からだ。
そこで、ビジネスロジックの部分はC#で記述し、HTMLの組み立てはASPXファイルに記述されたテンプレートが担当する、という役割分担を行っているわけである。だとすれば、サーバーから動的に取得したデータをHTMLに変換する場合も、やはり何らかのテンプレートエンジンを使った方が圧倒的に効率がよいはずなのだ。
ASP.NET AJAX 4.0では、サーバーから動的に取得したデータに対しても、HTMLで記述したテンプレートを適用できるようになっている。この仕組みを使えば、JSONやXMLをHTMLのコードに簡単に変換することができるのだ。さらに、後述するObserverという仕組みを使えば、js上での特定の変数をビューにバインドさせることもできる。つまりjs上で変数の値を変更すると、それが自動的にDOMに反映されるというわけだ。では、具体例をいくつか見てみよう。