連載:〜ScottGu氏のブログより〜Microsoft AJAX CDNのお知らせScott Guthrie 著/Chica 訳2009/10/02 |
|
|
今日(2009年9月15日)の早い時間に、ASP.NETチームがAJAXライブラリ(jQueryやASP.NET AJAXなど)に対してキャッシュのサポートを提供する新しいMicrosoft AJAX CDN(コンテンツ・デリバリ・ネットワーク)サービスを公開しました。このサービスは無償で、登録など何も必要なく、商業用としても非商業用としても使用可能です。
CDNが提供するものは?
コンテンツ・デリバリ・ネットワーク(CDN)は、世界中の主要なインターネットのネットワーク・ポイントに戦略的に設置された“エッジ・キャッシュ(edge cache)”で成り立っています。これらの“エッジ・キャッシュ”は、画像、動画、CSS、JavaScriptファイルなどのすべてのコンテンツ・タイプをキャッシュし、配信するために使用できます。
CDNを使用すると、ブラウザがより素早くコンテンツを取得またはダウンロードできるため、Webサイトを利用するエンドユーザーのパフォーマンスを大幅に改善できます。例えば、ある画像へのブラウザからのリクエストで、インターネットを横断してWebサーバからダウンロードしてもらう代わりに、CDNでは、顧客からネットワークのホップ数がたった1つだけになるくらい近くの“エッジ・キャッシュ”サーバにより、直接そのリクエストに対応できます(これにより応答が非常に速くなるので、ページがより速くロードされます)。
Microsoft AJAX CDNが提供するものは?
Microsoft AJAX CDNでは、jQueryやASP.NET AJAXのスクリプト・ライブラリを自分のWebサイトへ非常に簡単に追加でき、そしてそれらは、世界中に何千個所もあるエッジ・キャッシュ・サーバの1つからも自動的に配信されます。
例えば、もしMicrosoft AJAX CDNからjQueryを使用したい場合は、以下のようなURLを使用した標準的なスクリプト・タグをページに追加するだけです。
|
ブラウザがスクリプト・ファイルをリクエストした場合、自動的にエンドユーザーに一番近いCDNの“エッジ・キャッシュ”サーバから提供されます。つまり、
- そのリクエストは、あなたのWebサーバにアクセスしなければならない場合に比べて、非常に高速に処理されます(エンドユーザーのページのロードが非常に速くなります)
- ファイルはマイクロソフトが回線費用を支払っているサーバから来るので、このファイルの帯域幅に対して支払いは不要です(コストを削減できます)
- スクリプトは複数のWebサイト間で簡単にキャッシュできるため、ファイルをリクエストしたWebサイトにユーザーがすでにアクセスしていた場合、ダウンロードすら必要ないかもしれません(その場合はすでにブラウザのキャッシュにあります)
すでにCDNキャッシュにロードされているJavaScriptライブラリ(および関連URL)の全一覧は、ここ(www.asp.net/ajax/cdn)から取得できます。
新しいバージョンのASP.NET AJAXを出荷する際はCDN内の利用可能なライブラリを更新し、またASP.NETおよびVisual Studioで出荷するすべてのJavaScriptファイル(jQuery、jQuery検証プラグイン、そのほか今後出荷する追加ライブラリを含む)が含まれるように更新は継続します。
CDNサービスは無償であり、コミュニティにおいて、誰でも商業・非商業両方の目的で利用できます。利用するための登録も必要ありません。
ASP.NET 4.0スクリプト・マネージャとともにMicrosoft AJAX CDNを使用
<script>要素を使用して直接スクリプト・ファイルを参照できるのに加え、ASP.NET 4.0では、<asp:ScriptManager/>サーバ・コントロールを使用するASP.NET Webフォームのアプリケーションから、CDNが簡単に利用できます。
ASP.NET 4.0の<asp:ScriptManager>コントロールには、EnableCdnという新しいプロパティが含まれています。このプロパティにtrueの値を割り当てると、アプリケーションは自動的にMicrosoft CDNを使用してJavaScriptファイルを使用します(図1)。
図1 |
ScriptManagerでCDNを有効にすると、アプリケーションは通常System.Web.dllまたはSystem.Web.Extensions.dllアセンブリから取得するすべてのJavaScriptファイルを、代わりにCDNから取得します。これにはASP.NET AJAXのJavaScriptおよび、ビルトインのWebフォームのJavaScriptファイルの両方が含まれています(例:クライアント側の検証にはWebUIValidation.jsファイル、そしてTreeView、MenuなどのコントロールにはそのJavaScriptファイル)
これによりエンドユーザーに対して素晴らしいパフォーマンスの改善を提供できます。つまり、ASP.NETのWebサイトにアクセスしたユーザーが、もしCDNを使用するほかのASP.NETのWebサイトを訪れていた場合、これらのファイルを再ダウンロードする必要がありません。
■CDNからのASP.NET AJAXプレビュー 5を使用
AJAX CDNサイトの公開に加え、ASP.NETチームは最近、ASP.NET AJAXプレビュー 5もリリースしました。ASP.NET AJAXプレビュー 5(サンプル・コード付き)はCodePlexからダウンロードできます(http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770)
単純にCDNをポイントする以下のライブラリ・タグを追加すると、ASP.NET AJAXライブラリを現在でも利用できます。
|
これらのスクリプト・タグは、ASP.NET AJAXライブラリ(URLの/0909/の部分はASP.NET AJAXのバージョンがリリースされた年月を表します)の2009年9月リリースのベータ版を参照します。
ASP.NET AJAXライブラリを参照するスクリプト・タグを追加した後、ページ内でライブラリを使用開始できます。例えば、以下のコードは、クライアントのDataViewコントロールをアタッチし、ページのbody内のDIV要素へ写真の配列を表示します。
図2 |
“photos”のidを持つDIV要素には、写真の配列にある各写真をフォーマットするためのテンプレートが含まれています。写真の要素の宣言は次のようになります。
図3 |
DataViewがレンダリングされるとき、写真のDIV要素のコンテンツには写真の配列にある各写真が表示されます。以下のように写真が表示されます。
図4 |
ASP.NET AJAXは純粋なJavaScriptライブラリであるため、上記のコードはASP.NET Webフォーム、ASP.NET MVC、HTML、またクラシックのActive Server Pageとさえも完ぺきにうまく動作します。またそのコードは、現代のすべてのブラウザで動作します。
CodePlexプロジェクトからサンプル・コードをダウンロードすれば、ASP.NET AJAXプレビュー 5について、より詳細を習得できます(http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770)。
以下は、ASP.NET AJAXプレビュー 5の機能をより深く掘り下げているブログ投稿です。
- Microsoft Ajax 4 プレビュー 5: DataViewコントロール − Dave Reed氏は、プレビュー 5に追加された新しいダイナミック・テンプレートおよびプレースホルダ機能の活用方法について説明しています。
- ASP.NET Ajax プレビュー 5 とUpdatePanel − Jim Wang氏は、標準のASP.NET UpdatePanelコントロールを使用している既存のWebサイトとプレビュー 5をどのように使用できるかを説明しています。
- Microsoft Ajax 4.0 プレビュー 5でクラス・ブラウザを構築 − Bertrand Le Roy氏は、再帰テンプレート(recursive template)を含むプレビュー 5のいくつかの新機能を利用することで非常に素晴らしいAjaxクラス・ブラウザを構築しています。
- DataContextで変わる、あなたのデータと生活(えっと、まあそんな感じ、でも実際はそうでもない) − Jonathan Carter氏は、Ajax DataViewおよびDataContextの詳細を探究した、いくつかの素晴らしい投稿をしています。
まとめ
Microsoft AJAX CDNにより、ASP.NET AJAXまたはjQueryを使用するASP.NET WebフォームやASP.NET MVCアプリケーションのパフォーマンスを大幅に改善できます。このサービスは無償で、登録などは必要なく、商業・非商業の両方の目的で使用可能です。
ASP.NET 4.0により、ASP.NET Webフォームの開発者は特にCDNの利用が簡単になります。ScriptManagerコントロールのプロパティを1つ設定するだけで、すべてのビルトインのASP.NET JavaScriptファイルへのリクエストをCDNへリダイレクトでき、Webフォーム・アプリケーションのパフォーマンスを改善できます。
Hope this helps,
Scott
P.S. ブログに加え、Twitterを使った素早い投稿やリンクの共有も行っています。http://www.twitter.com/scottguにて、わたしをTwitterでフォローできます(@scottguがわたしのTwitter名です)。
「〜ScottGu氏のブログより〜」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|