Makale Özeti

ASP.NET in en önemli özelliklerinden birisi ile tanışmak için tıklayın...

Makale


Sunucu taraflı yazılım geliştirme teknolojilerinden olan ASP bize birçok kolaylıklar getirmişti, artık kullanıcılara dinamik içerik sunan sayfalar yapılabiliyordu. Teknolojinin işleyişi html olara bulunan sayfanın dinamik olarak yüklenen kısımların asp program kodu eklemekti. Visual Interdev gibi görsel editörler kullanarak <% %> işareteri arasındaki kısımların sunucu tarafında çalışan kodlar olduğunu anlayabiliyor html kodlarından ayırt edip gerekli değişiklikler veya düzeltmeleri yapıyorduk. Fakat zaman geçtikçe bir sayfada yer alan sunucu taraflı kod sayısı oldukça büyüdü, bir de aynı kod üzerinde çalışan yazılım geliştirici sayısı arttı. Sonuç; html kodları arasına serpiştirilmiş onlarca bekli de yüzlerce sunucu taraflı kod. İşte .Net platformuna geçişte bu sorun da giredildi. Artık ASP.NET ile içeriği programdan kodundan ayrıştırmak mümkün.
Nasıl içeriğin program kodundan ayrıştırıldığına geçmeden bunun ne gibi avantajları olduğunu listemenin makalenin önemini anlatmakta yararlı olacağını düşünüyorum;

  • Uygulama geliştirme grubuna ait çalışanlar tamamen kendi geliştirdiği program kodları üzerinde çalışabilirler, böylelikle ekipte bulunan hiç kimse diğerinin yaptığı çalışmadan dolayı engellenmez, örneğin tasarım ile uğraşan kişi bu işini sürdürürken aynı sayfada yer alan fonksiyonalite için bir yazılım geliştirici eş zamanlı çalışa yürütebilir.
  • İçeriğin program kodundan ayrışması ile uygulama geliştiriciler kendilerine en uygun geliştirme aracını ve programlama dilini kullanabilirler.
  • Görsel içeriği hazırlayan ekip istediği tasarım programı veya editörü kullanarak sayfalar üzerinde değişiklikler yapabilir

İşte bu ve bu gibi birçok nedenden ötürü bu ayırma işlemini yapmak çok büyük avantajlar sağlıyor. Şimdi gelelim bu işin teknik tarafına, yani nasıl oluyor da içerik program kodundan ayrışıyor; bunu üç ana başlıkta incelemek mümkün:
  • Arka planda kod içeren Sayfalar (Code-Behind Pages)
  • Kullanıcı Kontrolleri (User Controls)
  • Bileşenler (Components)

Arka planda kod içeren Sayfalar (Code-Behind Pages)
Türkçesi biraz garip görünse de aslında tüm anlatılacakları kapsayan bir ifade Arka Planda Kod içeren Sayfalar. .Net vizyonunda birçok yenilik ile karşılaştık bunlardan biri de Visual Basic kullanımının diğer yazılımlar içerisinde de olabileceğiydi, konumuzla ilgili olduğu için ASP.Net içerisinde Visual Basic kullanabiliyoruz. VB’de bir class yazdığımızı düşünelim bu bir class olduğu için oluşan bu class’ı ASP.NET içerisinde sayfaya bağlayarak kullanabiliyoruz, yani Arka Planda bir kod çalışıyor ASP.NET sayfasından tamemen bağımsız. Hemen bir örnek ile konuyu somutlaştıralım;

Demo.vb
Public Class Ornek
    Public Function veriAl()
    ……
    End Function
End Class

Yukarıdaki Visual Basic kodu Ornek adli bir class’tan oluşuyor. Bu Class içerisinde de veriAl isimli bir fonksiyon var. Bu fonksiyonun ne yaptığı bizi şimdilik ilgilendirmiyor, Visual Basic Kodu olarak araya ne yazarsanız veriAl fonksiyonun içeriği o olacaktır. Bu kodu demo olarak kaydettiğinizde klasörde Demo.vb isimli class dosyası oluşacaktır. Peki bunu nasıl kullanacaksınız ASP.NET içerisinden; hemen örneğe bakalım:

