ScottGu's blog translated by Chica @ Wankuma

.NET 3.5 と VS 2008でのASP.NET AJAX

  

VS 2008 JavaScript インテリセンスVS 2008 JavaScript デバッグによるJavaScript およびAJAXの改善点について以前ブログを書きました。以下はVS2008と.NET3.5リリースの一部として搭載されるASP.NET AJAXランタイム機能についての注意書きで、もし既存のASP.NET AJAX1.0プロジェクトをVS2008で開こうとする場合には重要な注意書きとして読んでください。

.NET 3.5に含まれているASP.NET AJAX

ASP.NET AJAX 1.0は別にダウンロードするものとして出荷されており、ASP.NET2.0上にインストールすることができます。.NET Framework 3.5リリースから、これらの機能は全てASP.NETとビルドインになっているため、アプリケーションを構築、配備する時に別でASP.NET AJAXをダウンロードしてインストールする必要がなくなりました。

.NET3.5Frameworkをターゲットにした新しいASP.NETアプリケーションまたはWebサイトをVS2008上で作成した時、VSは自動的にweb.configに適切なAJAXを登録し、中心のASP.NET AJAXサーバコントロールがツールボックスに表示されます。

.NET3.5で出荷されるASP.NET AJAXのバージョンはたくさんの改善が行われています。例えば、UpdatePanelをWebパーツと一緒に使用する時のサポート、JSONエンドポイントベースのWCFに対するサポート、ASP.NETプロファイルを使用した時のサポート、JavaScriptを使用したロールおよびログインアプリケーションサービス、数々のバグ修正、パフォーマンスの改善などがあります。

ASP.NET AJAXのバージョンについての理解

ASP.NET AJAX 1.0 と.NET 3.5は両方とも同じマシン上でサイドバイサイドでインストールすることができます。ASP.NET AJAX 1.0はSystem.Web.Extensions.dllアセンブリのV1.0 で実装されています。.NET 3.5で含まれているASP.NET AJAXの実装は、System.Web.Extensions.dllアセンブリのV3.5にあります。System.Web.Extensions.dllのV3.5は1.0実装のスーパーセットと完全に互換性があります。(つまり、それを使用するのにコードを変更する必要が一切ないということです。)

マシン上の各ASP.NETアプリケーションはASP.NET AJAXのどのバージョンでビルドして起動するかを選択することができます。マシン上の各ASP.NETアプリケーションはASP.NET AJAXのどのバージョンでビルドして起動するかを選択することができます。これは、web.configファイルの<system.web.extensions>セクションを通じて、またはコンパイル時に対象となったSystem.Web.Extensions.dllアセンブリ(Webサイトプロジェクトの場合これらの参照はweb.configファイルの<assemblies>セクションに登録され、Webアプリケーションプロジェクトの場合これらはプロジェクトファイルを通じて参照されます。)によって構成されます。

ASP.NET AJAX3.5アプリケーションをターゲットにするためにVS2008を使用、またはASP.NET AJAX1.0を使用したASP.NET2.0アプリケーションをビルドするために新しいVS 2008 マルチターゲティングサポートを使用することができます。以下のセクションで両方の方法をカバーします。

重要なベータ2情報

 Web上にベータ2を出荷する数日前に、ASP.NET AJAXのサイドバイサイド問題が見つかりました。元のVS 2008と.NET 3.5ベータリリースについてのブログ投稿を読んでいただいていれば、このポストインストールパッチがこの問題点を修正しますと叫んでいたことを覚えていらっしゃると思います。

このバッチファイルをダウンロードして起動してください。起動には数秒しかかりませんし、今週の初めにSystem.Web.Extensions.dll(このアセンブリにはASP.NET AJAXを含みます)のバージョンポリシーで見つかった問題点を修正します。もしこのバッチファイルを起動しない場合は、ASP.NET AJAX1.0とVS2005でビルドされた既存のASP.NET 2.0プロジェクトは.NET 3.5ベータ2で出荷されたASP.NET AJAXの新しいバージョンを自動的に選択することになります。これは上手く起動・動作しますが、VS2005でビルドしたアプリケーションに無意識に.NET3.5依存を導入させることになります。バッチファイルを起動させると、新しいSystem.Web.Extensions.dllアセンブリのバージョンバインディングポリシーを変更して、明示的に.NET3.5に対してビルドしたプロジェクトと新しい.NET3.5 ASP.NET AJAXバージョンしか使えないようになります。

いいところは、これが発見されたサイドバイサイドの問題点が修正し、同じマシン上でVS2005とVS2008の両方でASP.NET AJAXを安全に開発できるようになることです。

