Posts tagged AJAX

ASP.NET AJAX SEMİNERİ ve BİRKAÇ ÖNEMLİ SÖZ

ajax.pngGeçen hafta perşembe günü Nedir?TV tarafından düzenlenen ASP.NET AJAX seminerindeydim. Semineri Nedirtv.com ‘un topluluk lideri ve kurucusu Uğur Umutluoğlu verdi.

Bir ara blogumda tüm seminer notlarımı yazmayı düşündüm ama Umut Bey blogunda zaten sunumu ve örnek kodları paylaştığı için link vermem yeterli olur diye düşünüyorum. (Böyle dediğime bakmayın yine bir sürü şey yazacağım )

Ama yine de seminerde değindiğimiz bir kaç öenmli noktaya değinmem gerekiyor. Örenğin: Microsoft ‘un ASP.NET AJAX kütüphanesi WPF ,Web Servisi gibi 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 . Sıra geldi başlıkta bahsi geçen BİRKAÇ ÖNEMLİ SÖZ ‘e. Seminere yaklaşık 40 kişilik kayıt alınmasına rağmen sadece 8 kişi katıldı. CETURK etkinliklerinde de bu tarz sorunlarla karşılaştığımız için katılımın az olabileceğini düşünmüştüm ama bu kadarını ben bile beklemiyordum. Açıkcası öğrenci arkadaşların duyarsızlığı insanı hayata küstürecek cinsten. Ajax-tr yayına başladığında çok ciddi bir ASP.NET AJAX isteği gelmişti okuyuclardan. Yada AJAXNEDIR mail grununda da çoğunluk PHP ile uğraştığı için ASP.NET ile ilgili sorular hep havada kalıyordu. Bu seminer bunun için çok iyi bir fırsattı fakat insanlar kıymetini bilemediler…

Hiçbir ücret talep edilmeden düzenlenen bu tip etkinliklere rağbetin az olmasının altında NASILSA PARA VERMEDİK düşüncesi yattığını biliyorum. İnsalar 3-4 saatlik eğitimlere 100-150 gibi rakamlar ödediklerinde iki elleri kanda olsa bile gidiyorlar ama bu tarz ücretsiz ve paylaşım amaçlı etkinlikler nedense az rağbet gösteriyorlar. Bu sözlerim çalışam kesimden ziyade öğrenci arkadaşlar için. Tüm öğrenci arkdaşlardan bu gibi etkinliklere daha fazla önem vermelerini rica ediyorumve aynı zamanda tavsiye ediyorum. Sadece bilgi anlamında değil çevre yapmak ve farklı kişilerle tanışmak anlamında da bu tarz etkinliklerin getirisi fazla oluyor.

Ş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

AJAX-TR ‘Yİ DUYDUNUZ MU?

ajax_tr.JPGAslında bu yazıyı yazmak için biraz geç kaldım ama hiç yazmamak da olmaz diye düşündüm. Bildiğiniz gibi Web 2.0 ile AJAX adlı bir teknoloji de kendinden söz ettirmeye başladı. Hatta bazılarımız Web 2.0 eşittir AJAX gibi denklemler kurduk. Aslında burada tek ortak yanları aynı zamana denk gelmeleri ve AJAX sayseinde Web 2.0 girişimlerinin rahatlıkla gerçeklenebilir olması.

AJAX yapısı sayesinde artık web uygulamaları daha performanslı ve kullanıcı dostu oldu. Gerçekten de çok önemli bir teknoloji. Fakat yeni bir buluş değil. Yani önceden kullanılan XML ve JAVASCRIPT teknolojilerini bünyesinde barındıran çatı bir teknoloji. Ben de AJAX’ ı uzun zamandır tanımama rağmen katıldığım bir AJAX seminerinde detaylarını öğrenebilidim. O zamandan beri bu konuda kaynak araştırırken önce AJAXNEDİR? Google Grubuyla tanıştım. Orada çok fazla hareketlilik yoktu ve sevgili arkadaşlarım Erhan Yakut ile Erhan Burhan bu konuda Türkçe kaynak sunmak amacıyla yola çıktılar. İşte bu sayede AJAX-TR yayına başladı.

AJAX-TR bu konudaki adam akıllı tek Türkçe kaynak diyebilirim. Konuya yeni ısınanlar için sanırım yabancı kaynaklardan çalışmak biraz zor oluyordur. Bu nedenle ajax-tr ilk günden bu yana çok iyi bir şekilde takip ediliyor. Gerçekten çok sağdık bir ziyaretçi kitlesi oluştu ve yazılan yazılar çok fazla kişi tarafından okunuyor. Biz de elimizden geldiğince iyi bir içerik için ne gerekliyse yapmaya çalışıyoruz. Haftada en az 4 makale yayınlamak öncelikli hedefimiz.

Ben ise bu güzel ortama XML konusundaki yazılarımla destek veriyorum.  Şimdilik AJAX konusunda diğer yazar arkadaşlar gerekli içeriği sağlıyorlar. Ben de belki bir zaman sonra ASP.NET ve AJAX entegrasyonu üzerine de yazılar yazabilirim. Fakat öncelikle XML konularını bitirmeyi hedefliyorum. Burada XML’in önemi çok büyük çünkü sunucu ve istemci arasında veriler klasik HTTPREQUEST ile değil de XMLHTTPRQUEST ile gidip geliyor. Bu yapı sayesinde istemci ile sunucu arasındaki trafik de azalmış oluyor çünkü bu yapı ile veriler sıkıştırılarak taşınıyor.

Özetele eğer AJAX konusuyla ilgileniyorsanız ve Türkçe kaynak arıyorsanız AJAX-TR tam size göre bir yer. Ajax-Tr zamanla daha iyi bir içerik ve daha farklı özellikleri de bünyesine katarak yoluna devam edecek.

YAZARLAR:

  • İBRAHİM DEMİR
  • ERHAN BURHAN
  • ERHAN YAKUT
  • ERHAN ABAY
  • ONUR KÖSE

YAZDIKLARIM:

                     

AJAX NEDİR ? (SEMİNER NOTLARIM)

ajax.JPGBuradaki yazımda  Microsoft Türkiye’de Mehmet Nuri Çankaya tarafından verilen ASP.NET AJAX konulu seminere ait notlarımı sizlerle paylaşacağımı belirtmiştim ve daha yeni fırsat bulabildim.Bakalım seminerden geriye neler kalmış:
Artık günümüz web programcılığı daha fazla işlemin daha kısa sürede yapılmasını gerektiriyor. Yine aynı şekilde artan kullanıcı ihtiyaçları ve beklentileri web’in daha interaktif ve hızlı cevap verebilir olmasını gerektirmektedir. AJAX yani Asenkron Javascript ve XML de bu ihtiyaçtan doğmuş bir çözümdür. AJAX farklı teknolojileri birleştiren bir tasarım desenidir.

AJAX kullanarak uygulama geliştirilirken şu bileşenlerden faydalanılmaktadır:
HTML / CSS
DOM / Javascript
XML / XMLHttpRequest

Klasik bir istemci-sunucu ( client-server) uygulamasında kullanıcı tarafından yapılan her işlem sunucuya HTTP Request olarak gönderilir , yorumlanır ve veriler işletildikten sonra sonuçlar istemciye gönderilir. Bu da çok büyük bir ağ trafiğine neden olur. Örneğin: kullanıcınız bir email adresi girip , doldurduğu formu sunucuya gönderdi fakat email adresi istenilen formatta değil. Bundan sonra sunucudan tekrar form gönderilip kullanıcı tarafından düzletilir ve tekrar sunucuya yeni haliyle form gider. Bu da sunucu ve istemci arasındanki trafiğin büyümesine neden olur.
AJAX kullanıldığında ise istekler HTTP REQUEST yerine XMLHTTP REQUEST olarak gönderilir. Burada sunucu ve istemci arasında taşınan veriler  sıkıştırılmış  XML formatındadır. Bu sıkıştırılmış yapı istemci tarafında açılır böylece sunucu ve istemci arasındaki bant genişliği boş yere işgal edilmemiş olur.
AJAX ile sağlanan en büyük özellik de PARÇALI GÜNCELLEME’ dir. Bu sayade bütün bir sayfanın istemci ile sunucu arasında gidip gelmesiyle doğan ağ trafiğinin önüne geçilmiş olur.Önceden Meta taglerine refresh yazarak bu işlemi yapardık fakat bütün sayfa güncellenirdi ve kullanıcı bomboş bir sayfaya ile başbaşa kalırdı.

AJAX teknolojisiyle ilgili bence en önemli nokta AJAX’ın formlar ile etkileşimi düzenlemek için çok faydalı bir araç olmasına rağmen tek başına uygulama geliştirmeye elverişli olmamasıdır. Fakat akıllıca kullanıldığında uygulamalara hem görsellik hem de performans adına uygulamalara pek çok şey katabilir.

Ayrıca AJAX ile Amerika yeniden keşfedilmemiştir. Yıllardır kullanılan JAVASCRIPT ve XML birleştirilerek yeni bir uygulama deseni oluşturulmuştur. Bu düşünce önce JSP geliştiricileri tarafından ortaya atılmış daha sonra da Microsoft tarafından desteklenmiştir. Önceleri Microsoft bunu ATLAS olarak adlandırmış daha sonra da ASP.NET AJAX olarak desteğini sürdürmüştür. Burada Javascript denilince farklı tarayıcılarda farklı sonuçların ortaya çıkması gibi bir durum söz konusudur. Maalesef internet tarayıcılarımızı üreten firmalar W3C standartalarına sağdık kalmamaktalar ve bu da Javascriptlerin farklı  sonuçlar üretmesine neden olmaktadır. Microsoft ASP.NET AJAX mimarisinin içine istemciler için “Browser Compatibility” kütüphanesini de dahil etmiştir. AJAX ile ilgili olarak arama motorlarının siteyi indekslemesi sırasında da sorunlara neden olduğu haberleri ortalıkta dolaşmaktadır.

Artık Web 2.0 ile siteler kullanıcılarına daha iyi bir web deneyimi yaşatmayı amaçlıyorlar ve AJAX da bunun için iyi bir araç. Belki de bu nedenden ötürü Web 2.0 eşittir AJAX gibi bir düşünce yaygınlaşmıştır.
Bu deneyimin artması her şeyin real-time olarak çalışıyor izlenimi vermesi, daha interaktif olması ve içeriğin zenginleşmesi adına WPF/E teknolojisini Microsoft hayatımıza sokacak. Bu konu gerçekten geniş bir konu ve kaynak bulmak pek de kolay değil . Hala deneme aşamasında. (Şubat ortalarında resmen yayınlanmış olacak) Fakat fırsatım olursa bu konuya ait giriş niteliğinde bir yazı yazmaya çalışacağım. Belki de güzel örnekler bulup sizlerle paylaşırım.

Seminer sırasında aldığım notlar bunlar. Eklemek veya düzeltmek istediğiniz birşey olursa yorumlarınızı bekliyorum. Ayrıca aşağıdaki linklerden konuyla ilgili faydalı bilgilere ulaşabilirsiniz.Beni okumaya devam edin…

SEMİNERE AİT SUNUM  (Mehmet Bey’den aldığım bilgiye göre sunucusunda bir problem var ve en kısa sürede düzelecek)

ASP.NET AJAX FRAMEWORK

ASP.NET AJAX CONTROL TOOLKIT

AJAX13