ASP'DE NESNELER
OBJELERÖZELLİLLERİMETODLARI ve NESNE TEMELLİ PROGRAMLAMA

Günlük yaşamımızda kullandığımızdokunabildiğimiz her şey obje olarak adlandırılır

Bu tanıma oturduğumuz sandalye bilgisayarımız ve televizyonumuzda dahildir. Bize telefonu tanımlamamız gerektiği söylendiğinde telefonun özelliklerinden bahsederiz. Sözgelimi; telefonu mikrofonu hoparlörü ve arama yapmak için kullanılan tuş takımı vardır. Ayrıca telefonun ne amaçlar için kullanıldığı da (birini aramak gibi) yine bu objenin tanımı için kullanılır. Bir arkadaşımız bizi aradığında telefonun çalması ve bizim haberdar olmamız telefonun gerçekleştirdiği bir olaydır. İlerideki kısımlarda telefon örneğinde olduğu gibi fiziksel objeleri kullanarak programlama anlamında obje kavramını anlatmaya çalışacağım.

Programlama da kullanılan objelerde tıpkı fiziksel objeler gibidir yani özellikleri metotları ve olaylar vardır. Nesne temelli bir programlama ise rogramlama objelerin kullanılarak yapıldığı programlama türüdür. Bu programlama türünde uygulama bir çok objeden oluşan parçalara ayrılır. Daha sonra bu parçalar arasında gerekli ilişkiler ve bağlantılar kurulmak suretiyle ana uygulama meydana getirilir.

Not: Obje temelli programlamayı anlatmak için kullanılan telefon örneği Wrox yayınları tarafından basılan "Beginning Active Server Pages 3.0" adlı kitabın 6. Bölümünden alınmıştır
Obje Terimleri:

Nesneleri tanımlamak için üç terim kullanırız. Bu terimler özellik (property) metot (method) ve olaylar (events) dır. Genel kullanımı daha yaygın olduğu için bu noktadan sonra bu terimlerin bazen İngilizcelerini (property method events) kullanacağız.
Properties (özellikler):

Nesneye ait bazı özellikler kullanarak o nesneyi tanımlarız. Bir nesneye ait bir özellik ve bu özelliğe ait bir değer bulunur. Telefon örneğimize geri dönelim ve aşağıdaki tabloya göz atalım.
ÖZELLİK DEĞER
Renk Kırmızı
Malzeme Plastik
Ağırlık 800gr
Tuş sayısı 12

Tabloyu incelediğimizde telefon nesnesine ait özellikleri ve değerleri görmektesiniz. Mesela rengi kırmızı yapıldığı malzemenin plastik olması gibi.
Metodlar:

Nesneleri tanımlamak için kullandığımız bir diğer olgu ise objelerin fonksiyonlarıdır. Örneğin; telefonu kullanarak birini aramak işlemi yerel telefon ağına bağlanmak suretiyle aradığımız kişinin telefonunun çalmasına neden olan bir metotdur. Telefon objemizin metodlarına bir göz atalım
Metod Adı Tanım
Arama Herhangi birini aramak
Cevap Verme Çalan bir telefona cevap vermek
Kapatmak Telefonu kapatmak
Parametreler:

Nesnelere ait bazı metodlar direkt olarak nesneye uygulanabilirken bazıları da bir takım bilgilere ihtiyaç duyarlar. Bu bilgiler parametre olarak adlandırılır. Örneğin; çalan bir telefona cevap vermek için herhangi bir parametreye ihtiyacımız yokken bir arama yapmak için arayacağımız kişinin telefon numarası parametre olarak kullanılmalıdır.
Dönen Değerler (return values) :

Metodlar sadece parametre kabul etmenin dışında gerçekleştirdikleri işlemlerden sonra bize geri bilgi sağlayabilirler. Metod tarafından sağlanan bu bilgilere dönüş değeri (Türkçe si belki farklı olabilir önerilerinizi bekliyorum ama İngilizce si return value) adı verilir. Örneğin; bir telefon numarası çevirdiğimizde bu işlemin başarıyla gerçekleşmesi return value olarak true başarısız olması ise false şeklinde bir return value döndürür. Fakat her metod bir return value döndürmek zorunda değildir. Mesela telefona cevap vermek bir return value döndürmez.
Olaylar (Events):

Örnekte kullandığımız telefonu düşünelim. Telefonumuz dışardan arandığında bu bilginin yani dışardan arandığı bilgisinin bize bir şekilde ulaşması gereklidir. Obje(telefon) bu arama gerçekleştiğinde bunu zil vasıtası ile bize bildirir bu işleme objenin bir olayı(event) adı verilir.
ASP Nesne Yapısı:

ASP sahip olduğu 7 temel obje vardır. Bu objeler built-in objects olarak tanımlanır. Bu 7 temel obje:

* Server Object
* Application Object
* Session Object
* Request Object
* Response Object
* ObjectContext Object
* AspError Object

Server Object:

Server nesnesini kullanarak yapabileceğimiz bazı başlıklar aşağıdaki gibidir.

