[Sorumluluk reddi: MVC ve Razor'daki Microsoft geliştiricilerinden biriyim, bu yüzden biraz önyargılı olabilirim :)]
Razor'u yalnızca gerekli minimum miktarda kontrol karakterini kullanan kısa bir şablon dili olarak tasarladık. Görüşlerinizin büyük bölümlerinin "geleneksel" WebForms sözdizimi kullanılarak aynı koddan daha az karakterle ifade edilebileceğini söyleyebilirim.
Örneğin, ASPX sözdiziminde aşağıdaki kod parçacığı:
<% if(someCondition) { %>
<ol>
<% foreach(var item in Model) { %>
<li><%: item.ToString() %></li>
<% } %>
</ol>
<% } %>
Razor'da şu şekilde ifade edilebilir:
@if(someCondition) {
<ol>
@foreach(var item in Model) {
<li>@item.ToString()</li>
}
</ol>
}
ASPX sürümü 21 geçiş karakterine ( <%
ve %>
) sahipken, Razor sürümünde yalnızca üç ( @
)
Razor'un avantajlarının şu şekilde olduğunu söyleyebilirim:
- Normal C # kodu yazma biçiminize çok benzeyen kısa sözdizimi (Phil Haack tarafından Asxp'i Razor sözdizimi ile karşılaştıran aşağıdaki son blog gönderisine bakın: http://haacked.com/archive/2011/01/06/razor- syntax-quick-reference.aspx )
- Çıktının otomatik HTML kodlaması (sizi html enjeksiyon saldırılarından korumaya yardımcı olur)
- Dengesiz etiketlerden kaçınmanıza yardımcı olan işaretlemenizin yerleşik (% 100 olmasa da) doğrulaması
Sayfayla ilgili kavramlar, ASPX'te sahip olduklarınızdan da kolayca eşleşir
- Gördüğünüz gibi satır içi koda hala izin veriliyor
- Bölümler (isteğe bağlı olabilir) içerik yer tutuculara eşdeğerdir
- Ana sayfalar yerine düzen sayfaları
- Tam ve kısmi görünüm kavramları aynıdır
@functions { ... }
yerine bloklar <script runat="server"> ... </script>
Ek olarak, Razor'un ASPX'te mevcut olandan daha iyi olduğunu söyleyebileceğim bir dizi yararlı kavram vardır:
@helper
işaretleme yayan işlevlerin gerçekten kolay oluşturulması için işlevler
@model
<%@ Page ...
tam sınıf adıyla bir yönerge yazmak zorunda kalmadan görünümünüzün model türünü belirtmek için anahtar sözcük
Gerçek bir sorunu çözdüğümüzü düşünmek isterim; bu, size daha kolay özlü ve standartlara uygun görüşler yazmanıza izin verirken, aynı zamanda ortak kodu yeniden düzenlemenin yollarını da sunacak.
Elbette, herkes sözdizimini tercih etmeyecektir, bu yüzden ASPX görünüm motorunu da tam olarak destekliyoruz. Ek olarak, önemli topluluk takibinden zevk alan iki 3. taraf görüntüleme motoru olan Spark ve NHaml'ı da kontrol edebilirsiniz. Aşağıdaki blog yazısı, farklı tekliflerin iyi bir karşılaştırmasına sahiptir: http://blogs.msdn.com/b/coding4fun/archive/2010/10/04/10070953.aspx