Merhabalar Sevgili AJAX-TR Okuyucuları ;
Geçen hafta perşembe günü Nedir?TV tarafından düzenlenen ve Uğur Umutluoğlu tarafından verilen ASP.NET AJAX seminerindeydim. Seminer notlarımı kişisel blogumda paylaştıktan sonra AJAX-TR okuyucularıyla da paylaşmanın güzel olcağını düşündüm. Hem uzun zamandır fırsat bulup da AJAX-TR ‘de birşeyler yazamamanın vermiş olduğu vicdan azabından da kurtulurum ümidiyle seminer notlarımı buraya taşıyorum.
Umut Bey blogunda zaten sunumu ve örnek kodları paylaştığı için tek tek sunumda bahsi geçen bileşenlerden bahsetmeyeceğim. Onun yerine sunumda bulunmayan fakat üzerinde fikir alış verişi yaptığımız konulara değinmek istiyorum. Örenğin: Microsoft ‘un ASP.NET AJAX kütüphanesi WPF (Windows Presentation Foundation) ,Web Servisleri gibi teknolojiler ve ASP.NET 2.0 ile sorunsuz çalışırken ASP.NET 1.1 ve 1.0 ile çalışamamaktadır.
Seminer sırasında standart AJAX kontrolleri olan ScriptManager, ScriptManagerProxy, Timer , UpdateProgress ve Update Panel bileşenleri üzerinde durduk.
ScriptManager ile ilgili olan ve sunumda yer almayan en önemli madde de MasterPage kullandığımız durumlarla ilgili. Eğer sayfanızı bir MasterPage ‘den türetiyorsanız sadece MasterPage ‘de ScriptManager olması yeterli çünkü her sayfada bir tane ScirptManager yeterli oluyor. Bu arada tüm kontrollerden üstte olasına dikkat edin ScriptManager ‘ın.
UpdatePanel ile ilgili olarak da UpdateMode özelliğini Always yaparsanız sayfadaki bütün tirggerlardan etkilenir. Eğer böyle bir durumla karşılamak istemiyor ve sadece sizin istediğiniz triggerler sonucu güncellenmesini istiyorsanız UpdateMode özelliğini Conditional yapın.
UpdatePanel ‘in bir diğer önemli özelliği ise ChildrenAsTrigger özelliğidir. Burada children ile içerisindeki kontroller kastedilmiştir. Yani bu özellik True iken içerideki herhangi bir kontrolün oluşturacağı postback ile UpdatePanel otomatik olarak güncellenir. Bu gibi durumların önüne geçmek için de bu özelliğini False yapmalısınız. UpdatePanel ‘in güncellenmesini kontrol altına almanın en güzel yanı Trigger özelliğine (Collection yapısındadır) AsyncPostBack Trigger eklemektir.
Bir diğer önemli kontrolümüz olan UpdateProgress ile de bir UpdatePanel güncellenirken kullanıcıya “yükleniyor…” , “bağlanıyor…” gibi görseller sunabilirsiniz. Burada AssociatedUpdatePanel özelliği ile hangi UpdatePanel güncellendiğinde görüntüleneceğini belirtmeniz gerekecektir. (Properties penceresinde muhtemelen bu özelliğe ait dropdownlist çalışmayacaktır o nedenle boş yere beklemeyin ve ilgili UpdatePanel ‘in ID’sini kendiniz yazın). Ayrıca DisplayAfter (ms) özelliği ile de ne kadarlık bir süre sonra gösterileceğini belirleme şansınız var. UpdateProgress ‘i ilgili UpdatePanel içerisine koyarak da otomatik olarak ilişkilendirilmesini sağlayabilirsiniz.
AJAX kontrollerinden Timer kontrolü ile de bir UpdatePanel ‘in belirleyeceğiniz süre (Interval değerini belirleyerek) otomatik olarak güncellenmesini sağlayabilirsiniz. Yukarıda belirttiğim gibi UpdatePanel ‘e trigger olarak eklemeniz yeterli olacaktır.
Sunumu da dikkatlice incelerseniz sanırım ASP.NET AJAX kontrollerini yavaş yavaş kullanmaya başlayabilirsiniz. Fakat bu noktada bazı problemlerle de karşılabilirsiniz.
Mesela sevgili hocam Sefer Algan ‘ın blogunda bahsi geçen ; sayfada farklı UpdatePaneller içerisinde farklı UpdateProgressler varsa ve UpdatePaneller dışarıdan trigger olarak eklediğiniz bir kontrol sonucu güncelleniyorsa o zaman UpdateProgress görüntülenmiyor. Sorunun çözümü ve detaylar için bu yazıyı okumanızda fayda var.
Bir diğer sorun da web projenizi çalıştıracağınız sunucu da AJAX EXTENSIONS kurulu değilse yaşanıyor. Bu konuyla ilgili olarak Uğur Bey blogundaki bu yazı ile okuyucularına yardımcı olmaya çalışmış. Siz de bu tarz bir sorunla karşılaşıyorsanız blogdaki tartışmaya katılabilirsiniz.
Ben de bitirme projemde AJAX ile bazı ASP.NET VALIDATION kontrolllerini kullanırken sorun yaşıyorum. Tam olarak sorunun nedenini bulamadım ama özellikle de validation ard arda çalışacaksa 2. seferde uyarı vermiyor. Zaten ASP.NET validation kontrollerinde bazı kafaya göre çalışma durumları olduğunu bildiğimden pek de takmıyorum ben bu durumu ![]()
Seminerle ilgili verebileceğim teknik detaylar bunlar. Sunumda ve yukarıda bahsi geçen örnekleri denemek için yapmanız gerekenler ise şöyle:
- Eğer lisanlı bir Visual Studio sahibi değilseniz Visual Web Developer 2005 Express Edition indirip, kurun.
- Daha sonra buradaki adresten ASP.NET 2.0 AJAX Extensions 1.0 bileşenini indirip kurun.
- Visual Studio içerisinden File-> New Web Site-> ASP.NET AJAX-Enabled Web Site yolunu izleyerek boş bir site açın.
- Toolbox içerisine AJAX Extensions ‘ın eklendiğini göreceksiniz. Buradaki bileşenleri sayfaya sürükleyip bırakarak Properties penceresinden yukarıda bahsi geçen değerleri değiştirebilirsiniz.
Unutmadan değinmem gereken bir nokta daha var. ASP.NET Web Site ile ASP.NET AJAX-Enabled Web Site arasındaki tek fark Web.config dosyası içerisindeki eklemeler. Bu nedenle önceden yaptığınız bir siteye sonradan AJAX özelliği katmak isterseniz boş bir AJAX-Enabled site açıp onun oluşturduğu Web.config dosyasının içeriğini eski sitenizin Web.config dosyasının içine yapıştırmanız yeterli olacaktır. (Yapıştırma işlemi sırasında hedef dosyanınzda başka bilgiler de tutuluyorsa onları kaybetmemeye dikkat etmelisiniz)
Şimdilik benden bu kadar. Bir sonraki yazıya kadar sağlıcakla kalın…
Uğur UMUTLUOĞLU Blog
Sunum dosyası
Sunumda yapılan uygulamalar
Toplamda 5021 kez okunmuş.
Şu an 1 kişi okuyor.
En fazla 4 kişi aynı anda okumuş.
Bugün 1 kez okunmuş.
Etiketler: ajax, asp.net, kütüphane, seminer, web
Trackback Yorumları takip et Baskı Önizleme

(14 oy, ortalama 4.07)
# ugur | 25 Mayıs 2007, 16:04
Oldukça faydalı bilgiler. Ajax kullanmakta büyük zevk ayrıca.
# firat | 25 Temmuz 2007, 21:21
ellerinize sağlık
ama ben asp den anlamıyorum
Görüntülü php ve ajax dersleri devam edecekmi
# yakuter | 26 Temmuz 2007, 02:04
Görüntülü devam edebilir miyiz bilmiyorum ama yazılı olarak devam edeceğimizden emin olabilirsiniz
# sun | 30 Temmuz 2007, 01:37
iyi güzel.ama ben biryerde takıldım.
masterpagede diyelimki bir updatepanel var ve masterpageden turettiğimiz default.aspx dede baska bir gorevi ustlenmıs updatepanel var.default.aspx de iken updatepaneli güncellediğimizde genel olan (masterpage deki)updatepanelde guncelleniyor ve bunun onune bir turlu gecemiyorum.cevap yazarsanız sevinirim.
dipnot:arastırmama gore default.aspx.cs de masterpage deki updatepaneli.enable ını false yapcakmışız.
# Yücel | 06 Ekim 2007, 10:51
Merhaba ben mantık olarak masterpage de varolan bir scriptmanageri kullanmanın dogru olduğunu biliyorum ama content page içerisindeki bi ascx dosyası masterpage deki scriptmanageri gormuyor bu sebeple site hataveriyor. internette araştırdığım kadarıyla web.confgiteki bazı yerlerin silinmesi gerekiyormuş. kiminse bazı yerlerin değiştirilmesi gerektiği yazıyor. Yazınızı okudum denildiği gibi sadece masterpage. te scriptmanager olması yeterli ancak hangi ayarları yapıyorsunuz site için. direk oyle masterpage’e konulunca çalışmıyor çünkü.
# Sefa Şahin | 10 Kasım 2007, 22:27
Yaziniz Cok Guzel İnsallah Daha Genis İcerikte Bir Site Olur Tesekkurler
# Serdar | 04 Ocak 2008, 16:59
Selamlar ASP NET ile ilgili makalelerinizin devamını bekleriz..