* Yazdığımız ASP scriptlerinde bir hata çıktığı zaman ne kadar süre sonra sonlandırılacağı ile ilgili script timeout değeri
* Kullanıcı tarafından sağlanan bilgilerin HTML formatına dönüştürülmesi
* Sanal(virtual) path' lerin fiziksel yola (path) dönüştürülmesi işlemi
* Createobject metodu kullanımı ile bir ActiveX nesnesinin örneğinin(instance) oluşturulması işlemleri için
* Transfer veya Execute komutlarının kullanımı ile bir başka ASP sayfasının çalıştırılması işlemi için

Application Object:

ASP teknolojisi kullanılarak hazırlanan sayfaların birbirine bağlı olarak işletilmesi yani web uygulamasının çalışması esnasında uygulama geliştirici uygulamanın tümü üzerinde bir takım kontrollere sahip olmak ister. Bu tip bir işlem application objesinin özellikleri kullanılarak yapılır. Genel olarak application nesnesi kullanılarak;

* Web uygulaması ile başladığında bazı değişkenleri set etmek(değişkenlere bazı değerlerin atanması) veya bazı işlemlerin otomatik men yapılması için
* Uygulama sona erdiğinde devreye alınmak istenen bazı işlemler için
* Bazı bilgilerin web uygulaması çalıştıran her bir kullanıcı için ulaşılabilir hale getirilmesi.

Session Object:

ASP uygulamalarında her uygulama için sadece bir application objesi web server üzerinde bulunabilir. Bu uygulamaya bağlanan her kullanıcı(client) bu objeye referans eden örneği ile çalışır.

Uygulamaya bağlanan her client(kullanıcı) bir oturum(session) açar böylece her client kendini ait bir session nesnesine sahip olur. Application nesnesi ile session nesnesi arsındaki fark application nesnesinin uygulamaya bağlanan herkes için aynı değerleri sunmasına rağmen session nesnesinin bağlantı kuran her kullanıcı için farklı olmasıdır. Application için anlatılan maddeler session için geçerli olmakla beraber tek fark bu özelliklerin uygulama bazında değil kullanıcı bazında olmasıdır.
Request Object:

Bir web browser veya herhangi bir uygulama web server' a bir sayfa için bir istekte bulunduğunda bu olay request olarak adlandırılır. Request objesi server tarafından sağlanan bu sayfa ve dolayısıyla gönderdikleri bilgilere ASP uygulamasının çok kolay bir şekilde ulaşabilmesini sağlamaktır.

Request objesi ile yapılan bazı işlemler:

* URL ile gönderilen bilgilerin QueryString koleksiyonu kullanılarak toplanması
* Eğer Client Form içerisinde bilgi gönderiyorsa form koleksiyonu kullanılarak bilgilerin toplanması
* Web server tarafından sağlanan HTTP Server Variables bilgilerine ulaşılması
* Cookielerin okunması
* Client sertifikalarının (Güvenlik SSL) koleksiyonunun okunması

Response Object:

ASP teknolojisinin kullanımının temel amaçlarından en başında geleni şüphesiz dinamik olarak oluşturulmuş web sayfalarıdır. Bu görevin yerine getirilmesi için gerekli olan client' e bilgileri nasıl göstereceği işaret etmektir. Response objesi bu temel amacı yerine getirmek için kullanılan built-in objesidir. Response objesi ile;

* Client tarafından gösterilecek bilgilerin Html stream içerisine eklenmesi
* Browser tarafından oluşturulan cookieler için gerekli olan bilgilerin browser' a gönderilmesi
* Redirect metodu kullanılmak suretiyle kullanıcının bir başka sayfaya yönlendirilmesi
* Sayfanın tamamıyla oluşturduktan sonra veya sürekli olarak gönderilmesi kontrolünün sağlanması
* Sayfaya ait bazı özelliklerin (Html header gibi) düzenlenmesi

ObjectContext

Ayrıntılı olarak ele alınacak olmasına rağmen basitçe açıklamamız gerekirse; ObjectContext object componentlerin kullanılmadan uygulama geliştirme amacı için yardımcı olan bir objedir. Transaction (Bir işlemler bütünüsözgelimi bir banka hesabından paranın alınarak diğer bir hesaba aktarılması.) işlemlerinin yönetimi bu obje tarafından yapılabilir. Obje Transaction yönetimi için MTS(Microsoft Transaction Server) objesi ile bağlantı kurmak sureti ile işlemleri yönetir
AspError object:

Asperror objesi ASP script veya asp.dll tarafından oluşan hataların yakalanması için kullanılır. Asperror objesi Server.GetLastError metodu gelen hataları yakalayarak kullanıcıyı standart hataların açıklandığı sayfalara yönlendirmek için kullanılabilir.

Bu noktaya kadar obje nedir ve obje ile gelen bazı kavramları açıklamaya çalıştık. Tüm bu anlattıklarımız herhangi bir obje temelli programlama dili için aynı olan bilgiler olup sadece ASP' ye özel değildir. Daha sonra ASP' de kullanılan ve built-in objects adını verdiğimiz 7 adet standart objeyi kısaca özetlemek sureti ile sizleri biraz olsun bilgi sahibi yapmayı amaçladık. Şimdi bu objenin her birini tün yönleriyle ele alıp detaylı inceleyeceğiz.

Alıntı