スコット・ガスリーが彼のブログで mention Razor a fair bit を始めていることに気づきましたが、それが私のスタイルに適しているかどうかはわかりません。
「標準」の種類のASP.Netマークアップ(コンテンツプレースホルダーとインラインコード)にかなり慣れている人にとっては、これはかなりなじみのないスタイルですが、多くの追加ページを管理する必要があり、マークアップがあまりわかりません。
他の人の気持ちは何ですか?新しいMVCページを作成する際に真剣に検討すべきだと思うものですか、それとも存在しない問題を解決しようとしているだけですか?
[免責事項:私はMVCとRazorのMicrosoft開発者の1人なので、少し偏見があるかもしれません:)]
Razorは、必要最小限の制御文字のみを使用する簡潔なテンプレート言語になるように設計しました。ビューの大部分は、「従来の」WebForms構文を使用して、同じコードよりも少ない文字数で表現できます。
たとえば、ASPX構文の次のコードスニペット:
<% if(someCondition) { %>
<ol>
<% foreach(var item in Model) { %>
<li><%: item.ToString() %></li>
<% } %>
</ol>
<% } %>
Razorでは次のように表現できます。
@if(someCondition) {
<ol>
@foreach(var item in Model) {
<li>@item.ToString()</li>
}
</ol>
}
ASPXバージョンには21の遷移文字(<%
および%>
)、Razorバージョンには3つしかありません(@
)
Razorの利点は次のとおりです。
ページ関連の概念も、ASPXにあるものから簡単にマッピングできます。
@functions { ... }
ブロックの代わりに<script runat="server"> ... </script>
さらに、Razorには、ASPXで利用できるものよりも優れていると言える便利な概念がいくつかあります。
@helper
マークアップを出力する関数を本当に簡単に作成するための関数@model
キーワードを記述することなく、ビューのモデルタイプを指定するための<%@ Page ...
ディレクティブと完全なクラス名本当の問題に取り組んできたと思います。これは、簡潔で標準に準拠したビューをより簡単に記述できるようにすると同時に、共通コードをリファクタリングする方法を提供することです。
もちろん、誰もが構文を好むとは限らないため、ASPXビューエンジンも完全にサポートしています。さらに、SparkおよびNHamlは、コミュニティの注目を集めている2つのサードパーティ製ビューエンジンです。次のブログ投稿では、さまざまなサービスを比較できます。 http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx
個人的には、使用されるエスケープ文字の数が減ることに本当に感謝しています。 <% %>
と比較すると@{}
を使用するのは非常に面倒で、構文的にも魅力的ではありません。
さらに、分離コードとページの定義全体を1つの@model model
に簡単に記述できます。
また、marcindが指摘したように、runat=server
を常に含める必要がないことも非常に良いことです。
全体として、Razorエンジンを使用することに本当に感謝しています。Razorエンジンを使用すると、開発が簡単になるだけでなく、コードが読みやすくなります。