既知の問題としては、最初にASP.NET2.0より古いプロジェクトを開いたとき、使用されているASP.NET AJAXのバージョンをVS2008が間違って検知してしまうことです。(特にVS2008にプロジェクトが.NET3.5を既に使用していると思わせてしまいます。)これを修正するには、初めてVS2008で既存のASP.NET AJAX 1.0 のWebサイトプロジェクトを開く時に、ベータ2ではいくつか追加の手順を行って頂く必要があります。最終のVS 2008リリースでこれらの手順を行う必要はありません

ASP.NET AJAX 3.5を使用するためにASP.NET AJAX 1.0 アプリケーションをアップグレード

ASP.NET AJAX 1.0を使用する既存のASP.NET 2.0アプリケーションを開くためにVS2008を使用する時は、オプションで.NET 3.5(とその中に含まれているASP.NET AJAXのバージョン)を使用するようにアプリケーションをアップグレードすることもできます。

VSのWebツールチームは最近ASP.NET AJAX 1.0 WebサイトとWebアプリケーションを.NET Framework 3.5にアップグレードについてのブログ投稿を公開しました。そこにはVS2008ベータ2を使用してこれを成功させるステップバイステップのインストラクションが書かれています。いいお知らせですが、ASP.NET AJAX 1.0 Webアプリケーションを.NET 3.5にアップグレードするためにコードを変更する必要が一切なく、終了までに数分しかかかりません。

ASP.NET AJAX 1.0 Webアプリケーションを.NET 3.5にアップグレードする時の一部として、使用する可能性のあるコンパイル済みのASP.NET AJAXコントロールライブラリも更新した方がいいと思います。ASP.NET AJAXコントロールツールキットのチームは今ASP.NET AJAXコントロールツールキットのAJAX 1.0と.NET 3.5バージョンを公開しています。 ここからダウンロードすることができます。

ASP.NET AJAX 1.0WebサイトとWebアプリケーションを.NET Framework3.5にアップグレードについてのブログ投稿でこのAJAXコントロールツールキットのASP.NET AJAX 3.5バージョンをVS2008のツールボックスに追加する方法をカバーしています。

ASP.NET AJAX 1.0アプリケーションをビルドするためにVS2008を使用 (マルチターゲティングを使用して)

 VS2008を使用して既存のASP.NET AJAX1.0を使用するASP.NET 2.0アプリケーションを開く時、代わりに.NET3.5にアップグレードしないで、ASP.NET 2.0 とASP.NET AJAX 1.0を使用してそれをビルドするためにVS2008の新しいマルチターゲティング機能を使用することもできます。

VSのWebツールチームが最近ASP.NET AJAX 1.0をターゲットにするためにVS2008を使用というブログ投稿を公開し、そこにはVS2008ベータ2を使用してこれを行うためのステップバイステップのインストラクションが書かれています。

  このブログ投稿に含まれているのは、VS2008ツールボックスとASP.NET AJAX 1.0とASP.NET AJAXコントロールツールキットサーバコントロールと紐づけするためにベータ2で行う必要がある手順が数多く書かれています。 VS2008の最終リリースでは、これを自動化し、ASP.NET AJAX 1.0プロジェクトとアイテムテンプレートをVS2008に追加してくれるセットアップパッケージをリリースします。

   何でVS2005だけを使う代わりにVS2008を使ってASP.NET AJAX 1.0アプリケーションをターゲットにすることが興味深いのか不思議に思っているかもしれません。この利点は、例えば、JavaScript インテリセンスJavaScript デバッグ、より良いWYSIWYG HTMLデザイナCSS 管理、改善されたコードエディタ、VSプロフェッショナルでユニットテスト、TFSでの継続統合サポートなどのような新しいVS2008IDE機能をいくつかそのまま活用することができ、しかもASP.NET AJAX 1.0アプリケーションを既存のサーバ上でビルドできるようにしてくれることです。(すぐに.NET3.5にアップグレードする必要がありません。)

まとめ

 .NET 3.5に今では全てのASP.NET AJAX 1.0機能に対してビルドインサポートが含まれています。今後もっと新しい機能の活用方法についても記述したブログ投稿を行っていこうと思います。

 ASP.NET AJAX 1.0でビルドした既存のASP.NETアプリケーションと、.NET3.5にビルドされた新しいバージョンのASP.NET AJAXの両方をターゲットとしたVS2008を使うことができます。上述のVS Webツールチームのブログ投稿により、両方を行う方法についてのステップバイステップのインストラクションで順番に理解できることと思います。

Hope this helps,

Scott

ScottGu's blog translated by Chica @ Wankuma 

※本翻訳に関しまして、Scottさんにはご了承頂いております。