Sayfalar

16 Ocak 2013 Çarşamba

Razor View Engine


Razor da Aspx gibi bir görüntüleme motorudur(view-engine). MVC3 den sonra (MVC3 ve MVC4) gelmiştir. 

Razor un avantajları:

  • Düzenli, etkileyici ve akışkan: Sayfadaki karakter sayısını en aza indirir, okunurlugu yuksek, duzenli ve kolay bir akıs saglar.
  • Öğrenmesi kolay: .net ve html kodlarını birbiri içerisinde zorlanmadan kullanmayı sağlar. .net kodlarına başlamadan sadece @ işaretini koyarsınız ve Razor kodları rahatlıkla ayrıştırır.
  • Yeni bir dil değildir: Yeni bir dil değil , bilinen bir dilin (C#, VB, Html) daha iyi ve anlaşılır olarak yazılmasını sağlar.
  • Çok iyi deyim tamamlama desteği (intellisense): Herhangibir kod editoru veya bir araç kullanmadan rahatlıkla geliştirilebilir olmasına ragmen, visual studio, tam bir deyim tamamlama(intellisense) destegi sunar.
  • Birim Test: Conroller ve ya web server gerektirmeden, birim test edilebilir özelligi vardır.

Örnek bir söz dizim:

<div>
    @for(int i = 0; i < 10; i++)
    {
        <div class="class_@(i)">
            <span>sayı @(i)</span>
        </div>
    }
</div>

Yukarıdaki kodun html cıktısı:
<div>
    <div class="class_0">
        <span>sayı 0</span>
    </div>
    <div class="class_1">
        <span>sayı 2</span>
    </div>
    ...
    ...
    ...
    <div class="class_9">
        <span>sayı 9</span>
    </div>
</div>

Aynı kodun Aspx deki soz dizimi
<div>
    <% for(int i = 0; i < 10; i++) { %>
        <div class="class_<%: i %>">
            <span>sayı <%: i %></span>
        </div>
    <% } %>
</div>

4 yorum:

  1. burdaki olay ne. razorda kodu öyle yazdığında ne oluyo yani kullanıcının gördüğü tarafta bişey oluyo mu.razor ön yüzde ne iş yapıyo yani

    YanıtlaSil
    Yanıtlar
    1. "razorda kodu öyle yazdığında ne oluyo yani"
      Razor View kullanılacaksa bu söz dizimi kullanılmalı zaten. Razor ile Aspx arasındaki işlevsel tek fark söz dizimidir.

      "kullanıcının gördüğü tarafta bişey oluyo mu"
      Hangi dili ve görüntüleme aracını (PHP,JAVA,ASP.NET, ...) kullanırsanız kullanın, kullanıcının gördüğü sadece HTML dir.

      "razor ön yüzde ne iş yapıyo yani"
      MVC mimarilerinde (dil farketmez), görüntüleme araçları sunucu taraflı dil kullanarak dinamik HTML cıktısı üretir(Aslında dinamik web kavramının anlamıda budur, sadece MVC ye özel birşey değil. MVC bu yapıyı sunan mimarilerden bir tanesidir). Örneğin, veritabanından gelen bir listeniz var, bu listeyi istemci tarafına bir veriyapısı olarak gecirdiginizde, bu veriyapısının içerisindeki veriyi sunucu taraflı bir dil kullanarak ve bunu istemci tarafında yaparak, dinamik olarak HTML cıktısı üretebilirsiniz.

      Sil
    2. Senin kodu okuman kolaylaşıyor ve daha hızlı hatayı bulup daha hızlı çözüm üretebiliyorsun :)

      Sil