Günümüz Web programcılığı alanında vazgeçemeyeceğimiz bir istemci-taraflı yorumlanan script dilidir JavaScript. Hayatımıza 1995'de Netscape 2.0 ile birlikte giren , önceleri Mocha daha sonra LiveScript ve en son JavaScript adını alan (Sun Microsystems'ın Java sıyla bir alakası yok.) müthiş buluş diye tanımlayabiliriz bence JavaScript'i. Web ile uğraşan herkes, en azından bir kere kullanmıştır eminim. Özellikle görsel sunum tarafında, çok fazla varyasyon elde etmemize yardımcı oluryor. Hatırlıyorum da , küçükken bir site tasarımıyla uğraşıyordum ve sitede havai fişek gösterisi olsun istemiştim. O zamanlar da hazır JavaScript kodu bulabileceğimiz çok kaynak vardı. Birkaç saniye içinde, web sitesinde havai fişek gösterisi efektini yakalayabilmiştim. Hiç unutmam içimden : "Allah JavaScript'i başımızdan eksik etmesin!" demiştim.
Sadece görsellik ile bitmiyor JavaScript'in bu kadar popüler olmasındaki etmenler. AJAX(Asynchoronous JavaScript And XML) kavramının temeli, isminin açılımından da anlaşılacağı üzere, JavaScript'tir. XMLHttpRequest objesiyle (IFRAME de kullanılabilir) yapılan bilgi transferi sonrasında, bu bilgiyi dinamik bir şekilde kullanıcıya sunmak ve bilgiyle etkileşim halinde olmak için JavaScript kullanırız.
JavaScript'in yukarıda saydığım özelliklerini ve gücünü göz önüne alan firmalar, açık kaynaklı JavaScript kütüphaneleri oluşturdular. Bu çalışmaların en çok göz önünde olanı jQuery oldu. AJAX kullanımının artmasıyla jQuery kullanımı da arttı. Hakkında birçok makale ve kitap yazıldı. İlgilenenler jQuery.com adresinde, BOOKS ABOUT JQUERY bölümünü inceleyebilirler. Uğur Umutluoğlu'nun da "ASP.NET’te jQuery ile AJAX İşlemleri" başlıklı bir makalesi var.
jQuery'nin yanı sıra, Türkiye'de hakkında pek konuşulmayan; ama üstüne birçok firmanın framework'ler geliştirdiği bir kütüphane var : ExtJS. Şans eseri varlığından haberim oldu aslında. İş görüşmesine gittiğim firmada (şuan çalıştığım firma), görüşme sırasında adı geçti. Biraz ARGE çalışmasından sonra aslında ne kadar kullanışlı bir kütüphane olduğunun farkına vardık.
Tam JS kodlarına gömülmeye hazırlandığım sırada karşıma Coolite adında, efsane, birşey çıktı. Efsane olmasının nedeni .Net'de Markup kodu yazarak Ext objeleri yaratma gücü veren bir framework olmasıydı. Hatta, yarattığımız objelere C# ya da VB kodu yazarak ulaşma yolunu sunuyordu. Aramızda kalsın, JS kodu yazmaktansa C# ya da VB kodu yazmayı tercih ederim.
Bugün yaptığım bir araştırmaya göre de, TURKCELL TEKNOLOJIlabs ExtJS kütüphanesini referans alarak, Java için açık kaynaklı bir framework geliştirmişler. Adı da ISOLA. Coolite'ın Java versiyonu. Güzel tarafı Türkcell'in bu framework'ü open source dağıtması. Coolite'ın ücretli bir framework olduğunu düşünürsek, bu nokta ISOLA'yı daha üstün kılıyor bence.
Tüm bu gelişmeler beni bu konularda makaleler dizisi yazmaya itti ve işte burdayız.
Genel akış içinde ExtJS ve Coolite nedir, kullanım alanları nelerdir, nasıl kullanırız, Sıkça Sorulan(bilecek) Sorular başlıklarının altına dallanarak gelişicek konularımız. Şuan kafamda oluşan plana göre, yazı dizisini yine geniş bir video dizisi seyredicek.Isola hakkında da yazmak isterdim; fakat Java konusunda okadar bilgiye sahip değilim ne yazık ki.
Yukarıdaki bölüm sadece giriş paragraflarından oluşuyor. Artık derinlere inmenin zamanı geldi.
Not (1) : JavaScript ve Ajax'ı bildiğinizi varsayarak başlıyorum. Eğer onları da yazmaya kalkarsam çok ama çok uzun bir yazı dizisi olur. Bu kavramlar hakkında bilgisi olmayan arkadaşlara Daron Yöndem'in ASP.NET AJAX ve ASP.NET 3.5 AJAX adlı kitaplarını öneririm.
Bölüm 1 : ExtJS'e Giriş
Kısaca tanımlamak gerekirse ExtJS, çoklu browser destekli, güçlü kullanıcı arayüzleri programlamanıza yardımcı, Ajax işlemlerini yapmanızı çok kolaylaştıran, Open Source ve Ticari lisansları olan bir JavaScript kütüphanesi.
Lisanslamalarına da dikkat çektim; çünkü eğer ticari bir ürün yaratmak için kullanmak istiyorsanız Ext kütüphanesini, ücretini verip almanız gerekiyor.
Çoklu Browser(cross-browser) destekli dedim; peki hangi browserları destekliyor diye bakıcak olursak,
- Internet Explorer 6 ve sonraki sürümler
- Firefox 1.5 ve sonraki sürümler
- Safari 3 ve sonraki sürümler
- Opera 9 ve sonraki sürümler
Bu maddelere ek olarak Google Chrome'da da güzel bir performans sunuyor.(Bizzat kendim denedim)
Çoklu Browser desteği özelliğini test ettiğimde (Puanlar 5 üzerindendir) :
- Internet Explorer 8 'de 4 puanlık
- Mozilla Firefox 3.5 'da 5 puanlık
- Google Chrome 'da 4 puanlık
randıman aldım.Diğer browserları deneme şansım olmadı.Eğer siz denerseniz sonuçları benimle de paylaşın lütfen.
Arayüz programlama konusunda ise gerçekten çok geniş bir yelpaze sunuyor bize ExtJS kütüphanesi. Benim Ext'e, tabir yerindeyse, aşık olmamı sağlayan bir örnek vereyim size : Desktop örneği.
İşte Desktop
Bu görüntüyü elde etmek için yapmanız gerekenleri, yazmanız gereken JS kodlarını, bir sonraki makalemizde inceleyeceğiz.
Tanımda bahsettiğim bir başka nokta ise AJAX işlemlerini kolaylaştırdığıydı. Aşağıdaki örneklerden de anlaşılacağı üzere, jQuery ve Ext deki AJAX işlemleri çok da farklı değil. Hangi sayfaya istekte bulunacağını, işlem tamamlandığında hangi fonksiyona gideceğini, işlem tamamlanamadığında hangi fonksiyona gideceğini, varsa parametreleri tanımlayıp işlemi bitiriyoruz.
[ExtJS]
Ext.Ajax.request({
url: 'sayfa.aspx',
success: fonksiyon1,
failure: fonksiyon2,
params: { ID:'1' }
});
[jQuery]
$.ajax({
type: 'GET',
url: 'sayfa.aspx',
success: fonksiyon1
},
error: fonksiyon2
}
);
Böylece bu uzun soluklu yazı dizimizin ilk bölümünün sonuna geldik. 2.Bölüm ' de UI tasarlarken ne yapmalıyız, ExtJS 'nin bize sunduğu UI objelerini kullanarak neler yapabiliriz konuları üzerinde duruyor olacağız.
Temelde ExtJS kullanımını konuşucağız bir süre. Bu konulara hakim olduktan JS kodları arasında boğulmadan Coolite ile .NET tarafında ne sihirbazlıklar yapabiliceğimizi göreceğiz.
Merak etmeyin arayı soğutmayacağım, bu aralar müsaitim bol bol yazarım.
Bir sonraki bölümde görüşmek üzere.