.NET ile Server Side Handlebars Template Engine Kullanımı

Piyasada çok fazla alternatif olarak kullanabileceğimiz template engine bulunmaktadır ben handlebars’ı kullanmadan önce çok fazla araştırma yaptım ve bir sürü template engine kullandım sonunda seçimimi Handlebars’dan yana tuttum. Açıkçası template engine seçiminin projenin ihtiyaçları, syntax yada özelliklerden hangileri geliştiriciyi daha çok cezbeder ise tercih değişebilecektir.

.NET ile Server Side Handlebars Template Engine Kullanımı

handlebarsHemen lafı daha fazla uzatmadan örnekler ile yolumuza devam edelim yapacağımız basit örnekte her template engine’in yaptığı iş olan {{model_adi}}(bu kullanım handlebars’da geçerlidir diğer birçok template engine’de bu konuda aynı syntax’ı kullanmaktadır.) şeklinde yer tutucu(placeholder) belirliyoruz ve compile ederken geçtiğimiz model içerisinde model_adi diye bir özellik varsa bu özelliteki değer ile yer tutucu değişecektir.

Örnek 1 – Temel Kullanım

Üstteki kodda source değişkeninde template yer alıyor. Sonrasında Handlebars.Compile(source) adlı metoda source değişkenimizi parametre olarak geçiyoruz.

Daha sonra veri nesnesi içerisinde source değişkeninde tanımlı template içerisindeki yer tutucularla aynı isimde değişkenler tanımlayıp değerler veriyoruz böylelikte bizim veri nesnemiz içerisindeki değerler ile source adlı template içerisindeki yer tutucular yer değiştirecek. Compile işlemi template(veri) satırında yapılmaktadır ve compile sonucundada result adlı değişkene sonucumuz aktarılacaktır.

Sonuç


Örnek 2 – Partial Kayıt ve Kullanımı

Eğer sürekli tekrarlanan kodlarınız varsa kendi partial(kısmi) template’lerinizi oluşturup kolayca istediğiniz yerde kullanabilirsiniz.

Sonuç


Örnek 3 – Helpers(Yardımcı) Kaydı ve Kullanımı

Eğer sürekli tekrarlanan işleriniz var ise ve oluşturulacak bir helpers ile custom template’ler oluşturabiliriz böylelikle bu helper‘ları template içerisinde istediğimiz yerde kullanabiliriz bu örneğimizde a etiketini bir helper yardımı ile oluşturacağız.

RegisterHelper adlı metodu kullanarak link_to adında bir helper kaydı oluşturdum ve source değişkenine tanımladığım template içinde bu helper’a kullandım. link_to adında bu helper içerisinde url ve text özelliklerini kullandığımızı görüyoruz yani bu helper’i kullanmak için ve sağlıklı bir sonuç almak için url ve text özelliklerinin verilmesi gerekiyor.

Sonuç

Örnek 4 – Each ile döngü kullanımı

Her programlama dilinin vazgeçilmezlerinden biri olan each, foreach v.b. döngülerle aynı mantıkla çalışan handlebars #each bloğunun nasıl kullanıldığını bir örnek ile açıklayacağız. {{#each dizi}} kodlarınız {{/each}} şeklinde basit bir kullanımla dizileriniz üzerinde döngü işlemlerini yapıp kolaylıkla html elementleri üretebilirsiniz.

Üstteki kodu yorumlamak gerekirse {{#each people}} kısmında people adındaki dizi üzerinde döngü yardımıyla dönülüyor ve her bir kayıt için h1 etiketi oluşturuluyor çıktı olarak alttaki koda gözatabilirsiniz. #each döngüsü ile bilmeniz gereken bazı detaylarda var eğer döngünün index değerini almak isterseniz {{@index}} kullanımı ile o anki döngünün item’ına ait “0” tabanlı index değerine ulaşabilirsiniz. ayrıca eğer döngünün ilk item’i yada son item’ına özel yapmak istediğiniz işlemler var ise döngü içinde ilk item’da işlem yapmak için {{#if @first}} kodlarınız {{/if}} veya son item’da işlem yapmak istiyorsanız {{#if @last}} kodlarınız {{/if}} şeklinde kullanabilirsiniz.

Sonuç

Örnek 5 – If bloğu kullanımı

Her programlama dilinin vazgeçilmezlerinden biri olan if bloğunu handlebars template’i içerisinde nasıl kullanabildiğimizi göreceğiz. Bir üstteki örnekte #each bloğunu işlemiştik o koda #if bloğu eklemesi yaparak örneğimize devam edebiliriz {{#each dizi}} bloğunda {{#if @last}} veya {{#if @first}} şeklinde kullanımla döngünün ilk ve son item’ini yakalayabildiğimizi söylemiştik şimdi bunu bir örnek üzerinde görelim. İlk nesnemiz olan Murat ÖNER item’i için <h1>İlk: Murat ÖNER</h1> çıktısı verecek ve son item’i olan Sakine Salmanlı için ise <h1>Son: Sakine Salmanlı</h1> diye çıktı verecek bu arada if bloğunu boolean tiplerde yada javascript’deki gibi değişkeni verip aynı kontrolü sağlayabiliyorsunuz(değer varmı, undefined değilmi, null değilmi v.b.). Şimdi örneğimize geçelim.

Template İçinde Comment Kullanma

Eğer template içinde yorum satırnları kullanmak istiyorsanız ve bu yorumunuzun html çıktısında yer almasını istemiyorsanız {{! Yorumunuz buraya yazılacak. }} veya {{!– Yorumunuz buraya yazılacak. –}} şeklinde kullanabilirsiniz.

[fa class=”fa fa-github”][/fa] Kodların yer aldığı projeye buradan ulaşabilirsiniz.

5/5 - (3 votes)

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et