Sektörde birçok uygulama sunucusu mevcuttur (ColdFusion, PHP, Java, .NET…). Her birinin diğerlerine göre avantajları ve dezavantajları vardır; ücretli olup olmaması, performansı, dünyadaki kullanım yaygınlığı, hakkındaki teknik kaynakların çokluğu… Hangisini kullacağına karar vermek kimileri için çok kolaydır. Eğer kısa süreli veya düşük bütçeli projeler gerçekleştiriyorsanız, buna karar vermek daha kolay olabilir. Fakat eğer kalabalık bir geliştirici ekibiniz varsa, uzun soluklu projeler gerçekleştiriyorsanız, karar vermek çok zor olacaktır. Karar verirken teknik saplantılardan kurtulmalısınız. Bu yazımızda, Adobe’nin ColdFusion Uygulama Sunucusu’na değineceğiz. Faklı yapısıyla diğer seçeneklere göre sunduğu avantajları inceleyeceğiz.
Hangi uygulama sunucusunun tercih edileceğine karar verirken nelere dikkat edeceğiniz çok önemlidir. Bizce madem yazılım projelerinde en önemli gider geliştirici maliyetleridir o halde seçim yaparken geliştiricilerinizin konforu düşünülmelidir. Daha az kod yazarak daha az zamanda daha çok iş yapmalarına olanak sağlanmalıdır.
ColdFusion diğerlerinin yapamadığı neyi yapıyor?
İşte size 15 tanesi:
1) Diğer Adobe ürünleriyle entegrasyon
Eğer Adobe ürünlerini yoğun olarak kullanıyorsanız ve onlarla ciddi entegrasyonlar yapacaksanız, ColdFusion en iyi çözüm olacaktır.
2) Kodlamayı öğrenmek çok kısa sürer
ColdFusion CFML dilini kullanır (ColdFusion Markup Language). Bu dili öğrenmek çok kolaydır. Diğer seçeneklerin karmaşık betikleme (“script”) dili öğrenmesi çok daha uzun sürer. “Üstad” olmayan yeni mezun geliştiricilerle büyük projeler gerçekleştirebildiğinizi görmek sizi şaşırtabilir. Şahsen ben ColdFusion ile 2003 yılında ilk tanıştığımda önüme Ben Forta’nın camiada meşhur ColdFusion kitabı koyulmuştu (Bu kitabı Türkçe’ye kazandırdığı için Medyasoft ‘a teşekkürler). O zamanlar ColdFusion Türkiye’de henüz yeni olduğu için internetten hangi terimlerle nasıl araştıracağımı bile bilmiyordum. Sadece bu kitaba bakarak sadece üç gün içerisinde tam bir anket modüülü geliştirmiştim. Anket oluşturma, yayına alma, yayından kaldırma, raporlama, seçenek ekleme kaldırma… gibi tam bir modül. Bir geliştirici hayatı boyunca hiç duymadığı bir dille karşılaştığında onunla bu kadar kısa sürede böyle bir uygulama geliştirebilmesi sizce nasıl mümkün olabilir? CFML dili sayesinde.
3) Daha az hatalı kod yazma
CFML dili doğası gereği amaca odaklı bir yapıya sahiptir. Yapılmak istenen her işlem için ayrı bir etiket sunar: <cfquery>, <cfmail>, <cflocation> Sadece belirli bir işe yarayan bu etiketler, geliştiricinin hata yapma ihtimalini sıfıra yaklaştırır. Eğer modelleme ve analiz iyi yapılmışsa, yazılımın hatalı olması çok zordur.
4) HTML kodlarıyla çalışırken kolaylık (HTML+CFML)
Günümüzde HTML ile geliştiricinin yazdığı kodlar birbirinden ayrılmaya çalışılmaktadır. Buna, sunum katmanı (“presentation layer”) ile kod katmanının (“codebehind”) birbirinden ayrılması deniyor. Bu çok doğru bir yaklaşımdır. Fakat çoğu zaman hayalperest bir uğraş olmaktadır. HTML’in içerisinden geliştirici kodlarını kaldıralım derken çoğu zaman geliştiricinin kodları arasında yüzlerce satır HTML yazılmaktadır. Yani kaş yapalım derken göz çıkar. CFML dili bu dengeyi sağlayabileceğimiz en iyi dildir. HTML içerisinde tekrar etmemiz gereken döngülerde, veritabanından doldurmalarda ne kadar uğraştığınızı bir düşünün. CFML ile bunu yapmak çok kolaydır. Örnek bir kod:
<cfoutput query=”qryProducts”>
<tr><td>#PRODUCT_CODE#</td><td>#PRODUCT_NAME#</td></tr>
</cfoutput>
Burada codebehind’dan gelen qryProduct isimli kayıtkümesi üzerinde döngü yapılarak HTML tablo dolduruluyor. Üstelik bu kod yapısı ezberlenmesi o kadar kolaydır ki. XHTML/CSS’lerinizi hazırlayan ekip üyelerinize kayıtkümelerinizin ve tablodaki alanlarınızın isimlerini atarsanız, çok rahat bir şekilde bu kodları onlar da yazabilirler. İnanması zor ama ben tasarımcıların kendi kendilerine ColdFusion kodu yazdığına bile şahit oldum. Üstelik CFML eğitimi almadan.






{ 2 yorum… aşağıdakileri okuyun ya dabir tane ekleyin }
Çok güzel bir yazı hazırlamışsınız. ColdFusion Türkiye’de pek tanınmayan bir teknoloji. Fakat belirtmek isterim ki (verdiğiniz linke de bakarsanız) ColdFusion, PHP, Java, .NET, vs uygulama sunucusu değil, uygulama geliştirme platformları/dilleridir. Uygulama sunucusu olarak, .Net Framework, ISS, WebSphere, JBoss verilebilir. Ayrıca bunların hepsi teorik olarak ücretsizdir. Geliştirme ortamları, sunucu yazılımları vs paralı olabilir sadece. Sonuçta yine teorik olarak onları kullanmadan da işlemler yapılabilir.
Teşekkürler.
Kaan Bey Merhaba,
Öncelikle, görüşlerinizi paylaştığınız için teşekkür ederiz. Bloğunuzu ziyaret ettik ve iyi bir blog yazarı olduğunuz acizane düşüncemizi paylaşmak istiyoruz.
Yorumuzda belirttiğiniz, “ColdFusion esasen bir Uygulama Sunucusu değildir” konusunu araştırdık. Adobe resmi sitesinde, Wikipedia’da ve birçok internet sitesinde ColdFusion’dan bir uygulama sunucusu olarak bahsedilmektedir. Burada kastedilen, bir exe yazılımın sunulması (“serve”) değildir esasen. Uygulama Sunucusu’ndan kastedilen, geliştirilmiş ve bir çatısı olan (Application.cfm) web uygulamasının sunulmasıdır. Bu açıdan bakıldığında, WebSphere veya JRun ile aynı kulvarda olmasa da ColdFusion da bir uygulama sunucusu olarak değerlendirilebilir.
Kaynaklar:
Adobe.com: “Product history: As the world’s first commercially available web application server when it shipped in 1995, Macromedia® ColdFusion…”
Wikipedia: “ColdFusion is an application server and software language used for Internet application development…”