Geçtiğimiz ay içerisinde gerçekleşen PDC’09 konferansında Microsoft, ASP.NET AJAX adındaki AJAX kütüphanesini AJAX Control Toolkit ile birleştirerek artık Microsoft AJAX Library adında bir ürün ile yola devam edeceğini açıkladı. Microsoft AJAX Library! Kulağa hoş geliyor. Şu an Beta sürümü Codeplex üzerinden indirilip kullanılabilen bu kütüphane sadece ASP.NET WebForm uygulamalarında değil, ASP.NET MVC, PHP, Ruby on Rail gibi tüm web uygulamalarında kullanılabilir hale getiriliyor. Aslında ASP.NET AJAX jQuery’leşiyor diyebiliriz bu değişikliğe. Her ne kadar .NET Framework’den ayrı olarak geliştirilse de, ASP.NET 4.0 ile birlikte bu ürünün resmen duyurulması bekleniyor. Ben de geçtiğimiz haftalarda gerçekleştirdiğimiz INETA NEXT etkinlikleri vesilesiyle Microsoft Ajax Library’i inceleme şansına sahip oldum.
Microsoft Ajax Library ile neler değişiyor, ne gibi yenilikler geliyor. Şöyle kısaca özetlemeye çalışayım. İlerleyen zamanlarda fırsat bulursam belki detaylı yazılara da yer verebilirim.
Büyük ve düzenli bir JavaScript kütüphanesi: Temel Ajax kütüphanesi dışında Control Toolkit kontrollerinin istemci tarafında kullanılmasına olanak sağlaması nedeniyle JavaScript arşivi oldukça genişlemiş durumda. Debug dosyaları ile birlikte yaklaşık 200 .js dosyasına sahip bir kütüphanemiz var artık. Tabi ki akla ilk gelen bu dosyaların tamamını veya büyük kısmını uygulamamızda saklamak durumunda mıyız? İsterseniz saklayabilirsiniz, istemezseniz alttaki maddeyi okumanızı tavsiye ederim
Microsoft Ajax CDN: Microsoft kendi Ajax kütüphanesini ve jQuery kütüphanesini yine geçtiğimiz aylarda açtığı CDN(Content Delivery Network) hizmeti üzerinden ücretsiz olarak sunmakta. Yani yukarıda bahsettiğimiz JavaScript dosyalarının hiçbirini uygulamanızda barındırmadan kullanabilme şansına sahipsiniz. Bu hizmeti kullanarak uygulamanızın performansını daha iyileştirebileceğiniz gibi, sitenizin gereksiz bandwith tüketimini azaltmış olabiliyorsunuz. Yapmanız gereken tek şey .js dosyalarının referansını Microsoft’un sunucuları üzerinden vermek. Üstelik Visual Studio üzerinde çalışırken internete bağlı iseniz JavaScript intellisense özelliğini aynen kullanabiliyorsunuz.
Script Loader: Ajax Library’de yer alan script loader fonksiyonu(Sys.create) ile ihtiyaç duyduğunuz script dosyalarının sayfanın yüklenmesi esnasında istemciye gönderilmesi sağlanabiliyor. Nasıl yani, anlamadım demiş olabilirsiniz. Şöyle ki, malum artık kalabalık bir istemci kütüphanemiz var. Yapılacak bir işlem için veya oluşturulacak bir nesne için hangi JavaScript dosyaları gerekli sorusunu Script Loader sayesinde düşünmeye pek gerek kalmıyor. Sayfaya sadece temel script dosyalarını ekledikten sonra gerekli işlem veya kontrol ile ilgili çağırımları yaptığınızda arka planda gerekli tüm script dosyaları istemciye gönderilmekte. Örneğin Sys.require([Sys.components.dataView, Sys.scripts.WebServices]); ifadesi ile hem dataView nesnesini kullanacağınızı, hem de bir web servisine bağlanma işlemi yapacağınızı söylüyorsunuz, script loader da arka planda gerekli olan tüm script dosyalarını otomatik olarak istemciye yüklüyor.
İstemci Tarafında Data Yükleme(Client-side Data Binding): dataView adındaki nesne sayesinde artık istemci tarafında data binding işlemi yapılabiliyor. Microsoft Ajax Library’deki en göze batan yeniliklerden olan dataView nesnesi, arka planda bir AJAX talebi ile getirilen verilerin doğrudan istemci tarafında HTML koduna render edilmesini sağlıyor. Özellikle yoğun veri transferi yapılan iş uygulamalarında network trafiğini azaltmak ve hız adına müthiş bir yapı sunan bu özellik ile AJAX işlemleri daha performanslı hale geliyor. Diğer yandan dataView nesnesi sayfa ilk yüklendiğinde statik olarak HTML kodu içerisinde veri saklamayıp, {{ProductName}} şeklinde tanımlayıcıları bulundurduğu için, bu yapının arama motorları açısından bir dezavantaj olduğunu söyleyebiliriz. Tabi ki ilerleyen zamanlarda arama motorları bu tarz string veriler üzerinde özel indekslemeler yapacaktır diye temenni ediyoruz.
jQuery Entegrasyonu: Farklı JavaScript kütüphanelerine kolayca entegre edilebilen jQuery’nin Microsoft Ajax Library ile birlikte çalışması da sağlanmış durumda. Mesela jQuery seçicisi ile seçilen nesneye Ajax Library’de yer alan bir kontrolü kolayca bağlayabiliyorsunuz. Örneğin gerekli öntanımlamalar yapıldıktan sonra yazılan $("#txt1").calendar(); ifadesi jQuery ile seçilen txt1 elementine calendar nesnesi bağlamaktadır.
Client DataContext ve AdoNetDataContext: Açıkcası bu nesnelerle ilgili örnek yapma şansım olmadı, ama madem böyle bir yazı yazdık eksik madde kalmasın:) Burada belirtilen DataContext nesneleri ile bir web servisi veya Data Service üzerinden yapılan veri işlemleri iki yönlü olarak kolayca gerçekleştirilebilmekte. Somutlaştırmak gerekirse; web servisinden getirdiğiniz verileri istemciye yükledikten sonra, istemcinin bu veriler üzerinde yaptığı değişiklikleri ekstra efor sarfetmeden yine web servisi üzerinden sunucuya gönderebilmeniz mümkün. Tabi ki burada seçme ve güncelleme işlemini yapacak iki ayrı web metoduna ihtiyaç duyulacaktır.
Yine belirtilmekte fayda duyduğum önemli bir hususta Microsoft’un bu ürünün arkasında resmi olarak durması ve tam destek vereceğini belirtmesi. Bilindiği gibi bu zamana kadar Ajax Control Toolkit Microsoft tarafından resmi ürün olarak lanse edilmiyordu. Ajax Library içinde yer alan bu kütüphanede artık destek kapsamında. Görüldüğü gibi .NET Framework 4.0’ın çıkması ile sadece sunucu tarafında değil, istemci tarafında da çalışmamız gereken bir hayli ev ödevimiz var. İlerleyen zamanlarda bu konulara daha detaylı şekilde değinmek dileğiyle…
Merhabalar, yakın zaman diliminde jQuery ile çalışan .net bileşenleri için bir ekip toplamaya çalışıyordum. Bu yüzden bu haber beni bir yönden çok sevindirdi bir yöndende üzdü diyebilirim Böyle bir atağın gerçekleştirileceğini tahmin ediyordum ancak Microsoft Ajax kütüphanesi ile birleştirileceğini hiç düşünmemiştim. Eğlenceli olacağını düşünüyorum
e güzel tabi ancak bence kötü yan su öğrenmemiz geren daha cook sey cıktı (zaten cok sey vardı simdi iyice arttı) web application developer olmak zor sey (css js ajax bunların cross browser calısması vs).
umarım ajax library hakkında bol bol türkçe makale olur özellikle data uygulamaları konusundaki detaylı türkçe makaleleri merakla bekliyorum
Teşekkürler !
2010’da bol Ajax’lı makaleler yayınlamanız dileğiyle.
İyi Günler !