Erhan is typing…

WebDevelopment , PHP, Javascript, CakePHP, ExtJS

60’lık mı 70’lik mi?

| Comments

Son 2 sayımızda AJAX’ın ne olduğundan, faydalarından ve AJAX kullanılarak basit bir örneğin nasıl yapılabileceğinden bahsettik. Artık biraz daha karışık mevzulara girmemizde bir sakınca yok. Bu ay sırada işimizi kolaylaştıracak AJAX çatılarına yer verdik.

Hem daha önceki yazıları okuyanlar için bir hatırlatma olarak hem de yeni okuyanlar için kısa bir giriş olması için AJAX’ın ne olduğunu tekrar açıklamaya çalışalım. AJAX bir teknoloji veya dil değildir! AJAX, istemci tarafında çalışan bir betik dili ile sunucu-istemci arasındaki veri alışverişini gerçekleştirip gelen veriyi uygun biçimde işleme tekniğidir. Tanım çok genel olduğu için bunun nasıl yapıldığına dair bir örnek verdiğimizde olay biraz daha anlaşılır olacaktır. Siz kullanıcı olarak bir sayfayı görüntülersiniz ve sayfa içerisinden bir bağlantıya tıkladığınızda tarayıcınız tarafından sunucuya bir istek yapılır. Sunucudan gelen yanıt bir JavaScript fonksiyonu ile alınır ve işlenen (veya işlenmeyen. Veride değişiklik zorunluluğu olmayabilir.) veri ile sayfanın belirli bir bölgesi güncellenir. Kabaca istemci ile sunucu arasındaki AJAX etkileşimi bu şekilde gelişir.

Aslında süreç çok karmaşık gibi görünmüyor. Ama sayfa içerisinde güncellenecek bölgelerin sayısı, sunucudan size veriyi gönderecek –yüksek ihtimalle dinamik üretilecek- sayfaların yapılandırılması ve ziyaretçilerinizi etkilemek için yapacağınız görsel cambazlıklar nedeniyle iş karmaşıklığa doğru gitmeye başlıyor. Bir web ustası olarak odaklanmanız gereken noktaya ulaşmak için bir yığın kod ile uğraşmanız gerekiyor. Fakat dert etmeye gerek yok. Sağolsun internet camiasının gönüllüleri ve bazı şirketler bu işleri kolaylaştıran çeşitli kütüphaneleri geliştirmiş ve ustaların tamamen sonuca odaklanarak işi tamamlama süresini kısaltmasını sağlamış. AJAX çatısı tabiri de bu kütüphaneler için kullanılmakta.

Piyasada birçok kütüphane bulunuyor. Bunların bir kısmı ticari kimliğe sahip, bir kısmı ticari ama kazanç elde etmemeniz şartıyla ücretsiz ve çoğu da tamamen bedava. Bu gruplandırmanın yanında kullanım amacına göre özelleşenler de bulunuyor. Örneğin siz PHP, ASP.NET gibi diller ile uygulama geliştiriyorsunuz. JavaScript falan gibi şeylerle uğraşmak da istemiyorsunuz. O zaman size angarya görünen AJAX işlerini kodunuzun içerisinden çağıracağınız fonksiyonlar ile kolayca halledebiliyorsunuz. Bu sadece örneklerden bir tanesiydi. Siz dilden bağımsız bir tercih de yapabilirsiniz. Yani alt katlar için 60’lık, üst katlar için 70’lik misali biz de ihtiyaca göre bir çatıyı seçebiliriz. Dilerseniz açık kaynak ve ticari tüm AJAX çatılarına amaçlarına göre kısaca bir göz atalım.

Bazı çok amaçlı kütüphaneler

Dojo (http://dojotoolkit.org)

Açık kaynak Dojo ile hem sunucu-istemci iletişimini kolayca yönetebileceğiniz fonksiyonları hem de hazır gelen efektleri ile gösterişli sayfalara imza atabilirsiniz. Paket sistemi ile sadece ihtiyacınız olan kütüphaneyi yükleyerek yükleme süresi ve kodlama kolaylığı sağlıyor. Örneğin sadece sürükle-bırak olayını kullanacaksanız tüm çatıyı ziyaretçinin tarayıcısına yükletmek zorunda değilsiniz. Hazır efektlerin yanında kendi zımbırtılarınızı da (widget, İngilizcede zımbırtı anlamına gelen ‘gadget’ kelimesinin farklı kullanımı) oluşturabilirsiniz.

Henüz karar aşamasındayız ama ileriki yazılarda geliştireceğimiz uygulamaları Dojo ile yapma olasılığımız çok yüksek. Bu da bir not olarak yer alsın istedik.

Backbase (http://backbase.com)

AJAX diye Google’dan arama yaparken karşımıza ilk çıkan sonuçlardan biriydi. Sitesinin güzelliği yanında basitliği ve gücü nedeniyle de aşık olmadık değil. Ama tek sorun ticari olması. Eğer Backbase kullanarak yapacağınız sitenin bir ticari bağlantısı varsa tabiî. Kişisel bir site veya maddi bir çıkarı olmayan sitelerde ise ücretsiz olarak kullanabilirsiniz. Backbase sahip olduğu XML tabanlı BXML dili sayesinde HTML kodu yazmak kadar basit olduğu gibi XML ve Javascript’in tüm nimetlerinden faydalanabilmenizi de sağlayan bir kütüphaneye sahip.

Prototype (http://prototype.conio.net)

Piyasadaki birçok çatının kendine ana kütüphane olarak aldığı AJAX kütüphanesi. İşe temelden girmek isteyen ama yine de elinde temel bir yapı olmasını isteyen geliştiricilerin tercihi olabilir. Sunucu-istemci etkileşimini sınıflar üzerinden kontrol edebilirsiniz.

Aslında daha anlatılabilecek yüzden fazla çatı mevcut. Ama hepsine yer vermemiz mümkün değil. Bu yazıyı sadece yol gösterici kabul edip bize saygılarınızı sunmazsanız seviniriz :). Tüm kütüphanelerle ilgili güncel bilgilere ajaxpatterns.org adresinden erişebilirsiniz. Önümüzdeki sayıdan itibaren seçeceğimiz bir çatı ile yazı dizimize devam edeceğiz.

Takip edebileceğiniz bazı kaynaklar

ajaxnedir.com AJAX ile ilgili Türkçe içerikli bir site
ajaxpatterns.org AJAX çatılarının yanında faydalı bilgilere de yer verilmiş.
ajaxian.com Son gelişmeleri takip edebileceğiniz bir günlük
ajaxmatters.com AJAX hakkında geniş bir bilgi içeriğine sahip

Bu yazı Temmuz 2006 tarihinde PC Tech dergisinde yayınlanmıştır.

Comments