28 Ekim 2007 Pazar

Mobil cihazlar için içerik üretmek ve Adobe Device Central

Cep telefonu, PDA gibi mobil cihazlar için içerik hazırlamak çoğu zaman zahmetli ve masraflıdır. Üretilen içerik bir cihazda güzel çalışsa, diğer bir üründe kötü çalışabilir. Adobe Device Central, bu konuda işlerinizi kolaylaştırabilir.

Günümüzde PDA'lerin pabucu dama atıldı denebilir. Tüketiciler tek bir ürün istiyorlar. Günümüzde, cep telefonlarının özellikleri ve ekran çözünürlükleri o kadar arttı ki, her cep telefonu bir PDA kadar çok özelliğe sahip durumda. Her ne kadar, PDA'ler yavaş yavaş kalkıyor olsa da, piyasada halen birçok farklı marka ve model cihaz var. Ürettiğiniz içeriğin piyasadaki mobil cihazlarda sorunsuz çalıştığını görmek ve içeriğinizi düzeltmek için, her marka ve modelden birer cihaz almanız gerekir. Adobe'nin, bu sorunu ortadan kaldıran, içeriğinizi cihazlar için uygun ve uyumlu hale getirmenize yardımcı olan bir ürünü var: Adobe Device Central.

Bu ürünü kullanarak, içeriğinizi piyasadaki en çok kullanılan mobil cihazlar için simülasyon tekniğiyle sınayabilir ve gözlemleyebilirsiniz.

Ayrıntılar: http://www.adobe.com/products/creativesuite/devicecentral/


23 Ekim 2007 Salı

AJAX dünyası ve Adobe

Adobe'nin, bir Javascript kod kütüphanesi olan Spry'ı hazırlamaktaki amacı nedir? Hedef kullanıcı kitlesi nedir? ColdFusion ve Spry ne kadar entegredir.

