Yazar GİRİŞİ

Son eklenen makale ve haberler

  Programlama

Anthem kütüphanesini tanıyalım 1 - asp.net ajax yazıları

5 Aralık 2007 Eklemesi : Anthem in ve genel olarak ajax ın ne işe yaradığı ile ilgili bir giriş yapmadığım için sonradan ekliyorum.

Anthem kütüphanesinin amacı nedir? Neden onu kullanma gereği duyabiliriz?

Anthem, asp.net içinde kullanılabilen ajax destekli bir bileşen kütüphanesidir. Zaten yazılmış olan bir asp.net kodunu çok az değişiklikle ajax destekli hale getirmenizi sağlar. Aslında arka planda (kullandığı xmlhttprequest nesnesi ile) tam bir sayfa isteğinde bulunur, ancak sadece belirttiğiniz kontrollerde meydana gelen değişiklikleri sayfanıza yansıtır.

Şimdi isterseniz, anthem ile daha önce hiç tanışmamış asp.net e yeni merak salmış veya asp.net bilip de anthem i daha önce kullanmamış kişilerden birinin yerine kendimizi koyalım ve adım adım ona rehberlik edelim. Ne yapması gerekir bu şahsın ki sayfalar yenilenmeden işlemlerini tamamlayabilsin.

1-) Anthem i bulalım:


http://www.anthemdotnet.com
Adresinden takip ederek şu indirme bağlantısını buluyoruz :
http://sourceforge.net/project/showfiles.php?group_id=151897

2-) Anthem i kuralım:


Anthem size bir proje dosyası (sln) ve c sharp projesi olarak gelecektir (csproj). Eğer Visual Studio kullanıyorsanız zaten derlemekte bir problem yaşamayacaksınız. Ama eğer Visual Studio nuz yoksa bu kodları derlemek için çeşitli seçenekleriniz mevcuttur. Visual c# 2005 veya 2008 express ile derleyebilirsiniz, veya zaten sizde .net framework 2.0 sdk kurulu ise komut satırından msbuild aracını kullanabilirsiniz. Ek bir kurulum gerektirmediği için ben msbuild ile derlemeyi tercih ettim.



Haydi derleyelim :-)


msbuild aracının kullanılışı:


"Build succeeded" yazısını gördükten sonra hemen kütüphaneyi indirdiğim klasöre gidip bakıyorum. Şu an için release modunda değil, debug modunda derledim, görsel araçları kullanan arkadaşlarım, kolayca anthem içine girip bu inşa işlemi sonunda oluşan dll in içinde hata ayıklayabilirler.



Bir asp.net projesinin (veya sanal dizinin - virtual directory-) /bin klasörüne bu .dll i eklemeniz gerekiyor. Bin klasörüne kopyaladıktan hemen sonra, bu dll kullanıma hazır olacaktır.

3-) Basit bir örnek ile mantığını kavrayalım:


Çoğu (ne yazık ki "hepsi" diyemiyorum) asp.net kontrolünün anthem eşdeğerleri vardır. Var olan bir asp.net sayfasını anthem ile ajax-destekli hale getirmek için yapacağınız değişiklikler çok azdır.
    1. <%@ Register Assembly="Anthem" Namespace="Anthem" TagPrefix="anthem" %>(Burada TagPrefix istediğimiz gibi değiştirilebilir, ancak anlamayı kolaylaştırmak namına ben de aynı bırakıyorum.) Bu satırı aspx sayfanızın başına eklemelisiniz.

    2. asp:TextBox yerine anthem:TextBox gibi kontroller kullanacaksınız.
    3. Eğer o kontrolün yapılan ajax çağrısından sonra güncellenmesini istiyorsanız, AutoUpdateAfterCallBack="true" ile veya sayfa yüklenirken kod ile güncelleşmesini sağlayabilirsiniz.
    İşte iki sayıyı toplayan ve sonucu yazan basit bir örnek:

    <%@ Page Language="C#"%>
    <%@ Register Assembly="Anthem" Namespace="Anthem" TagPrefix="anthem" %>
    <script runat="server">
    protected void buttonTopla_Click(object sender, EventArgs e)
    {
        try
        {
        labelSonuc.Text = (Convert.ToInt32(sayi1.Text)+Convert.ToInt32(sayi2.Text)).ToString();
        }
        catch
        {
           labelSonuc.Text = "Hey adamım senin problemin ne?";
        }
        finally
        {
           sayi1.Text = "";
           sayi2.Text = "";
        }
    }
    </script>
    <html>
    <head>
    <title>Çok basit bir anthem örneği</title>
    </head>
    <body>
    <form runat="server">
        <anthem:TextBox ID="sayi1" runat="server" AutoUpdateAfterCallBack="true"/>
        <anthem:Button ID="buttonTopla" runat="server" Text="+" OnClick="buttonTopla_Click"

    TextDuringCallBack="Bekleyiniz..."/>
        <anthem:TextBox ID="sayi2" runat="server" AutoUpdateAfterCallBack="true"/>
        =
        <anthem:Label ID="labelSonuc" runat="server" AutoUpdateAfterCallBack="true"/>
    </form>
    </body>
    </html>

    Ve işte sonuç :


    "Bekleyiniz..." yazısını sonuç çok hızlı geldiği için göremeyebilirsiniz.

    4-) Dikkat edilmesi gereken hususlar:

    Anthem ile iş yaparken dikkatimi çeken sıkça yaptığım hatalar şunlar idi:

    Eğer bir anthem:GridView inden herhangi bir textbox yakalıyorsak veya datalist içindeki kontrollere FindControl ile müdahale ediyorsak, bu kontrolleri Anthem.TextBox, Anthem.CheckBox gibi anthem eşdeğerlerine dönüştürmeliyiz. Zaten karşınıza çıkan hata mesajı yeterince yönlendirici olacaktır, ama bu hatayla uğraşmıştım bir süre. İkincisi, eğer normal bir olay çağrısının (event handler) CallBack sonucu gerçekleşip gerçekleşmediğini tespit etmek için Anthem.Manager.IsCallBack kullanabilirsiniz.

    Bu yazının birinci kısmını burada bitiriyorum. İsterseniz, indirdiğimiz anthem dosyalarıyla beraber gelen Anthem-Examples-2005 klasörünü sanal dizin haline getirip örnekleri inceleyerek bu yazıdan öğrendiğinizden çok daha fazlasını öğrenmeniz mümkündür. Zaten kaynak olarak sıklıkla oraya başvurdum, ilk başladığımda.


anov 02.12.2007

co.mments  del.icio.us  digg  Furl  NewsVine  Reddit  Spurl  TailRank  Wists   



Rating : 10 üzerinden 7.74
 



Tümünü Göster / Sadece Başlıklar Yorumlar

M.Metin Asp.net
S.a , Asp.net Fazla bilmediğim İçin Döküman Hakkında Yorum Yapamayacagım Ama Sonunda Karsılastıgın Hataları Vermen Gerçektende Güzel Olmus Bende Cok karsılasıyorum Hataları Dökümanlarda ama senin Yaptıgın Gibi Karsılasılabilecek Hataları Vereni Gormedim ...


Döküman İçin Çok Teşekkürler...
 
emre güzel
anov makale çok açıklayıcı olmuş teşekkürler, "kafama takılan birşey var "Bekleyiniz..." tek bir label üzerinde yazabiliyormuyuz.
 
UuuR "Bekleyiniz"
anthemin özelliği olaraktan, buton a tıklanıldığı anda işlem süresince,o butonun textini "bekleyiniz.." olarak değiştirebiliyor kendisi. Buttona sağ tıklayıp properties e gittiğinde, göreceksin "Bekleyiniz" yazısını gireceğin özelliği ztn..
 
anov TextDuringCallBack
emre : Sonuç label ının TextDuringCallBack="Bekleyiniz..." yazarsan CallBack gerçekleştiği esnada o label yerinde o yazının çıkması lazım. Ayrıca kendi örneklerinden de görebilirdiğiniz gibi, o özelliğe <img src="loading.gif" gibi değerler verilerek yüklenme esnasında herhangi bir gif resmin görüntülenmesi sağlanabiliyor.
Kolay gelsin.
 
emre Re:TextDuringCallBack
anov: anladığım kadarı ile labelde TextDuringCallBack yapamiyoruz. sitede de şansıma bazı örnekler açılmıyor bekleyip incelemeye devam edim. iyi çalışmalar.
 
anov Re:Re:TextDuringCallBack
emre : Evet doğru şimdi wvd ile bir örnek açıp denedim, sanırım başka kontroller ile karıştırdım bir an label i. Ama istersen (biraz dolambaçlı bir yol olsa da) Anthem_PreCallBack ile bekleyiniz... yazısını istediğin bir yere kurup Anthem_PostCallBack ile (veya eğer güncelleştirdiğin kontrol o ise anthem zaten onun değerini kuracaktır) bu işi yapabilirsin.
 
anov özür
Bir önceki mesajımı okudum da tam anlatamamış olabilirim. Evet emre textduringcallback özelliği label da yok. Yanlış bilgilendirme için özür dilerim.
 
Omer Açıklama
Anthem in tam olarak ne işe yaradığını anlamadım
 
anov Yazının başına küçük bir açıklama paragrafı eklendi.
Omer, yazının başına küçük bir açıklama paragrafı ekledim. Anthem bir bileşen kütüphanesidir, onun içerdiği bileşenler sayfa yenilenmeden değişebilme yeteneğindedir. Kolay gelsin.
 
yasin güzel
Konu cok acıklayıcı olmus teşekkürler..Asp kullacınıcısı olarak asp.nete geçiş önerirmisiniz bu hizmetler etkileyici...
 
anov asp.net e geçiş konusu
Evet öneririm.
* İnternet amacıyla kullanılan bileşenlerin kurulumu kolaydır.
* Ajax kütüphanelerinin kullanımı kolaydır.

Örneğin burada kullandığım kütüphaneyi bir dll olarak projeye eklemem için /bin klasörüne kopyalamam yetti, asp.net 2.0 çalıştırabilen her yerde (bileşenin yazarı ubuntu linux altında da bunları test ettiğini söylüyor, ben henüz test etmedim) bu dll i kopyalayıp çalıştırabilirsiniz.

nesne yönelimli programlama ve yazdığınız şeyleri bileşen haline getirme sizde bir alışkanlık halini aldığı zaman, aynı görevleri tekrar tekrar yapmaktansa bileşen satın almak veya var olan bileşenleri bir araya getirmek yolunu seçeceksiniz. url rewriting için bileşen ajax için bileşen, sonuç grafiği göstermek için ayrı bir bileşen. Eğer seçtiğiniz bileşenler açık kaynak kodlu ise, müdahale şansınız da olacaktır.
 
ahmet iyi
size perfet veriyom
 




yorum Yorum ekle
İsminiz:
Mailiniz:
Yorum Konu:
Soru: Cumhuriyetimizin kuruluş yılı?
Cevap :
Bütün alanları doldurmanız gerekmektedir.

 
XHTML 1.0 CSS 2.1
Ceviz Reklam