<%@Page inherits=”Ornek” Src=”demo.vb”%>

İşte bu kadar, sayfanın en başında belirteceğiniz bir Page derivative’i ile sayfanıza Visual Basic ortamında geliştirmiş olduğunuz Class’ları aynen kullanabilirsiniz.
Kullanıcı Kontrolleri (User Controls)
Kullanıcı Kontrolleri ASP.NET sayfaları tarafından kullanılan sunucu kontrolleridir. Bunlar .ascx uzantılı dosyalardır. Farklı bir uzantı olmasının sebebi bu dosyaların tek başına kullanılamayacağını kullanıcıya hatırlatmaktır. Kullanıcı Kontrolleri HTML kodu içerir ama bu kodlar bizim bildiğimiz BODY, FORM gibi tag’ler değillerdir.
Kullanıcı Kontrolleri temel olarak bir ASP.NET sayfasıdır ama tamamen başka bir ASP.NET sayfası tarafından kullanılmaktadır. ASP teknolojisinde kullandığımız include file yöntemi yerine geçen bu yeni yapı ile sayfada tekrarlayan veya sık kullanılan program kodlarını tek bir yerde toplamak mümkündür. Hemen bunun da bir somut örneğini inceleyelim;

<%@Control Language=”vb” %>

Bu şekilde başlayan bir ASP.NET sayfası bir Kullanıcı Kontrolüdür. İçine yazacağımız kod ise bir ASP.NET sayfasından şu şekilde çağırılır;

<%@Register TagPrefix=”deneme” TagName=”Demo” Src=”demo.ascx” %>

Bileşenler (Components)
İçeriği program kodundan ayrıştırmak için kullanılan son yöntemimiz de Bileşen kullanımıdır. Bu daha önce de gerçekleştirdiğimiz bir yöntemdir birçoğunuzun kullandığı gibi fakat eskiden yaşanan birçok zorluk şuan da aşılmış durumda. Bu sorunlar neydi ve nasıl aşıldı hemen inceleyelim;
  • Register işlemi: Bir bileşeni hazırladıktan sonra sunucu üzerinde bu bileşeni regsvr32 kullanarak register yani kayıt etmek gerekiyordu. Ama artık dosyayı XCOPY ile kopyalamanız veya FTP ile upload etmeniz yeterli oluyor.
  • Sunucuyu yeniden başlatma işlemi: Bir bileşeni yüklemeden önce eskisi registery’den silmeniz gerekmekteydi, bunu yapmak için önce onu kullanan tüm programları kapatmanız gerekir, bu da onu kullanan servisi veya tüm sunucuyu durdurup yeniden başlatmak anlamına geliyordu. Tabiki bu işlem sırasında o an yapılan tüm işlemler durduruluyor geçici olarak sunucuya erişilemiyordu. Ama ASP.NET ile dosyayı kopyalamanız halinde artık bir yeniden başlatma işlemine gerek kalmadan yeni dosya devreye giriyor.
  • Namespace Çakışması: Bileşenlere verdiğiniz isimler çalkıştığında bir uygulama kendine ait olmayan bir bileşenin içeriğini çalıştırabilirdi, eğer almaması gereken bir parametre yeni dll ile verilmişse sayfa hata veriyordu. Ama artık /bin klasörü içinde yer alan her dll kendi uygulaması için aktif halde çalışıyor.

Kısaca Bileşen kullanımına bakacak olursak;

<% Import Namespace=”yazdigimBilesen” %>

İşte ASP.NET ile birlikte gelen içeriğin program kodundan ayrışması bu yöntemler ile yapılıyor ve uygulama geliştiricilere çok büyük avantajlar sağlıyor. Bir başka makalede buluşmak üzere…
Mehmet Nuri ÇANKAYA