Microsoft Ajax CDN

Microsoft geçtiğimiz aylarda web uygulama geliştiriciler için kendi CDN(Content Delivery Network) hizmetini duyurmuştu. Bu hizmet sayesinde artık uygulamalarımızda kullanmak istediğimiz Microsoft Ajax Library ve jQuery script dosyalarını doğrudan proje içerisinde saklamaya ihtiyaç duymuyoruz. Şöyle ki, bu hizmet zaten bahsi geçen dosyaların Microsoft sunucuları üzerinde saklanmasını ve uygulamaların bu dosyaları referans olarak alması durumunda ilgili kütüphanelerin kullanabilmesini sağlıyor. Bu çok mu gerekli diye sorabilirsiniz, cevabı tamamen sizin ihtiyacınıza bağlı. Sonuçta aynı dosyaları kendi projeniz içerisinde barındırdığınızda, istediğiniz zaman istediğiniz kısımlarını değiştirme, güncelleme şansına sahipsiniz. Ancak diğer tarafta bahsettiğimiz kütüphanelerde zaten çok ciddi ekipler tarafından geliştirilen ve üzerinde çok da fazla değişiklik yapılmaya ihtiyaç duyulmayan kütüphaneler. Dolayısıyla bu kütüphanelerin güvenilir bir CDN hizmeti üzerinden kullanımı performans ve uygulamadaki dosya karmaşasını azaltmak adına doğru hareketler olacaktır. CDN hizmetini sunan kurum dünyanın farklı konumlarında bu dosyaları barındırması için belki de binlerce sunucu kullandığı için sizin uygulamanıza gelen talepler load balancer'lar aracılığıyla en hızlı hizmet sunacak konumdaki sunucuya yönlendiriliyor.

Microsoft Ajax Library olsun jQuery olsun eklenti dosyaları ile birlikte ciddi büyüklüğe sahip(Microsoft jQuery’nin core dosyaları dışındaki eklenti dosyaları için CDN hizmeti sunar mı, şimdilik bilinmiyor) Dolayısıyla bu kadar dosyayı sunucuda barındırmak özellikle JavaScript dosyaları için hiyerarşi karmaşasına yol açabilir. Böyle bir karmaşa içerisinde çalışmak istemeyenler için şiddetle Microsoft, Yahoo, Google, Amazon gibi sağlayıcıların CDN hizmetlerini kullanmalarını tavsiye ederim. Microsoft AJAX CDN için bu sayfadan gerekli bilgileri alabilirsiniz.

Gelelim basit bir örnek ile Microsoft CDN'i test etmeye. Aşağıdaki kod parçalarında bir text input kontrolüne Microsoft Ajax Library'de yer alan Calendar bileşenini bağlıyorum. Dikkat edeceğiniz gibi CSS ve JavaScript dosyalarının konumları ajax.microsoft.com adresi üzerinden verilmiş.

<link href="http://ajax.microsoft.com/ajax/beta/0911/extended/Calendar/Calendar.css" rel="stylesheet" type="text/css" />

 

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/beta/0911/Start.js"></script>

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/beta/0911/extended/ExtendedControls.js"></script>

 

<script type="text/javascript">

    Sys.require(Sys.components.calendar);

 

    Sys.onReady(function () {

        Sys.create.calendar("#txt1");

    });

</script>

Visual Studio'da JavaScript kodlarını yazarken dahi intellisense özelliğinin tıkır tıkır çalıştığını, Microsoft Ajax Library'de yer alan nesne ve fonksiyonlara kolayca erişebildiğinizi göreceksiniz. Sayfayı çalıştırırken Fiddler gibi bir web debugger uygulaması kullanarak sayfayı izlerseniz olayın detaylarını da güzel bir şekilde görebilirsiniz.

Göreceğiniz gibi kırmızı kutu içerisindeki dosyalar sadece bizim kod içerisinde referansını verdiğimiz dosyalar. Önceki yazımın Script Loader kısmında belirttiğim gibi Microsoft Ajax Library çalışma anında ihtiyacı duyduğu dosyaları da istemciye yüklemektedir. İşte resimde mavi kutu içerisinde gördüğünüz dosyalar da diğer script dosyalarıdır. Tüm dosyaların Host kolonundaki adres bilgilerine bakacak olursanız dosyaların ajax.microsoft.com adresinden çekildiğini görebilirsiniz. Sonuç olarak sorunsuz ve daha hızlı çalışan bir AJAX uygulaması elde etmiş olduk.