Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

ASP.NET MVC 3: Razorでのサーバーサイドのコメント

連載:ScottGu's Blog 翻訳

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/12/17 14:00

 本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。原典:ASP.NET MVC 3: Server-Side Comments with Razor。

 本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。

 原典:ASP.NET MVC 3: Server-Side Comments with Razor

ASP.NET MVC 3:Razorでサーバーサイドのコメント

 今週の初めに、ASP.NET MVC 3 リリース候補版を出荷しました。これは『go live』デプロイをサポートし、ASP.NET MVC 3 ベータ版および最初のプレビューリリースで導入した機能に、非常に素晴らしい数多くの改善が行われています。

 この投稿は、ASP.NET MVC 3ベータ版/RCの新機能を、いくつか詳細に紹介していく『ミニ投稿』シリーズの1つです。

 本日の投稿では、最近導入した小さいけれど便利な、Razorでのサーバーサイドコメントサポートの機能について話します。

なぜサーバーサイドコメントなのか?

  • シナリオ:
  •  ビューテンプレートで作業していて、一時的にいくつかのコンテンツまたはビューコードを無効にしたいとします(問題点を追跡するため、または一時的にサイトの出力を変更するため)。

 HTMLは、クライアントサイドのコメント(<!-- -]-[)をサポートしており、それを使用することで、HTMLコンテンツのパース/実行/表示をしないようにできます。多くのシナリオでは、この方法を使用すると問題があり、コメント内のコンテンツでも不必要にサーバーからクライアントへ送られ、コメント内のサーバーサイドのコードも、サーバー上で実行されてしまいます。

 ASP.NET Webフォームは、サーバーサイドコメントの文法<%-- --%>)をサポートしており、これを使用するとページ内で、コンテンツ/コード/コントロールを完全に無効にできます。サーバーサイドコメントを使用すると、ASP.NET Webフォームのコンパイラーはブロック内のすべてを、パース時に完全に無視し、ページを組み立てる際に完全にそのコンテンツを削除します(まるでそこにはコンテンツが全くなかったかのように)。ここにある私の昔のブログ投稿で、詳細を確認できます。

 今週聞かれた質問が、『Razorでこれと同じことはできないのか?』でした。答えは「もちろんできます!」です。

Razorでサーバーサイドのコメント

 Razorでは、@*コメント*@文法(C#およびVBテンプレートのどちらでも動作します)内の、ビューのコード/コンテンツ/範囲をすべてラップできるようになりました。この文法により、Razorのパーサーが、そのブロック内のもの全てを無視して、まるで何もなかったかのように取り扱います(つまり何も実行されないので、実行時にパフォーマンスのオーバーヘッドが発生せず、クライアントには何も送られません)。

 例えば、以下では、いくつかのHTMLコンテンツとサーバーコードを、@* *@ブロック内にラップしました。これは、ここに何も無いのと同じことになります。

caption

 上記では、Visual Studio(今週のASP.NET MVC 3 RCビルド版から対応)が、エディタ内で、よりそれらを見やすくするためにコメントを色づけしていることが分かります(デフォルトは緑)。

 Visual Studioでは、テキスト/コードのブロックを、簡単にコメント/コメント解除するのに、テキストエディターのツールバー上のコメント/コメント解除ボタンが利用できます。例えば、テキストエディター内で、上記の@* *@コメントブロックを選択して、[コメント解除]ツールバーボタン(または「Ctrl+K」「Ctrl+U」を押して)で、その範囲をコメント解除します。

caption

 これを行うと、エディタは自動的にそのブロックを、コメント解除します(キーストロークが少し減ります)。

caption

 またエディター内の別のテキスト/コード範囲を選んで、[コメント]ツールバーボタンをクリックするか、「Ctrl+K」「Ctrl+C」を押して、サーバーサイドコメントを適用します。

caption

 これを行うと、エディタは自動的にそのブロックをコメントします(キーストロークが少し減ります)。

caption

まとめ

 サーバーサイドコメントは、小さいけど便利な機能で、様々な場面で役立ちます。Razorは、サーバーサイドコメントを実行時に有効化し、Visual Studioはそれをサポートするツールを開発時に提供します。

 Hope this helps,

 Scott

 P.S. ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト Chica(チカ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

バックナンバー

連載:Scott Guthrie氏 Blog翻訳

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5