| ASP'nin
Nesneleri
Masa, nesnedir. Notebook bilgisayarınız da nesnedir! Arkadaşınız
da bir nesnedir. Tabiî bunu onun yüzüne karşı söylemeseniz, iyi
olur. Her nesnenin özellikleri vardır. Masa serttir. Su, içine
konulduğu nesnenin biçimi alır.
ASP tekniğinde de amacımız nesnelerin özelliklerini kullanarak,
ya bu özellikleri belirlemek, ya da değiştirmektir. Nesne Yönelimli
Programlama (Object Oriented Programming, OOP) kavramını daha
önce çok duymuş olmalısınız. Bir önceki bölümde fonksiyonlarla,
Sub'larla, değişkenlerle tanıştık. Diyelim ki öğretmensiniz
(ah, nerede o günler!) ve ASP programınızda her öğrencinin notunu
veritabanına işleyen, veritabanından notları alarak geçeni-kalanı
belirleyen veya öğrencilerle ilgili daha yapılması gereken bir çok
işi yapan fonksiyonlarınız ve Sub'larınız var; bunların
kullandığı bir çok değişkeniniz var: demek ki sizin ASP
programınızda "öğrenci" diye bir nesneniz var. Ve siz bu nesneye
yönelimli program yapmışsınız!
Her "program nesnesi" iki unsura sahiptir:
Özellik (Property, Attribute): Bir nesnenin özellikleri,
onun değişkenleridir. "Öğrenci" nesnesinin "Öğrencinin Adı,"
"Notları," "Adresi" gibi değişkenleri, yani özellikleri vardır.
Metod (Method): Bir nesnenin işlemesi, çalışması için,
kısaca kendisinden bekleneni yerine getirebilmesi için çalışma
yöntemlerine ihtiyacı vardır. Dolayısıyla bir ASP nesnesinin
fonksiyonları, onun metodlarıdır.
Fakat ASP'de nesneler sadece sizin öbekler halinde toplayacağınız
fonksiyonlar ve değişkenlerden ibaret değildir. Bir kere, ASP
programında kullandığınız Script dilinin getirdiği nesneler vardır.
ASP sayfasını Javascript ile yazarsanız başka, VBScript ile
yazarsanız başka dil nesnelerine sahip olursunuz; ancak her ikisinde
de ortak olan "Scripting" nesneleri vardır. Bunlara birazdan
ayrıntılı ele alacağız. Sonra Web Server'ın size hazır sunduğu
nesneler vardır. Bunları daha sonraki bölümde göreceğiz. Ve tabiî,
Browser'ın bir HTML sayfasının bölümlerini nesne sayarak oluşturduğu
nesneler vardır. Bunlara da diğer nesneleri ele alırken sırası
geldikçe değineceğiz. (Tabiî bir de ASP programınızı Javascript ile
yazarsanız, VBScript'ten farklı olarak kendisi nesne-yönelimli bir
dil olan Javascript'in oluşturmanıza imkan vereceği nesneler vardır.
Fakat bu nesneler, bu kitapçığın kapsamı dışında kalıyor.)
Nesneler nasıl oluşmuş olursa olsunlar, daima size bir değer
verirler:
Bir nesnenin bir özelliğinin değeri, bizim için bir değişken
değeri gibi önem taşır:
|
|
If Nesne.Özellik > Değer Then
... |
Nesnelerin özelliklerinin değerlerini değişkenlere atayabiliriz;
ancak bunu yaparken Nesne'nin bir metoduna (fonksiyonu) göndermede
bulunmamız ve gerekiyorsa bu fonksiyona kullanması için veri
göndermeliyiz (bir fonksiyona kullanması için gönderilen değere
argüman/argument denir):
|
|
Degisken = Nesne.Metod(argüman1,
argüman2...) |
Daha sonra bu değişkeni istediğimiz yerde kullanırız. Bu kadar
teoriden sonra bir örnek nesne oluşturursak, belki işin içinden daha
kolay çıkabiliriz.
Nesneler, diğer yararlarının yanı sıra, birbiri ile ilgili
Sub'larımızı, fonksiyonlarımızı ve değişkenlerimizi birarada
tutmamızı sağlar. Şimdi VBScript ile bir nesne
oluşturabiliriz:
|
|
<% Class Ogrenci Public
Adi, Soyadi, No Function AdiSoyadi AdiSoyadi = Adi &
" " & Soyadi End Function End
Class %> |
Bir dakika! Nesne (object) adını verdik fakat Class
(sınıf) oluşturduk! Bu grubun Object..End Object olması
gerekmiyor mu? Belki haklısınız; ama bir "sınıf" ancak VBScript
tarafından kullanılmaya başlanırsa Nesne olur. Dolayısıyla biz
"sınıf" yazarız; VBScript onu Nesne haline getirir. Peki, nesneyi
oluşturduk; şimdi bunu nasıl kullanacağız. Çok kolay; önce bu
nesneden yeni bir olgu (instance) oluşturacağız; sonra.. Ama önce
bunu nasıl yapacağımızı yazalım:
|
|
<% Dim Ogr1 Set Ogr1 =
New Ogrenci Ogr1.Adi = "Necip" Ogr1.Soyadi =
"Fazıl" Ogr1.No = "181"
Response.Write
Ogr1.AdiSoyadi %> |
Her nesne, New (yeni) komutu ile yeni bir değişkene bütün
özelliklerini verir. Burada Ogr1 değişkeni, yukarıda oluşturduğumuz
Ogrenci nesnesinin bütün özelliklerini kazanmış oluyor. Ogrenci
nesnesinin ".Adi", ".Soyadi" ve ".No" özellikleri olması gerekir;
nitekim Ogr1'e bu özelliklerini burada veriyoruz. Ogrenci nesnesinin
bir de metodu (fonksiyonu) var; Ogr1 bunu da kazanabilir mi? Tabiî;
hem kazanır, hem de bunu ziyaretçinin Browser penceresine
yazdırabilir.
Nesne kavramını kavramak zordur. Fakat yukarıdaki örnekte
görüldüğü gibi, ASP sayfalarınızda nesne oluşturarak çalışmaya
alıştığınız zaman bunun sağladığı kolaylıktan kolayca
vazgeçmeyeceksiniz.
Hata (Err)
Nesnesi
Hangi dille olursa olsun program yazarken hata yapmak kaçınılmaz
bir kuraldır. Dolayısıyla kullandığınız programlama dili
hatalarınızı kolayca yakalamanıza imkan vermelidir. ASP
programlarınızda yazım yanlışlığı, olmayan değişkene gönderme gibi
Script hatası olmaması gerekir. Bu tür hatalar, program Web'e
gönderilmeden mutlaka ayıklanmalıdır. Fakat programcı olarak
öngöremeyeceğiniz, ve çoğu Web ziyaretçisinden veya ziyaretçinin
bilgisayarından kaynaklanan hata durumları olabilir. VBScript, şu
standart komutla beklenmedik hata durumlarında programın yoluna
devam etmesini sağlayabilir:
|
|
<% On Error Resume Next
%> |
Bu komutla VBScript'e, hata halinde bir sonraki satırdan yoluna
devam edecektir. Fakat oluşan hata, programın daha sonra vermesi
beklenen sonucu vermesini önleyebilir. VBScript, Err (Hata)
Nesnesi'nin bir çok özelliğinden özellikle hata sayısı (Number),
tanımı (Description) ve kaynak (Source) özellikleri ile size hatanın
ne olduğunu ve nereden kaynaklandığını söyleyebilir. Bu özellikleri
kullanarak, programlarınızda, en azından geliştirme aşamasında,
örneğin,
şeklinde bir ifade ile hatanın türüne göre programın kazasız
yürümesini sağlayabilirsiniz. Burada xx yerine 108 ayrı hata
numarası yapabilirsiniz. Hata numaraları, Microsoft'un VBScript
sitesinden edinilebilir.
Nesneler
hakkında aşağı yukarı bir fikir edindiğimize göre, şimdi
kullanılmaya hazır Nesne'lerden başlayarak, VBScript kullanırken,
ASP sayfalarımızda yararlanabileceğimiz Nesne'leri ele
alabiliriz.
|