[Penafian: Saya salah satu pengembang Microsoft di MVC dan Razor, jadi saya mungkin agak bias :)]
Kami merancang Razor menjadi bahasa templat yang ringkas yang hanya menggunakan sedikit karakter kontrol yang diperlukan. Saya akan mengatakan bahwa sebagian besar pandangan Anda dapat diekspresikan dengan karakter yang lebih sedikit daripada kode yang sama menggunakan sintaks WebForms "tradisional".
Misalnya cuplikan kode berikut dalam sintaks ASPX:
<% if(someCondition) { %>
<ol>
<% foreach(var item in Model) { %>
<li><%: item.ToString() %></li>
<% } %>
</ol>
<% } %>
Dapat diungkapkan sebagai berikut di Razor:
@if(someCondition) {
<ol>
@foreach(var item in Model) {
<li>@item.ToString()</li>
}
</ol>
}
Sementara versi ASPX memiliki 21 karakter transisi ( <%
dan %>
), versi Razor hanya memiliki tiga ( @
)
Saya akan mengatakan bahwa keuntungan dari Razor adalah sebagai berikut:
- Sintaks singkat, yang sangat mirip dengan cara Anda menulis kode C # biasa (lihat posting blog terbaru berikut ini oleh Phil Haack membandingkan Asxp dengan sintaks Razor: http://haacked.com/archive/2011/01/06/razor- sintaks-cepat-referensi.aspx )
- Pengodean output HTML otomatis (yang membantu melindungi Anda dari serangan injeksi html)
- Validasi markup bawaan (meskipun tidak 100%) yang membantu Anda menghindari tag yang tidak seimbang
Konsep terkait halaman juga memetakan dengan mudah dari apa yang Anda miliki di ASPX
- Seperti yang Anda lihat, kode inline masih diperbolehkan
- Bagian (yang bisa opsional) setara dengan tempat penampung konten
- Halaman tata letak, bukan halaman Master
- Konsep tampilan penuh dan parsial adalah sama
@functions { ... }
blok, bukan <script runat="server"> ... </script>
Selain itu Razor memiliki sejumlah konsep berguna yang menurut saya lebih baik daripada yang tersedia di ASPX:
@helper
fungsi untuk pembuatan fungsi yang memancarkan markup dengan sangat mudah
@model
kata kunci untuk menentukan jenis model tampilan Anda tanpa harus menulis <%@ Page ...
direktif dengan nama kelas lengkap
Saya ingin berpikir bahwa kami telah mengatasi masalah nyata, yang memungkinkan Anda untuk lebih mudah menulis tampilan yang ringkas dan sesuai standar sementara pada saat yang sama memberi Anda cara untuk mengubah kode umum.
Tentu saja, tidak semua orang akan menyukai sintaks, itulah sebabnya kami juga mendukung penuh mesin tampilan ASPX. Selain itu, Anda dapat melihat Spark dan NHaml, yang merupakan dua mesin tampilan pihak ketiga yang menikmati banyak pengikut dari komunitas. Entri blog berikut memiliki perbandingan yang baik dari berbagai penawaran: http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx