AJAX nedir?

Ağ sayfalarınızın Gmail gibi hızlı olmasını istiyorsanız Asenkron JAvaScript ve
Xml kullanmanız gerekiyor. Nedir AJAX, sunucuda çalışan bir kodun çıktılarının
postback (sayfanın yeni verilerle yeniden yüklenmesi) olmadan istemciye
ulaştırılmasıdır. AJAX aslında yeni bir olay değil sadece var olan bir kaç
teknolojinin bir araya gelmesi ile oluşturulmuş bir yöntemdir diyebiliriz.
Michael Schwarz’ın yazdığı
AJAX.NET modülü ile bu yöntemi ASP.NET sayfalarına da uygulayabiliriz. Temelde
XMLHttpRequest nesnesini kullanarak yazılmış bir yöntemdir.
Daha fazla bilgiyi aşağıdaki adreslerden alabilirsiniz:
http://en.wikipedia.org/wiki/AJAX


http://www.adaptivepath.com/publications/essays/archives/000385.php

Nasıl çalışır:
.NET içinde AJAX metodu olarak işaretlenmiş fonksiyonlar için birer JavaScript
oluşturulur. Bu script istemci tarafından sunucu tarafındaki fonksiyonu çağırmak
için proxy görevi görür. Sunucu tarafında Ajax handler’ı reflection yolu ile
çağırılan metoda benzeyen bir metod arar, bulur, çalıştırır ve sonuçları
istemciye döndürür. Bu arada gerekli olan alt yapıyıda kendisi otomatik olarak
düzenler.
Diyelimki aşağıdaki gibi bir fonksiyonunuz var:

[Ajax.JavascriptMethod]
public string
SayHello(string ad)
{
    return “Hello “ + ad;
}

AJAX.NET sınıfı otomatik olarak ismi SayHello olan bir JavaScript fonksiyonu
oluşturur. Bu fonksiyon çağırıldığında, istek sunucuya gönderilir ve geriye
dönüş değeride istemciye döner.

Kurulum
AJAX.NET’in son sürümünü
bu adresten
indirebilirsiniz. Tüm yapmanız gereken projenizde References kısmına bu dll’i
yüklemektir.
Daha sonra web.config dosyasında bazı değişiklikler yapacağız. Aşağıdaki
handler’ı <httpHandlers> kısmına eklemeniz gerekiyor. Handler aslında var
olmayan bir sayfaya istek yapıldığında ASP.NET uygulamasının nasıl karşılık
vereceğini belirtir.

<add verb="POST,GET" path="ajaxwrapper/*.ashx" type="Ajax.PageHandlerFactory,
Ajax" />

Web.config dosyasındaki bu değişiklikten sonra herhangi bir ASP.NET sayfasının
Page_Load fonksiyonuna aşağıdaki kodu eklemeniz gerekiyor.

private void
Page_Load(object sender,
EventArgs
e){
    Ajax.Utility.RegisterTypeForAjax(this.GetType());

//…
}

JavaScripti sayfaya kaydettikten sonra aspx sayfasını ağ gezgini ile
çağırdığınızda aşağıdaki gibi bir kod meydana gelecektir.

<script language="javascript" src="ajaxwrapper/common.ashx"></script>
<script language="javascript"
src="ajaxwrapper/NAMESPACE.PAGECLASS,ASSEMBLYNAME.ashx"></script>

NAMESPACE.PAGECLASS sayfanın sınıfı olacak ve Inherits parametresinin değerini
alacaktır.
ASSEMBLYNAME ise sayfanın bağlı olduğu assembly ismini alacaktır. Büyük
ihtimalle projenizin ismi olacaktır.

Sunucu-tarafında çalışan fonksiyonların AJAX metodu olarak işaretlenmesi
gerekiyor. Yukarıda da anlattığım gibi Ajax.JavaScriptMethod() etiketi ile
fonksiyonların asenkron olarak çağırılmasını sağlayabilirsiniz. Bu yöntem ile
integer, string, double, boolean, DateTime, DataSet ve DataTable geriye
döndürebilirsiniz.

Bu yöntem ağ uygulamalarına Windows Forms uygulamaları gibi esneklik sağlıyor ve
ağ uygulamalarının daha hızlı cevap vermesini sağlıyor. Günümüzde herkesin hızlı
internet servislerinden yararlanmadığını düşünürsek AJAX gibi bir metodun
yararları daha da fazla beliriyor.
Bu arada Microsoft’ta boş durmuyor. ASP.NET 2.0 ile AJAX benzeri bir teknolojiyi
Atlas adı ile Framework 2.0 içine entegre etmeye çalışıyorlar. Böylece bu
metoddan yararlanarak ağ uygulamaları geliştirebileceğiz. Bu proje ile yeni form
kontrolleri de gelecek.
Atlas bir adım ileri giderek Ağ Hizmetlerine ve Indigo servislerine asenkron
olarak bağlanabilecek. İstemci tarafındaki nesneleri sunucu tarafındaki
nesnelere bağlayabilme özelliği sayesinde güvenlik, kulanıcı tanımlama, arayüz
kişiselleştirme gibi işlemler daha kolay mümkün olabilecek. Kimbilir belki
kullanıcı tokenlarını dahi internet üzerinde taşıyıp uzak sistemlere login olmak
bile mümkün olabilecek. İstemci tarafında lokal olarak “cache” tanımlayıp
verileri burada tutmak mümkün olabilecek. Ne yazık ki Atlas, VS2005 Beta2 içinde
yok. Ancak Eylüldeki PDC ’05’de duyurulacak ve sanırım beta olarak dağıtılacak.
Genede Kasımda çıkması planlanan VS2005 paketinde Atlas olmayacak.

Scott
Guthrie
’nin blogundan Atlas hakkında ayrıntılı bilgi alabilirsiniz.
 

Posted in Bilişim, Türkçe.