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.
 

Reklamlar


Bu girdiye atılan yorumlar:

# re: AJAX nedir?

Teşekkürler güzel bir makale :) merak ediyordum ajax ı

mobile tarafından  2/14/2009 9:33 AM tarihinde atılmıştır.
# re: AJAX nedir?

ellerine saglik dostum.. sayende ajax nedir öğrendim.

araba tarafından  2/12/2010 8:58 PM tarihinde atılmıştır.
# re: AJAX nedir?

Ajax dendiği zaman bir futbol kulübü olarak bilirdim. Tesadüfen girdiğim sitenizde ne olduğunu öğrendim. Bu güzel bilgilendirmeleriniz için teşekkürlerç

Mustafa tarafından  8/3/2010 11:19 PM tarihinde atılmıştır.
# re: AJAX nedir?

makale için teşekkürler.çok faydalı

Donanim Haberi tarafından  8/14/2010 6:03 PM tarihinde atılmıştır.
# re: AJAX nedir?

benim için kurtarıcı bi site oldu sagol arkadaş.

web tarafından  12/13/2010 3:23 PM tarihinde atılmıştır.
# re: AJAX nedir?

gerçekten güzel bir anlatım olmuş teşekkürler

serhat tarafından  6/20/2011 11:04 PM tarihinde atılmıştır.

Yorumunuzu buradan giriniz

Yorumlar onaylandıktan sonra yayınlanacaktır

*


*


 (Görüntülenmeyecek)


 (İsminizde link olarak görüntülenecek)


*
Bold Italic Underline Blockquote Hyperlink Hyperlink

 

Please add 3 and 1 and type the answer here:

Yorum Önizleme:

 

Arama



Hakkımda

Merhaba, ben Gürkan Yeniçeri. 10 yılı aşkın süredir özel sektör ve hükümet iştiraklerinde yazılım mühendisliği yapıyorum. Bu sitede 2005 Mart ayından beri genelde yazılım mühendisliği ve hobilerim hakkında yazmaktayım. Profesyonel iş geçmişim hakkında daha fazla bilgiyi aşağıdaki Linkedin.com linkinden alabilirsiniz.
Gürkan Yeniçeri'nin profilini görmek için tıklayın

Kontak

Soru sormak veya öneride bulunmak isterseniz buradaki kontak formunu kullanın. Mesajlarınıza en kısa zaman içinde cevap vermeye çalışacağım. Ayrıca Windows Live Messenger kullanarak gyeniceri {AT} hotmail {DOT} com adresinden bana ulaşabilirsiniz.

Eğer İngilizce blogumu okumak isterseniz buraya buyrun.
Blogumu RSS Bandit gibi bir RSS okuyucusu ile de takip etmek için kullanın.
Ayrıca aşağıdaki linklerden hakkımda ayrıtılı bilgi alabilirsiniz.
Twitter
Friendfeed
Facebook

RSS 2.0

Reklamlar


Vezir

Vezir Proje Danışmanı
Sitede birde Vezir isminde wikimiz var. Bu wikiyi yazmayı düşündüğüm bir kitap için oluşturmuştum daha sonra herkese açmaya karar verdim. Vezir yazılım firması kurmak isteyenlere tavsiyeler vermek için hazırlandı. Ayrıca UML ve Modül Tabanlı Geliştirme hakkında da bilgiler mevcut. Vakit buldukça yeni eklemeler yapıyorum. Değişikliklerden haberdar olmak için RSS çıktısına üye olabilirsiniz.

Tag Bulutu

Tüm taglar...
www.flickr.com
This is a Flickr badge showing public photos from gurkanyeniceri. Make your own badge here.
Bu blogda 265 yazı ve 509 yorum var. Diğer sitelerden 26 adet link gelmiş.

Reklamlar