SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

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

連載:ScottGu's Blog 翻訳


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

 本稿は、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で、私をフォローしてください。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5639 2011/01/24 17:11

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング