Makale Özeti

Bu makalede standart kontroller ve data(veri) kontrolleri ailesinin yeni üyelerini kısaca tanıyacağız.

Makale

YENİ ASP.NET 2.0 KONTROLLERİ - 1 (STANDART KONTROLLER & DATA KONTROLLERİ)

Microsoft, ASP.NET 1.x ile birlikte hayatımızı gerçekten kolaylaştıracak pek çok kontrole de imzasını atmıştı. Bu kontroller sayesinde normalde satırlarca kod yazarak yapabileceğimiz işleri çok kısa sürede yapmaya başladık. Bir süre sonra Microsoft ASP.NET'in 2.0 versiyonunu duyurduğunda çoğumuzun en çok merak ettiği şeylerden birisi de bu kontrollere yenilerinin eklenip eklenmediği ve önceki kontrollerdeki bazı eksikliklerin giderilip giderilmediğiydi. Beklenenden daha iyisi oldu, düzinelerce yeni kontrol ile birlikte gelen ASP.NET 2.0 gerçekten beklentilerin üzerinde kontrollerle karşımızda.


Bu makalede standart kontroller ve data(veri) kontrolleri ailesinin yeni üyelerini kısaca tanıyacağız.


Bölüm 1: Standart Kontroller

 
ImageMap Kontrolü

ImageMap kontrolü alışageldiğimiz Image kontrolünün belirli noktalarında tıklanabilir alanlar(hot spot) oluşturabileceğimiz genişletilmiş bir versiyonudur. ImageMap kontrolünü kullanarak ihtiyacınız olduğu kadar dikdörtgen, daire ve çokgen biçimlerinde hot spotlar oluşturabilirsiniz. Kullanıcının click olayına tepki olarak bir postback olayı yaratabilir yahut kullanıcıyı doğrudan bir başka URL'ye yönlendirebilirsiniz.


BulletedList Kontrolü

BulletedList kontrolü öyle devrimci nitelikler sunmasa bile, eğer sayfalarınızda madde imi kullanan listeler oluşturmayı düşünüyorsanız, işlemlerinizde size oldukça zaman kazandırabilecek bir kontroldür. Ayrıca veri bağlama kabiliyetine sahip olması, madde imlerini daire, kare, rakam, romen rakamı, resim vb. gibi belirlemenize olanak sağlamasıyla da oldukça kullanışlıdır. DisplayMode özelliği sayesinde liste elemanlarını standart metin, Hyperlink veya LinkButton olarak kullanmanıza da olanak sağlar.


HiddenField Kontrolü

HiddenField kontrolü HTML'den alışageldiğimiz <input type=hidden> elementini oluşturur. Ancak bu kontrol sayesinde bu elementi programlama imkanını elde ediyoruz.


FileUpload Kontrolü

FileUpload kontrolü, ziyaretçinin kendi bilgisayarında bulunan bir dosyayı seçip, sunucuya upload edebilmesi için tasarlanmıştır. Bu amaçla kullanılmak üzere hepimizin aşina olduğu bir metin kutusu ve bir Gözat düğmesi oluşturur. Sadece bu haliyle bile bizi satırlarca kod yazmaktan kurtarabilecek bir kontrol olmasının yanısıra programlanabilmesi sayesinde dosya boyutu kontrolü, farklı isimle kaydedebilme... gibi pek çok seçeneği de olanaklı kılar.

Microsoft© Visual Studio© 2005 geliştirme ortamında FileUpload kontrolünün görünümü aşağıdaki gibidir:




Wizard Kontrolü

Wizard kontrolünün kısaca; bir gezinti(navigasyon) sistemi sayesinde birbiriyle alakalı adımları birbirine bağlayan bir kullanıcı arayüzü sağlar. İşlem adımlarını istediğiniz şekilde yapılandırabileceğiniz gibi navigasyon sistemi üzerinde de değişiklikler(Buton, Resim, Yazı gibi) yapılması mümkündür.


MultiView ve View Kontrolü

MultiView ve View kontrolleri birlikte kullanıldığı için ikisini aynı yerde toplayalım. MultiView kontrolü içerisinde bulunan View kontrollerini yönetir. Web programcılığı haricinde diğer programlama dillerinde sıkça rastladığımız Tabs kontrollerine benzetilebilir. View kontrollerinin her birinin içeriği istenen şekilde doldurulabilir ve istenilen zamanda MultiView kontrolünün ActiveViewIndex özelliği kullanılarak istenilen View kontrolünün içeriği görüntülenebilir. Aynı anda sadece tek bir View görüntülenebilir.

Sample
MS Visual Studio® 2005 - Tasarım modunda iken MultiView kontrolü
içerisinde iki adet View kontrolünün görünümü.

Substitution Kontrolü

Substitution kontrolü için "her zaman taze veri içerir" dersek sanırım ne işe yaradığı hemen anlaşılacaktır. Bilgiyi cache bellekten almak yerine her seferinde yeniden oluşturur. MethodName özelliğine geçerli bir fonksiyon ismi atandıktan sonra, sayfa sunucudan her talep edilişinde bu fonksiyon çağırılır ve geri dönüş değeri otomatik olarak Substitution kontrolünün içerisinde görüntülenir. Bu kontrol sayesinde sayfanın geri kalanı cache bellekten gelmiş olsa bile Substitution kontrolünün içeriğinin taze olduğundan emin olabilirsiniz.

Substitution kontrolünün kullanımına ait basit bir örnek verelim:

     
    ' Sayfanın en başına yazılacak (duration="6" denilmesi cache'deki bilginin 6 sn.'de bir tazelenmesi anlamına gelir.)
<%@ outputcache duration="6" varybyparam="none" %>
 
 
' PageLoad Fonksiyonu
  Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    ' cacheLabel bilgiyi cache bellekten alıyor.
    cacheLabel.Text = DateTime.Now.ToString()
  End Sub
   
 
' Substitution kontrolünün MethodName özelliğine atayacağımız fonksiyon
  Shared Function GetCurrentDateTime(ByVal Context As HttpContext) As String
    Return DateTime.Now.ToString()
  End Function
   
 
' body tagının içerisi
 

<form id="Form1" runat="server">
    <h3>Substitution Class Example</h3>

    <p>Sayfanın bu kısmında önbellek(cache) bilgisi kullanılmıyor:</p>

    <asp:substitution id="Substitution1"       methodname="GetCurrentDateTime"33
      runat="Server">
    </asp:substitution>

    <br />

    <p>Bu kısımda ise ön bellek bilgisi kullanılıyor :</p>

    <asp:label id="CacheLabel"
       runat="Server">
    </asp:label>

    <br /><br />

    <asp:button id="RefreshButton"
      text="Refresh Page"
      runat="Server">
    </asp:button>

</form>

 
 
     
    Ekran görüntüsü aşağıdaki gibi olacaktır:
   


Bölüm 2: Data(Veri) Kontrolleri
 
ImageMap Kontrolü

ASP.NET 1.x ile birlikte hayatımıza giren DataGrid kontrolü kendi zamanı için gerçekten iyiydi. Hala kullanılabilir olmasına karşın, artık Visual Studio 2005 araç kutusunda varsayılan kontrol olarak sunulmuyor. Bunun nedeni ise DataGrid'ten çok daha işlevsel olan yeni bir kontrolün ortaya çıkmış olmasıdır. GridView adındaki bu kontrol her açıdan DatGrid kontrolüne üstünlük sağlıyor. GridView kontrolüyle birlikte sayfalama(paging) ve sıralama(sorting) fonksiyonları tamamen otomatikleştirildi. Ayrıca GridView kontrolü, BoundField, ButtonField , CheckBoxField, CommandField, HyperLink, ImageField ve TemplateField olmak üzere çok çeşitli sütun tiplerini de kullanıma sunuyor.