Resmî sayfasındaki (http://labs.adobe.com/technologies/spry/) kelimelerden de farkedebileceğiniz üzere, Spry Framework'ün hedef kitlesi web site tasarımcılarıdır. Dreamveawer eklentisini (http://www.macromedia.com/go/labs_spry_download) kullanarak, tasarımcılar hazırladıkları sayfalarda AJAX yetenek ve işlevlerinden istifade edebilirler. Dreamveawer'daki "Code" görünümüne hiç geçmeden, tamamıyla Design görünümünde kalarak AJAX kullanabilirler. Eklenti sayesinde, Properties kullanarak linkler "dinamik" hale getirilebilmektedir. Dreamveawer CS3 ilk kurulduğunda Spry kurulu gelmiyor. Sonradan kurulması gerekiyor. Spry'in sitesinden indirilip kurulabilir.

ColdFusion ve Spry

Tahmin edilenin aksine Adobe, ColdFusion 8'de Spry kullanmamıştır. CFWINDOW, CFDIV, CFLAYOUT vs gibi etiketler, Spry'ı kullanmamaktadır. Adobe, ColdFusion 8'de Ext JS kütüphanesini ve YUI kütüphanesini (http://developer.yahoo.com/yui/) kullanmıştır. Söz konusu kütüphaneler, zengin arayüzler hazırlamak ve AJAX işlevlerini sunmak için kullanılabilen çok başarılı kütüphanelerdir.

Ext JS

Şirketin resmî internet sitesine http://extjs.com/ adresinden ulaşılıyor. Şirket, performanslı Destek Takımı (http://extjs.com/deploy/dev/docs/), zengin dökümantasyonu ve imrendiren referans listesi (http://extjs.com/) ile göz dolduruyor. Topluluklar (community) tasarından hazırlanmakta olan ve dünyanın en esnek lisansı olan BDS lisansı (http://en.wikipedia.org/wiki/BSD_license) altında sunulan YUI kütüphanesini temel alarak ürün geliştirmeye başlayan şirket, bir iki yıl içerisinde çok başarılı bir ürün ortaya çıkarmış durumda. Adobe tarafından ilhak edilerek bünyeye katılacağı öngörülebilir.

Dreamveawer ve Visual Studio

Microsoft, son teknolojileri çok yakından takip etmekte ve çoğu zaman eğilimleri yönlendirmektedir. Bunun en belirgin göstergelerinden biri durumunda olan Visual Studio (http://msdn.microsoft.com/vstudio/), IDE (http://en.wikipedia.org/wiki/Integrated_development_environment) pazarının en bilinen ve en güçlü ürünlerinden biridir. AJAX "furyasının" başladığı ilk günlerden bu yana AJAX desteğini sürdürmektedir. Adobe Dreamveawer, bu ürünle kıyaslandığında, güncelliğini kaybetmiş durumdadır. Adobe, Spry Framework'ü hazırlamak suretiyle, bu eksikliğini kısmen gidermiş durumdadır.

08 Ekim 2007 Pazartesi

Gmail kullanın, herşey yerli yerine otursun

05 Ekim 2007 Cuma

AJAX'ın avantajları ve dezavantajları

İyi teknolojiler zaman içerisinde, öngörülenin ötesinde yenilik ve kolaylık getirir. AJAX böyle bir 'teknoloji'dir. Bu yazıda, AJAX'ın tecrübeyle sabit bazı avantajlarından ve dezavantajlarından bahsedilecektir.


Avantajları

Kullanıcıların kullandıkları sayfaların gereksiz yere yenilenmesi, hem teknik birçok kodlamayı gerektirir hem de kullanıcı bundan pek hoşlanmaz. Geliştiriciler olarak, AJAX kullanarak bir çok kolaylık sağlayabiliriz hem kendimize hem kullanıcıya. İşte bazıları...

  • Sunucunuz boşuna yorulmaz: Ekranda açık bir sayfayı görüntülemek için sunucunuzda bir çok işlem gerçekleşti. Bunların hepsini tekrar yaptırmanıza gerek yok. Sunucunuzu boşuna yormayın. Sunucuyla bilgi alış verişi yapmak istiyorsanız AJAX ile yapabilirsiniz.
  • Submit'leri karşılayan kodlarınız sade ve basit olur: Formu yenilemek için "submit" edildiğinde, sunucudaki kodlarınız, "Kaydet" düğmesine basılmadığını, sadece sayfanın yenilendiğini tespit etmek zorundadır. Bu kodu her sayfaya koymak zorunda kalırsınız. Sayfayı yenilemeyin. AJAX kullanabilirsiniz.
  • Doldurulmuş bir formdaki değerleri hatırlama derdinden kurtulun: Sayfayı yenilerseniz, kullanıcının girdiği bilgileri muhazafa etmeli, sayfa yüklendiğformdaki kutuları dolu getirmelisiniz. Dolu getirme kodları can sıkıdır. Sayfayı yenilemeyin. AJAX kullanabilirsiniz.
  • Kullanıcı bekletilmez: Sayfanın yenilenmesi bazen uzun sürer. Kullanıcı beklemekten hoşlanmaz. Vereceği optional bilgi varsa bile vermekten vazgeçer. Sayfayı gereksiz yere yenilemeyin. AJAX kullanabilirsiniz.
  • Bandwidth: Sayfa yenilendiğinde, sunucunuzun bandwidth'ini harcar. Ne kadar az sayfa yenilemesi olursa, sunucunuzun hattı o kadar rahat olur. Sayfayı gereksiz yere yenilemeyin. AJAX kullanabilirsiniz.
  • Entegrasyon kolaylığı: AJAX ile hazırlanmış objeleri/nesneleri, uygulamanızdaki sıradışı sayfalara bile entegre etmek çok kolaydır. Hazırladığınız bir Yorum Yazma Formu'nu ele alalım... Bu formu Kitap Detay sayfasına ekleyebileceğiniz gibi, Haber Detay sayfasına da ekleyebilirsiniz. Şöyleki; Yorumu Gönder düğmesine basıldığında, AJAX kullanarak, formdaki bilgileri merkezî ortak bir "/comment/save.cfm" dosyasına gönderebilirsiniz. Sayfa yenilenmeden. Kitap Detay ve Haber Detay sayfalarında yorum mekanizmasıyla ilgili olarak neredeyse hiç kod yazmazsınız.
  • Kullanıcıların kafası karışmaz: Formu kaydetmek için sayfayı yenilemezsiniz. Kullanıcıyı "save.cfm" sayfasına yönlendirmezsiniz. Yönlendirdiğiniz sayfadan nasıl geri dönülür uğraşmak zorunda kalmaz. Kullanıcı aynı sayfada kalmaya devam eder. Kullanıcıdan alacağınızı alırsınız. O da vereceğini verir. Sayfayı boşuna yenilemeyin. AJAX kullanabilirsiniz. Bu konuyla ilgili bir başka yazı: Sayfadaki bilgiyi değiştirmede yeni yaklaşımlar
  • Aşamalı formlar hazırlamak kolaylaşır: Her ne kadar AJAX ile doğrudan ilgisi olmasa da, Javascript kullanarak, aşamalı Sihirbaz formlar hazırlayabilirsiniz. "İleri" düğmesine basıldığında, birinci formu gizler ikinci formu gösterirsiniz. Form henüz submit edilmediğinden, kullanıcı formu kapattığında, veritabanına "temp" kayıtlar kaydedilmemiş durumdadır. Mecbur kalmadıkça veritabanına böyle "temp" şeyleri kaydetmeyin. AJAX kullanabilirsiniz.

Dezavantajları

Her ne kadar iyi bir teknoloji olsa da, getirdiği yeni yaklaşımlardan dolayı bazı dezavantajları da olabilmektedir. İşte bunlardan bazıları...

  • Kullanıcı deneyimlerinin kayıt altına alınması: Kullanıcılarınızın yazılımınızdaki deneyimlerini izliyorsanız, yaptıkları her tıklamadan haberdar olmak isterseniz. AJAX kullanılmış sayfalarda bu noktada bazı sıkıntılar çıkabilir. AJAX ile hazırlanmış düğme ve linklerde sayfa çoğu zaman yenilenmez. Adres satırı genelde değişmez. Bu nedenle, klasik teknik yöntemleri kullanırsanız, ziyaretçilerin tıklamalarını ölçemezsiniz. Bu sıkıntıyı ortadan kaldırmak için, AJAX kodlarınızda, bu tıklamaları ölçen teknikler kullanmalısınız. Kullanıcı deneyimlerini ölçmek için hangi aracı kullandığınız bu noktada önem kazanmaktadır. Eğer Google Analytics kullanıyorsanız, AJAX kullandığınız sayfalarınızı ölçebilirsiniz. Sıkıntı yaşamazsınız. Google'ın şu yazısı size yardımcı olacaktır: AJAX uygulamalarını nasıl izlerim?
  • Sunucudaki bilgi güncellendiğinde ziyaretçinizin ekranını güncellemek: Klasik AJAX tek yönlüdür; kullanıcının tarayıcısı sunucuyu kontrol etmediği sürece, ekrandaki bilgi güncellenmez. AJAX'ın bu 'eksikliğini' 'gideren' 'Reverse AJAX' yaklaşımı incelemek isteyebilirsiniz: Reverse AJAX
  • Teknik kadronun bu yeni teknolojiye adapte olması: AJAX yeni bir teknolojidir. Yararlanılması gereken bir teknoloji olduğu kesindir. Teknik kadrolar bu kadar hevesli olmayabilirler. Uygulama Sunucu teknolojiniz üzerinden kodlama yapan kadrolarınızın bu yeni teknolojiyi öğrenmesi zaman ve maliyet anlamına gelebilir.
  • Atılan taş, ürkütülen kurbağaya değmeli: AJAX bir Javascript yan teknolojisidir. Klasik Javascript tek başına bile, uygulama altyapınızı karmaşıklaştırmaya yetebilir. AJAX kodlarınızın Javascript kodlarınızı daha çetrefilli hale getirmesine izin vermemelisiniz. Sağlamlığı ve kalitesi dünyaca kabul edilmiş AJAX Frameworkleri kullanabilirsiniz. Mümkün olduğu kadar, kullandığınız Uygulama Sunucu teknolojisinin önerdiği ve built-in sunduğu AJAX yetenekleriyle işlerinizi halletmeye çalışın. AJAX Framework ve Design Patternleri için bazı kaynaklar:
    http://en.wikipedia.org/wiki/Ajax_framework
    http://ajaxpatterns.org/
    http://developer.yahoo.com/yui/
  • Tarayıcının İleri-Geri düğmeleri: Kullanıcılar, bir linki tıklattıklarında, önceki sayfaya geri dönebilmek isterler. Yaptığınız AJAX kodlamasına bağlı olmak üzere, bu düğmeler bazen çalışmayabilir. Uygulamanızı kodlarken, İleri-Geri düğmelerinin sorunsuz çalışmasını sağlayın. AJAX sizin seçiminizdir. Kullanıcılara hiçbir dezavantaj getirmemelidir!

04 Ekim 2007 Perşembe

ColdFusion 8'in getirdiği yenilikiler

Sunucu tarafı yazdırma (Server Side Printing): Ürününüz bu özelliği kullanırsa şu olur; müşterileriniz, bir raporu yazırmak için, artık kendi bilgisayarlarında ayar yapmak zorunda kalmazlar. Formunuzdaki "Yazdır" düğmesi tıklatıldığında, ColdFusion raporu yazıcıya direkt olarak yazdırır. Rutin yazdırma işlemlerini gece yarısı otomatik yapılması için schedule edebilirler.

Kod yazımında değişiklikler: Değişkenler üzerinde işlem yapmak için artık Javascript tarzı operatörleri kullanabilirsiniz:

a++

If a == 0

If a > 0

a = ["eşref", "atak"] //dizi

a = {ad="eşref", soyad="atak"} //structure

...

Etiketlerle ilgili değişiklikler:

<cfmail attributecollection="#mailattrs#">

<cfloop file="c:\simplefile.txt" index="line">

<cfdump var="#aquery#" show="colA,colB"> // OUTPUT=browserconsolefilename

<CFPROCPARAM DBVARNAME=""> //attribute geri geldi.

CFQUERY.Results.IDENTITYCOL //DBMS'lerden dönen auto-generated keyi artık öğrenebilirsiniz.

<cfdbinfo type="columns" datasource="exampleapps"

table="employees" name="columns"> //bir veritabanındaki tablo vs yapısını öğrenebilirsiniz.

<CFTRANSACTION action=“savepoint”>

<CFZIP> //yeni bir etiket

<CFLOCK Scope="Request"> //Multi thread uygulamalarda sorun çıkmaması için yeni bir özellik

<CFTHREAD> //yeni bir etiket

<CFPRINT> //yeni bir etiket

<CFFEED> //yeni bir etiket

<CFPRESENTATION> //yeni bir etiket



...


Application: Her uygulamada (<cfapplication>) aşağıdaki ayarlar ayrı ayrı yapılabilir:




Missing template handler

Custom Tag directory

Mapping

...




Template Cache temizleme: Belirli template'leri temizleyebilirsiniz ve başka birkaç yenilik daha.

Locale: Gerekebilecek birçok fonksiyona Locale parametresi eklendi.

Web Service: Birkaç iyileştirme.

Veritabanı: Dahili PostgreSQL, MySQL, DataDirect, Apache Derby... desteği.

Dosya işlemleri: Tarayıcıyla dosya yükleme özelliğinde performans iyileştirmeleri. Dosya işlemleri için birço yeni fonksiyon.




CFC:
Ciddi performans iyileştirmeleri. Yenilikler:

<cfset meta = getComponentMetaData("CFIDE.adminapi.runtime")> //instantiation yapmadan!

<cffunction name="OnMissingMethod">

<CFINTERFACE> //nesne yönelimli programlama ile ilgili olarak

...




AJAX: AJAX özellikleri:

<CFGRID>

<CFAjaxProxy>

<CFWINDOW>

<CFDIV>

<CFLAYOUT>

<CFPOD>

<CFINPUT Type=“autosuggest”>




PDF: PDF üretme özellikleri ve iyileştirmeler. <CFPDF>

Resim: Resim oluşturma ve işleme için etiket ve fonksiyonlar.

LiveCycle: LiveCycle Data Services

Flash: Flex/SWF üretme özellikleri.

Performans: Ciddi performans iyileştirmeleri.

Debugging: ColdFusion için artık bir IDE çıkabilir!

Sunucu ve Admin özellikleri: Server Monitoring, Admin API değişiklikleri, 64bit desteği (yalnızca Solaris üzerinde), ColdFusion Administrator'da onlarca iyileştirme ve yenilik.

...ve daha birçok yenilik içeriyor.




Not: Yeni özellikleri kullanırken iki kere düşünmelisiniz. Eski sürüm bir ColdFusion kullan müşterilerinizde, sayfalarınız çalışmayacaktır.