Aktif sunucu bileşenleri kullanmak
Asp January 23rd, 2008->
Birçok yönden bu bileşenler active-x kontrollerine benzer. Fakat, aktif sunucu bileşenleri tarayıcıya bir nesne göndermektense nesneyi sunucu üzerinde çalıştırmak için tasarlanmıştır. Bunun da, bu yazımızda göreceğimiz gibi birçok avantajı vardır.
Sunucu Bileşenleri:
VBScript ve JSScript için kullanılabilir çeşitli script geliştirme nesnelerini görmüştük, şimdi bunların diğer bileşenlerle nasıl birlikte kullanıldıklarını göreceğiz. Buradaki önemli bir nokta da, sunucu bileşenleri ve hazır script geliştirme nesnelerinden bahsederken de bunları birbirine karıştırmamaktır. TextStream ve Dictionary gibi script geliştirme nesneleri script geliştirme ortamının birer parçasıdır. Bunlar ASP sisteminin bir parçası olan bir DLL tarafından oluşturulmuştur.
Geçtiğimiz aylarda, ASP paketi tarafından sağlanan bileşenlerin kullanımının yönetimini gördük. Sunucu nesnesinin metodlarından birisini kullanarak browser capabilities bileşeninin bir kopyasını oluşturduk:
|
Set NT = Server.CreateObject (“MSWC.BrowserType”) |
Bu nesne NT değişkenindeki nesne için bir referans oluşturur ve biz daha sonraki scriptlerimiz içinde nesne ile çalışabiliriz. Başka bir değişle bu nesnenin özelliklerinin bize uygun olanlarını kullanır ve metodlarının gerektiği kadarını koddan çağırırız.
Bileşenleri Kullanmak:
VBScript veya JSScript ile sunucu nesnesinin CreateObject metodunu kullanabiliriz. Bunu daha önce bir bileşenin kopyasını oluştururken anlatmışık. Ya da nesne referansını doğrudan bir değişkene atayarak daha sonra kodumuzda kullanabiliriz.
<Object> Kullanmak:
Başka bir yol olarak ASP’deki bir nesnenin kopyasını oluşturmak için <OBJECT> etiketini kullanabiliriz. Aynı yolla taryıcı üzerindeki bir Web sayfasındaki bir nesnenin kopyasını da oluşturabiliriz. ASP , HTML <OBJECT> etiketi için özel bir uygulama sağlar ve biz bunu sayfamıza bir nesne yerleştirmek için kullanabiliriz. Normal bir .asp dosyası içinde bir bileşenin kopyasını veya script geliştirme nesnesini tanımlamak için şöyle bir yazılım kullanırız:
|
<Object Runat=Server ID=NesneReferansı ProgID=”Nesne Tanımlayıcı”> </Object> |
Nesne Referansı, Nesne Kopyası gibi bir isimdir. Bu isimler kodumuz içinde kullanacağımız nesneleri gösterir. Nesne Referansı Windows Registry içindeki bir nesnenin veya bileşenin ismidir. Mesela MSWC. Adrotator gibi. Böylelikle Ad Rotator nesnesinin bildirimini kodumuz içerisinde aşağıdaki gibi yapabiliriz:
|
<Object Runat=Server ID=ObjAdRot ProgID=”MSWC.Adrotator”> </Object> |
Sunucu olarak ayarlanması gereken RUNAT özelliğine dikkat edin. PROGID,[Vendor.] Component [.Version]. formunda bir bileşeni veya nesneyi tanımlayan tek (unique) bir metin dizisidir.
|
<Object Runat=Server ID=ObjAdRot ClassID=”Cisid: OACE4881-8305-11CF-9427-444553540000”> </Object> |
Çalışma Alanı:
Normal bir .asp dosyası içerisinde CreateObject veya <OBJECT> etiketinin kullanılması genel olarak bir performans farkına sebep olmaz.Gerçek fark nesnenin yaratıldığı veya kopyalandığı noktadır. CreateObject metodu nesnenin kopyasını, çağnldığı zaman oluşturur. <OBJECT> etiketi ile tanımlanan bir nesne ise kendisine ilk referans verilen noktaya kadar gerçek olarak oluşturulmaz. Bu da bize, nesnenin global.asa dosyasında tanımlanıp .asp dosyasında gerçek olarak tanımlanmadığı yerlerde, kaynak kullanımını azaltmamıza veya sunucu performansını arttırmamıza olanak verir.
Geçmiş sayılarda global.asa ve Session ve Application nesneleri ile karşılaşmıştık. Biz sadece bu dosya içerisinde nesnelerin kopyalarının oluşturmanın önemini anlamalıyız ve böylece bunlar Session veya Application’ da tanımlanan bir çalışma alanına sahip olurlar.
Bunu <OBJECT> etiketi içinde SCOPE özelliğini koyarak sağlanz:
|
<Object Runat=Server Scope=Session ID=ObjAdRot ProgID=”MSWC.Adrotator”> </Object> |
SCOPE için geçerli değerler Session.Application veya Page’dir. Eğer <OBJECT> etiketini normal bir .asp dosyası içinde kullanırsak ya Page’i kullanmalıyız ya da SCOPE özelliğini tamamen ihmal etmeliyiz. Eğer <OBJECT> etiketini global.asa içerisinde kullanırsak bir nesne oluştururuz, bu nesne ya mevcut oturumun tamamı için kullanılabilir olur ya da global olarak uygulamanın tamamen dışında olur.
Bileşen Metodları:
ASP içerisindeki bileşenleri kullanmamızın tüm sebebi sağladıkları ekstra işlevsellikten faydalanmaktır. Bu işlevselliğe sadece script geliştirme dillerini kullanarak erişmek ya mümkün değil ya da ulaşılsa bile etkisiz veya zordur. Bir nesnenin kopyası kullanılabilir olduğu zaman onun için bir referansımız olur ve ihtiyaç duyduğumuz sonuçlara ulaşmak için onun metodlannı çağırabilir, özelliklerini kullanabiliriz. Her bileşenin kendine özgü metodlan ve özellikleri vardır. Bu yüzden, bunlann ne olduğunu ve her birinin sağladığı argümanlan ve doğru yazılımlarını bilmeliyiz. Mesela, Content Linking bileşeni GetNextURL adındaki bir metoda sahipken, Advertisement Rotator bileşeni de GetAdvertisement metoduna sahiptir.
Standart Bileşenler :
ASP onbir tane standart Sunucu bileşeni içerir. Bu bileşenleri bir sonraki makalemizde ayrıntılı olarak ele alacağız.


























Son Yorumlamalar