13
Nesne Kavramı
Günlük hayat da olduğu gibi proglamlamada da işlemlerimizi değişik nesnelere
yaptırırız. Örneğin birşey kesmek istediğimizde bıçak kullanırız, su içmek istediğimizde
bardak kullanırız vs. Kullandığımız her nesnenin ise belirli özellikleri vardır. Örneğin
kesme işlevini gerçekleştiren bıçak keskindir. Yada su içeceğimiz bardak suyun
dökülmesini engelliyecek şekilde kapalı bir cisimdir.
ASP tekniğinde işlemlerimizi gerçek hayat da olduğu gibi nesnelere yaptırtırız.
Nesne yönelimli programlama kavramı (Object Oriented Programming OOP) bu şekilde
ortaya çıkmıştır. Diyelim ki öğretmensiniz ve ASP programınızda her öğrencinin notunu
veritabanına işleyen, veritabanından notları alarak geçeni kalanı belirleyen veya
öğren cilerle ilgili yapılması gereken birçok işi yapan programcıklarımız mevcut; bu
programcıkların kullandığı birçok değişkenimiz var: demek ki sizin ASP programınızda
öğrenci diye bir nesneniz var. Ve siz bu nesneye yönelimli program yazmışsınız.
Her program nesnesi iki unsura sahiptir.
Özellik (property) : bir nesnenin özellikleri, onun değişkenleridir. Öğrenci
esnesinin Öğrenci 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 ASPde nesneler sadece sizin öbekler halinde toplayacağınız fonksiyonlar ve
değişkenlerden ibaret değildir. Bir kere, ASP programında kullandığımız script dilinin
getirdiği nesneler vardır. ASP programınız ı javascript ile yazarsanız başka, vbscript ile
yazarsanız başka nesnelere sahip olursunuz; ancak her ikisinde de ortak olan scripting
nesneleri vardır. Bunları birazdan ayrıntılı olarak ele alacağız. Sonra web serverin size
hazır sunduğu nesneler vardır. Bunları daha sonraki sayılarda göstereceğiz. Ve tabii,
browserın bir HTML sayfasının bölümlerini nesne sayarak oluşturduğu nesneler vardır.
Bunları da diğer nesneleri ele alırken sırası geldikçe değineceğiz. (Tabii bir de ASP
programınızı javascript ile yazarsanız vbscriptten farklı olarak kendisi nesne-yönelimli bir
dil olan javascriptin oluşturmanıza imkan veren nesneleri vardır. Fakat bu nesneler bizim
konumuz dışında kaldığı için incelenmeyecektir.)
Nesneler nasıl olmuş olursa olsunlar, daima size bir değer verirler.
Nesne.Özellik = Değer
Bir nesnenin bir özelliğinin değeri, bizim için değişken değeri gibi önem taşır.
İf Nesne.Özellik > Değer Then
Nesnelerin özelliklerinin değerini değişkenlere atayabiliriz ancak bunu yaparken
nesnenin 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);
Değişken = Nesne.Metod (argüman1,argüman2..)
Tarayıcı nesne modelinin tam aksine ASP nesnelerinde bir hiyerarşi söz konusu
değildir. Nesne modeli, bize bir sunucu nesnesini metodları ve özellikleri ile birlikte,
scriptler arasında kullanabilmemizi, sağlar. Bir ASP uygulaması geliştirebilmek için server
(sunucu), application (uygulama), session (oturum), request (istek) ve (response) yanıt
nesneleri kullanılır.
Uygulama ve Oturumlar
Aplication (uygulama) nesnesi bir ASP uygulamasının tamamını simgelendirir.
Session (oturum) nesnesi ise, her bir kullanıcının uygulamadan istediği sayfaları
simgelendirmektedir. Bu durum Error! Reference source not found.) de
açıklanmıştır. Her istemci için ayrı ayrı oluşturul n session nesnesi yine her kullanıcı için
oluşan request ve response nesneleri ile iletişim sağlanır. Bütün bunları kapsayan
application nesnesi ise tüm kullanıcı oturumlarını kapsar şekilde oluşacaktır. Uygulama
objesi siteden herhangi bir sayfa istendiği an otomatik olarak oluşacaktır fakat oturum
objesi sadece isteyen kullanıcı için oluşacaktır.
Bir oturum, bir request nesnesinin HTTP iletişimini başlatır, bir web gezgininden, bir
sunucuya gönderilir ve sunucudan response nesnesi ile geri gönderilen sonuç bilgisi ile
sonlanır.
Resim 6 : Kullanıcıya göre ASP obje dağılımları.
Hafızada oluşturulan kullanıcıya veya aplikasyona ilişkin objeler içinde herhangi bir
terslik olması halinde bu diğer çalıştırılan objeleri de etkileyecektir. Bunu önlemek için
Microsoft firması IIS üzerine bir opsiyon koyarak her sitenin kendisine ait bir bellek
Alanında çalışmasını olağan kılmıştır. Bu seçenek normalde kapalı haldedir yani
sunucudaki tüm objeler tek bir bellek alanında çalışacaktır. Bu özelliği aktif hale getirmek
için IIS üzerinden, genel bellek alanından ayırmak istediğimiz sitenin özelliklerine girilir.
Açılan özellik alanında en üstteki sekmeleri kullanarak Home Directory kısmına gelinir
(Error! Reference source not found.).
Resim 7 : IIS Site Özellikleri.
Bu alanda yer alan application protection yani uygulama koruma alanında üç
maddeden oluşan seçenek kısmı görülmektedir bu seçeneklerden bizim için hangisi
uygunsa onu seçeriz ve okleyip işlemi sonlandırabiliriz. Bu seçeneklerin neler olduğunu
isterseniz teker teker inceleyelim.
Low (IIS Process) : Bu seçenek aktif olduğu zaman tüm asp uygulamaları ve
nesneler tek bir hafıza alanında ortak çalışıyor olacaktır. Bu hafıza alanı web sunucunun
kendi işlemleri ile aynı yerde tutulacaktır ve Windows Görev Yöneticisi nde
Inetinfo.exe dosyası olarak gözükecektir. Ve bu uygulamanın sonlandırılması halinde
sunucuda yer alan ve ortak çalışan uygulamalara ait bilgiler (çalışma ve oturum bilgileri)
silinecektir. Bu seçenek aktif olduğu zaman sunucu bir risk altında olacaktır çünkü tüm
uygulamaların tek bir alanda çalışması ki özellikle bu alanın web sunucu çalışma alanı
olduğu düşünülürse, uygulamaların birinde hata olsa bile diğerlerini etkileyeceği için;
ayrıca herhangi bir hatanın web sunucuyu şişirip çalışmaz hale getireceği için uygunsuz
olacaktır. Mümkün oldukça seçili olmamasına dikkat ediniz.
Medium (Pooled) : Bu seçeneğin aktif olması halinde tüm asp uygulamaları ve
nesneleri tek bir hafıza alanında çalışacaktır fakat bu alan web sunucunun işlemlerinin
yapıldığı alandan farklı olacaktır. Bu sebepten dolayı sitede herhangi bir aksaklı olsa bile
bu sadece siteleri etkileyecektir. Sunucunun şişmesini ve çalışmaz hale gelmesini
engelleyecektir. Bu web sunucudan bağımsız yerde işletilen uygulamalar Windows Görev
Yöneticisi nde ektir.
High (Isolated) : Bu seçenek aktif olduğu zaman her sitenin uygulamaları ve objeleri
kendisine ait za alanında çalıştırılmasına olanak verecektir. Böylece sitelerde
oluşacak aksaklılardan sadece kendisi sorumlu olacaktır ne web sunucuyu nede diğer
siteleri aksatabilecektir. Bu hafıza alanı bir önceki seçenekte olduğu gibi Windows Görev
Yöneticisi nde DLLHost.exe olarak gözlemlenecektir fakat te k fark her site için ayrı
ayrıbir DLLHost.exe olmasıdır. Seçenekler arasında en sağlıklı olanı budur fakat
sunucunun sistem kaynaklarının yeterli olması gerekmektedir.