ASP’de classlar

Aralık 13th, 2006 Uğur Aslan Posted in ASP 2 Comments »

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.

AddThis Social Bookmark Button

ASP anlatmak ve kullanmak

Aralık 12th, 2006 Uğur Aslan Posted in ASP No Comments »

AddThis Social Bookmark Button