Ne yazık ki, GridView kontrolü yapmakta olduğu işlemlerin çoğunu postback ve sunucu taraflı çalışan kodlar ile yapmakta ve bu da performansın biraz düşmesine neden oluyor. Bununla birlikte EnableSortingAndPagingCallback özelliği sayesinde sunucu taraflı sıralama ve sayfalama rutinlerini tüm sayfaya postback işlemi uygulamaksızın yerine getirebilir. Yani sayfadaki diğer herşey değişmeden dururken sadece GridView kontrolü için postback olayı çalışır.

GridView kontrolü, ayrıca kaydı düzenleme, kayıt silme, kayıt ekleme gibi fonksiyonları ve bunları düzenleme imkanını da sunar.


ImageMap Kontrolü

DetailsView kontrolü sayesinde bir kaydın detaylarını sayfalarda gösterebilmekteyiz. Her veri satırı kaydın bir alanındaki bilgiyi listeler. Ayrıca kayıtları düzenleye, silmeye ve yeni kayıt ekleyebilmeye olanak sağlar.

Geliştiriciler tarafından daha çok GridView kontrolünde listelenen kayıtlardan birisi seçildiğinde kayda ait detayların gösterilmesi amacıyla kullanılmaktadır. Aşağıda bu durum şematize edilmiştir.


ImageMap Kontrolü

FormView kontrolüdiğer view kontrollerine benzer bir işleve sahiptir. FormView şablonlar(template) ile yapılandırılmalıdır, aksi halde çalışma zamanında hiç bir şey görünmeyecektir. Eğer Visual Studio 2005 kullanıyorsanız bu sizin için çok kolay bir hale getirilmiştir; design modunda iken görsel olarak bu şablonları yapılandırabilirsiniz. FormView komtrolü 7 adet şablon içerir. Bunlar: EditItemTemplate, EmptyDataTemplate, FooterTemplate, HeaderTemplate, ItemTemplate, InsertItemTemplate ve PagerTemplate şablonlarıdır.


ImageMap Kontrolü

Bir SQL veritabanını kullanıma sunar. Bazen hiç, bazen de çok az bir kod yazarak veritabanınızı projeye dahil edebilirsiniz.


ImageMap Kontrolü

Bir Access veritabanını kullanıma sunar. Bazen hiç, bazen de çok az bir kod yazarak veritabanınızı projeye dahil edebilirsiniz.


ImageMap Kontrolü

Tüm DataSource kontrolleri oldukça kullanışlıdır, fakat ölçeklenebilir uygulamalar çoklu katmanlar gerektirir ve bundan dolayı sıklıkla doğrudan veritabanına bağlanılamaz. İşte bu noktada devreye ObjectDataSource kontrolü giriyor. Bu kontrol sayesinde veritabanı erişmleri, iş kuralları(business rules) ve diğer detayları sarmalayabilirsiniz. Orta ve büyük ölçekli uygulamalar için önerilmektedir.


ImageMap Kontrolü

Bir XML veri kaynağını kullanıma sunar.


ImageMap Kontrolü

İnceleyeceğimiz son data kontrolü de SiteMapDataSource. Bu kontrol bir web sitesinin navigasyonel yapısını sunar. Varsayılan olarak site yapısı bir XML dosyasında sunulmasına karşın bir veritabanı yahut özel veri kaynaklarına da bağlanabilir. Kontrolün kullanacağı veri kaynağı SiteMapProvider özelliği ile belirlenir. Bu kontrol, navigation kontrolleri ile bağlı olarak çalışabilmektedir.


Böylece ASP.NET 2.0 ile birlikte gelen standart kontroller ve data kontrolleri hakkında temel bir bilgi kazandığınız kanaatindeyim. Herkese faydalı olması dileğiyle...

Sorularınız için sbagdat@gmail.com adresini kullanarak benimle iletişim kurabilirsiniz.