ASP’de classlar

Tam olarak nesne yönelimli bir dil olmamasına rağmen, ASP’de Class lar yazarak, hazırladığımız web sitesini yazacağımız classlar ile yönetebiliriz. ASP de class yazmak deyince bazılarının aklında hiç birşey canlanmıyor olabilir. Ancak her ne kadar performans açısından bize çok fazla bir artı getirmeyecek olsa da ASP de class yazarak uygulama geliştirmek size birçok açıdan avantaj sağlayacaktır.

ASP ya da PHP ile web uygulamaları geliştirmeye başlayan birisi ilk başta inline (spagetti) kod diye tabir edilen şekilde web sitelerini oluşturmaya başlar genelde. Yani HTML taglerinin arasına gerekli olan server-side işlemleri yapan scriptlerini koyar ve HTML ile kullandığı web dilini içiçe kullanır. Bu şekilde kod yazmaya başlayan birinin eninde sonunda varacağı nokta, birçok yerde aslında aynı şeyleri yaptığının farkına varmak ve her sayfada yaptırması gereken benzer işlemler için neden bu kadar çok vakit harcadığını düşünmeye başlamaktır. Daha sonra bu kişi Function ve Sub larla tanışır ve bu aşamadan sonra da yapması gereken bazı standart işlemleri artık birer fonksiyon olarak tanımlayarak uygulamasının her aşamasında kullanmaya başlar. Eğer bu yöntem konusunda tecrübe kazanmaya başlarsa yapacağı son uygulamalar çoğu kez, HTML tagleri arasına sadece fonksiyon isimleri yazmak şeklinde gelişecektir.

Bir web uygulamasında işlemleri fonksiyonlar halinde belirleyerek çalışmak aslında en azından ASP için son nokta olarak görülebilir. Bu şekilde yazılacak olan uygulamalarda herhangi bir işlemin çalışma mantığının değiştirilmesi gayet kolay hale gelmektedir. Çünkü işlemleri yapan fonksiyonlar aynı tek kaynaktan geleceği için o tek kaynak üzerinde değişiklik yapmak sitenin işleyişlerini değiştirmeye yetecektir.

Bu aşamadan sonraki aşama ise, veri saklama ve işlem yapma durumlarını kategorilendirmek ve kategorilendirilen bu işlemleri tek bir noktadan yönetmeye çalışmak olmalıdır. Bu nedenle web yazılımcısı bu noktada değişken ve işlem kümeleri oluşturmalı, bu kümeleri tek bir noktadan çağırabilmeli ve yönetebilmelidir. Bu doğrultuda Class yapılarını kullanmak gayet yerinde bir seçim olacaktır.

ASP de basit bir class değişken, fonksiyon ve sublardan oluşur. Daha ötesinde public private yapılar, property ler, set, let ve get anahtar kelimeleri gelir. Son saydıklarım olmadan da fonksiyonlarınızı organize etmek için classları kullanabilirsiniz.

Örneğin, aşağıdaki fonksiyonlara ihtiyacımız olsun:

  • querystringleri temizleyerek alacak (safeGet)
  • POST edilmiş form değerlerini temizleyerek alacak (safeForm)
  • genel olarak SQL injection a karşı herhangi bir text i temizleyecek (clearText)
  • herhangi bir stringi kontrol ederek numeric bir değere, eğer numeric değer içermiyorsa sıfıra çevirecek fonksiyonlar (makeInt)

Bu fonksiyonları bir class içinde tanımlayabilir, mesela bu classa da sistem ismini vererek aslında sistem ile ilgili işlemler yapan tüm fonksiyonlarınızı buraya koyabilirsiniz.

Class sistem

Public Function clearText(strData)

  strData = replace(strData,">",">")
  strData = replace(strData,"<","<")
  strData = replace(strData,"""",""")
  strData = replace(strData,"'","'")
  strData = replace(strData,"`","`")
  strData = replace(strData,"~","~")
  strData = replace(strData,"^","^")

End Function

Public Function safeGet(strQuery)
  safeGet = clearText(request.querystring(strQuery))
End Function

Public Function safeForm(strFormField)
  safeForm = clearData(request.form(strFormField))
End Function

Public Function makeInt(strMakeInt)
  strMakeInt        = Trim(strMakeInt)
  If IsNumeric(strMakeInt)=True Then
    makeInt        = CInt(strMakeInt)
  Else
    makeInt        = 0
  End If
End Function

End Class

Yukarıda tanımladığımız class ı herhangi bir sayfaya include edip aşağıdaki şekilde kullanabiliriz.


Set system = new sistem

'data diye bir query alalım
data = system.safeGet("data")

'page ismindeki form değerini alıp integer a çevirelim
page = system.makeInt(system.safeForm("page))

Aynı şekilde database işlemleri yapan (örn: select, insert, update, delete) fonksiyonlar yazarak bir database classı da oluşturabiliriz. Tabii bu kullanımlar aslında nesnel programlama ile çok da ilgisi olmayan konular. Sadece fonksiyonlarımızı organize etmiş ve her yerde kullanılabilir hale getirmiş olduk. Classların ASP de nasıl nesnel programlamaya yönelik kullanılacağını ilerleyen günlerde yazmayı düşünüyorum şimdilik sadece bilgi vermiş olayım.

En çok yorumlananlar


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

AddThis Social Bookmark Button
12345 (No Ratings Yet)
Loading ... Loading ...

2 Responses to “ASP’de classlar”

  1. Valla nedim bir webmaster ın giriş gelişme ve sonuç olayını çok nezih bir şekilde anlatmışsınız.Bu asp denen illeti bir kaç zmandır karıştırıyorum ihtiyacım kadar olan kısmını çoktan anladım anladıklarımın doğrultusunda diğerlerinide pek kısa zmanda anlayacağımı düşünüyorum sadece bu access belasında tablo ilişkilerini kurmanun ve sorgu oluşturmanın içinden çıkamadım anlıyorum ama yapamıyorum:) bu class meslesi çok güzel emeğinize sağlık ii çalışmalar

  2. Yorumunuz için teşekkürler Ahmet Bey. ASP başlangıç açısından iyi bir seçim aslında. Kısa bir kurulum ile hemen Windows üzerinde kodları çalıştırıp deneyebiliyoruz. Ancak daha sonrası için uzun vadede bir web programlama diline ihtiyacınız olacaksa PHP5 ile uğraşmanızı tavsiye ederim. Hem ucuza daha kaliteli hosting hizmetleri alabilir, hem de ASP’de 10 satır kodda yapabildiğiniz bir işi 1-2 satırlık kod ile halledebilirsiniz.

    Kolay gelsin.

Leave a Reply