はじめに
ASP.NET 4.0では、従来のASP.NETにおいて活用されていた機能がより使いやすくなっています。また、IDE側の新機能としてHTML/JavaScript側のコーディングサポートなど、Visual Studio 2008では多少煩雑であった部分の緩和につながる機能強化も行われています。
前編/後編で紹介するASP.NET 4.0とVisual Studio 2010の新機能と機能強化ですが、今回はASP.NET 4.0の全体像、基本的な新機能、Visual Studio 2010の新機能、ASP.NET 4.0以前でも活用できるJavaScript周りのノウハウについて紹介します。
なお、ASP.NET MVC V2に関しては別途紹介予定ですので、本連載では取り扱いません。
必要な環境
次の環境が必要です。
- Visual Studio 2010 Ultimate Edition Beta 2(日本語版)
Visual Studio 2010(以下、VS 2010)のインストールは、「Visual Studio 2010 Beta 2を使ってみよう」を参考に行ってください。
今回触れる内容
今回触れるのは、大別すると以下の4つです。
- ASP.NET 4.0の全体像
- ASP.NET 4.0の基本的な新機能
- Visual Studio 2010のWebデザイナとコーディングサポート機能
- ASP.NET AJAX Libraryの登場と強化されたクライアントサイドの技術
ASP.NET 4.0とVS 2010がどういう構成なのかを前編で紹介します。
ASP.NET 4.0の全体像
それでは、まずASP.NET 4.0の全体像を紹介します。とは言っても基本的にASP.NET 3.5と構成的に変わりはありません。
ASP.NET 4.0は根底にCLR/BCLが存在し、その上に各アプリケーションが存在します。大別するとWebFormアプリケーション、Dynamic Dataアプリケーション、MVC V2が存在します。これらは組み合わせて開発もできますし、完成したアプリケーションは、SQL AzureやApplication Fabricの設定など、Windows Azureの準備が整えばWindows Azureにホストさせることもできます。
さて、図を見てお気づきの方もいるかと思いますが、JavaScriptライブラリがすべてのアプリケーションをサポートしているのがASP.NET 4.0の特徴です。話題のjQueryはもちろん、ASP.NET 3.5までMicrosoft AJAX Libraryと呼ばれていたライブラリはjQueryとの親和性を高くし、AJAX Control Toolkitが統合され、「ASP.NET AJAX Library」と名称変更されました。大きくパワーアップしたASP.NET AJAX Libraryについては後述します。
ASP.NETを今まで触れてきた方には差分を覚えるだけで開発が進められますし、ASP.NET未経験だけど、PHPなどでWeb開発を行ってきた開発者の方にとってもJavaScript周りの機能拡充や、MVC V2により入門しやすくなったフレームワークであると言えます。
ASP.NET 4.0の基本的な新機能
ASP.NET 4.0の基本的な新機能について紹介します。
自動スタート
.NETアプリケーションは初回起動が遅いです。特にASP.NETの場合、初回リクエスト時のレスポンスに対して事前にプリコンパイルするなどの工夫をしていることが多かったと思いますが、IIS 7.5とASP.NET 4.0を組み合わせることで、ユーザーからのリクエスト前に指定したアプリケーションを起動させることができるようになりました。
これにより、ASP.NETのアプリケーションは遅い!というイメージを大幅に改善できると思います。
RedirectPermanentメソッドの追加(SEOへの親和性の強化)
実運用の中では、メンテナンスやアプリケーションのバージョンアップなどに伴いディレクトリ間のファイルの移行などによるURLの変更が行われることがあるでしょう。
このような場合に今までのASP.NETでは、HttpResponseオブジェクトのRedirectメソッドを使っていたかと思います。ASP.NET 4.0では、RedirectPermanentメソッドを使うことが推奨されます。
Response.RedirectPermanent("~/ScriptForm/Watermark.aspx");
RedirectメソッドではHTTPコード302(Temporary Redirect:一時的な転送)を、RedirectPermanentメソッドはHTTPコード301(Permanent Redirect:完全な転送)をクライアントに送信します。
クライアント側から302のリクエストがあった場合は、一時的に新しいURLに転送するという認識になるため、検索エンジンも今回だけという認識になり、検索結果のURLは古い情報を保持します。
301のリクエストがあった場合は、今後リクエストがあった際に新しいURLへと転送を行うため、SEOにも新しいURLが検索結果として表示されるようになります。また、過去のURLの情報も引き継げるため、検索エンジンによる検索順位の向上にも繋がりますので、シナリオに当てはまる場合は本メソッドを活用してください。