もっと Web 開発を簡単に ~ ASP.NET の 新しい View Engine “Razor” ~

さてさて、前回のブログポストでご紹介した IIS ExpressSQL Server Compact Edition (SQL CE) に引き続いて、第3弾のアナウンスが ScottGu’s Blog で行われました。

Introducing “Razor” - a new view engine for ASP.NET
https://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

今回は、この “Razor” について、上記ブログの超簡単翻訳抜粋も含めて簡単にご紹介します。

 ASP.NET の新しい View Engine "Razor"

View Engine とは、つまりは HTML を生成するサーバー側の処理モジュールです。ASP.NET MVC では、デフォルトの View Engine に ASP.NET Web フォームと同じ .aspx, .ascx, .master ファイルテンプレートエンジンを使っています。

現在、コードネーム "Razor" と呼ばれる新しい View Engine を準備していて、IIS Express, SQL Compact に合わせて、近日中に Public Beta がリリースされる予定です。

この新しい View Enginge "Razor" の開発目標は下記の通りです。

  • 文字数やキー入力を最小限にして、素早く流れるように思うがままにコーディングできることを目指す
  • 既存の言語や HTML のスキルを生かして、習得が簡単で、生産性の高い開発を可能にする
  • C#/VB などの既存の開発言語のスキルを生かし、かつ HTML 記述を生かしたテンプレートマークアップ構文の提供を目指す
  • テキストエディタベースの記述を可能とし、特定の開発ツールを不要とする
  • Visual Studio 2010 / Visual Web Developer 2010 のアップデートで、"Razor" のインテリセンスサポートを使用可能とする
  • コントローラや Web サーバーを使わずに、View の Unit Test を可能にする

また、大きな特徴としては下記があげられます。

  • "Razor" だけで Web ページを記述することも可能。拡張子は .cshtml (C# を使った記述) や .vbhtml (VB を使った記述)。
  • 次期 ASP.NET MVC では、ウィザードベースで View Engine の選択が可能になり、ここで "Razor" が選択可能になる予定。つまり、"Razor" 記述の Web ページを MVC フレームワークで容易に使っていくことが可能。
  • 次期 ASP.NET MVC での View Engine の選択は View 単位で可能。つまりひとつのプロジェクト/サイト内で、デフォルトの .aspx View Engine と "Razor" の混在も可能となる予定。

 

"Razor" のサンプルコード及び、それと同じ記述をした PHP や .aspx が下記になります。

サンプル1:Razor vs. PHP

<< Razor >>
<html>
<body>
    Hello at @DateTime.Now
</body>
</html>

<< PHP >>
<html>
<body>
    Hello at <?php echo date("F j, Y, g:i a") ?>
</body>
</html>

サンプル2:Razor vs. aspx

<< Razor >>
<ul id="products">
  @ foreach(var p in products) {
    <li> @ p.Name ($ @ p.Price)</li>
  }
</ul>

<< .aspx >>
<ul id="products">
  <% foreach(var p in products) { %>
    <li> <%= p.Name %> ($ <%= p.Price %> )</li>
  <% } %>
</ul>

 

"Razor" は非常にシンプルで、タイピング量も他に比べて少なくなる傾向にあることがお分かりいただけるかと思います。
特に、これまでの .aspx で使用していたインラインのコードブロック(コードナゲット記述)では、開始 “ <% ” と終了 “ %> ” を記述する必要があり、これが意外と面倒になっていましたが、"Razor" では @ ひとつで済むところが魅力ですね。

IIS Express, SQL Server Compact Edition と合わせて、ぜひ ASP.NET の新しい View Engine “Razor” も Public Beta でお試しください。(Public Beta は近日中にリリースです!!)