Sektörde birçok uygulama sunucusu mevcuttur (Adobe 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 ve önemli olacaktır. Karar verirken teknik saplantılardan kurtulmalısınız. Bu yazımızda, Adobe'nin ColdFusion Uygulama Sunucusu'na değineceğiz. Farklı yapısıyla diğer seçeneklere göre sunduğu avantajları inceleyeceğiz.Adobe ColdFusion diğerlerinin yapamadığı neyi yapıyor?
Aslında hiçbirşeyi! SMS atma ve alma, zaman ayarlı işlemler yapma, cache'leme, MSN'den mesaj atabilme, J2EE uyumluluğu... bunlar sektördeki diğer alternatiflerin tümünün veya bazılarının yapabildiği şeyler. Fakat yukarıda bahsettiğimiz, geliştiriciye bakan yönüyle onu ilgilendiren yönüyle değerlendirildiğinde ColdFusion'ın farkı ortaya çıkıyor...
Yani, madem yazılım projelerinde en önemli gider geliştirici/kodcu maliyetleridir yani yazılımı ne kadar sürede kodladığı önemlidir o halde seçim yaparken geliştiricilerin konforu düşünülmelidir. İşleri kolayca halledebilmeliler, bir hata çıktığında bulmaları kolay olmalı, başkası onun koduna baktığında hemen vakıf olabilmeli... Aşağıdaki maddeleri okurken bir yandan da bu önemli noktayı aklınızda tutmalısınız...
1) Diğer Adobe ürünleriyle entegrasyonEğer Adobe ürünlerini yoğun olarak kullanıyorsanız ve onlarla ciddi entegrasyonlar yapacaksanız, ColdFusion en iyi çözüm olacaktır. Örneğin; Adobe Flex, Adobe LiveCycle veya Flash Media Server kullanacaksanız, ColdFusion sunucu tarafı geliştirim çözümü olarak sizin için en uygun çö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. 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. 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.
5) ColdFusion Administrator web arayüzü
Bu web arayüzü sayesinde uygulamanızın ayarlarında veya sistem çapında ayarları online yapabilirsiniz. Üstelik session'lar düşmeden, Web.config falan FTP yapmadan ve hiçbir kodu değiştirmeden!
6) Zengin İnternet Uygulamaları (RIA)
RIA konusunda dünyada kendini kanıtlamış araçlarla (Gartner raporu; Flex, Flash, PDF...) entegrasyon. Eğer sisteminizde Flex, Flash, PDF, LiveCycle Data Services gibi araçları yoğun olarak kullanıyorsanız, uygulamanızın zengin bir internet uygulaması olmasını istiyorsanız her durumda Adobe araçlarını kullanıyor olacaksınız. Bu durumda, ColdFusion sizin için bu araçlarla entegre olabilecek biçilmiş bir kaftandır.
7) Daha az kodla daha çok iş
Veritabanına bir kayıt yapmak için diğer seçeneklerinizde yazılması gereken kodları bir hatırlayın. Örneğin ASP.NET'i düşünün. Ardından, aşağıda CFML örneğini inceleyin:
<cfquery datasource="database1">
INTER INTO PRODUCT (PRODUCT_CODE, PRODUCT_NAME)
VALUES (#ProductCode#, #ProductName#)
</cfquery
Gözle okunması ne kadar kolay değil mi? Biz zaman zaman ihtiyaca göre projelerimizde diğer seçeneklerden ColdFusion'a geçtiğimiz gibi, ColdFusion'dan da diğer seçeneklere geçtiğimiz çoktur. ColdFusion'dan diğer seçeneklere geçtiğimiz projelerde geçişte ColdFusion kodcularımız neredeyse hiç yardımcı olmadılar. Mevcut ColdFusion kodları okumak ve anlamak onlar için o kadar kolay oldu ki kendi başlarına tüm sistemi geçirdiler.
8) Tam J2EE uyumluluğu
CFML ile geliştirdiğiniz uygulamalarımız arka planda Java koduna dönüştürülürler. Bu kodlar ve ColdFusion tamamıyla Java üzerine bina edilmiştir. Bu nedenle eğer projelerinizde J2EE standartlarına uyumluluk arıyorsanız ColdFusion sizin için çok iyi bir seçenek olabilir.
9) ColdFusion J2EE sunucular üzerinde koşabilir
ColdFusion'u herhangi bir J2EE uygulama sunucusu üzerinde çalıştırabilirsiniz (WebSphere, JRun, JBoss...) Eğer halihazırda bunlardan birini kullanıyorsanız, koca ColdFusion sunucusunu sanki ufacık bir uygulamaymış gibi J2EE platformunuza ekleyebilirsiniz.
10) Doğrudan ColdFusion kodları arasında Java kodlama yapabilme
Eğer Java sizin için çok önemliyse, Java ile geliştirilmiş bazı bileşenler kullanıyorsanız veya halihazırda birçok Java geliştiriciniz varsa ColdFusion buna da hayır demez. Bu kodlarınızı CFML içerisinden doğrudan kullanabilirsiniz. Hayır yanlış anlamadınız. CFML kodlarınızın içerisine doğrudan Java kodu yazabilirsiniz. Yani, 10 satır CFML kodun yarısı Java yarısı CFML olabilir! .NET'in ilk duyurulduğu zamanlarda bir yaygara vardı hani, kodumuzun bir kısmını C diğer kısmını Visual Basic yazabileceğiz diye. Halbu ki sonradan anladık ki ayrı ayrı dosyalar halinde tutulması gerekiyormuş bu kodların. ColdFusion'da bu olay bir söylentiden ibaret değildir.
11) .NET DLL kodlarını doğrudan ColdFusion içerisinden çağırma
Eğer .NET sizin için çok önemliyse, .NET ile geliştirilmiş bazı bileşenler kullanıyorsanız veya halihazırda birçok .NET geliştiriciniz varsa ColdFusion buna da hayır demez. Bu kodlarınızı yani DLL'lerdeki fonksiyonlarınızı CFML içerisinden doğrudan çağırabilirsiniz.
12) ColdFusion platform bağımsızdır.
ColdFusion 1995 yılında geliştirilmeye başlanmıştır. Dünyanın ilk web uygulama sunucusudur ve bu terimi ilk üreten yazılımdır. O zamandan bu yana ColdFusion çok değişmiştir. Yeniden geliştirilecek Java diline geçirilmiştir. Java sayesinde ColdFusion platform bağımsızdır. Windows, Linux, Unix, Solaris... tüm işletim sistemlerinde çalışır. Geliştirdiğiniz kodlar tüm sistemlerde çalışır. Bazı büyük ihalelerde platform bağımsızlık şartına denk geldiğinizde ColdFusion sizin için bir kurtarıcı olabilir.
13) Enterprise kullanımlarda çok kolaydır
Günümüzde web uygulamaları istemci-sunucu mimarisindeki birçok yazılımın yerine almış durumdalar. Bu gidişatta web uygulamaları artık çok ağır yükler altındalar. Böyle uygulamalarda kümeleme (clustering), önbellekleme ("caching") gibi üst seviye ayarlamalar artık kaçınılmaz olmaktadır. ColdFusion dışındaki diğer seçeneklerde bunları yapmak ciddi çaba gerektirir. Hatta o sçenekleri yıllardır kullanan tecrübeli geliştiriciler, bu ayarlamaların nasıl yapıldığını bilmezler bile. Fakat ColdFusion'da bunları yapmak çok kolaydır. Yük dengeleme yapmak için ColdFusion Administrator'da bir iki tık yapmanız yeterlidir. Uygulamanızı anında birkaç sunucu üzerine dağıtabilirsiniz.
14) ColdFusion'da AJAX'ın kralı vardır
Diğer alternatiflerdeki örneğin ASP.NET'teki AJAX'ı hiç kullandınız mı? Durun tahmin edeyim bir kere kullandınız ve ondan sonra hiç görmemiş gibi yaptınız değil mi? Dert etmeyin, benim tanıdığım birçok .NET geliştirici böyle yapıyor. Fakat ColdFusion'daki AJAX gerçekten AJAX'tır. Sektörde kendini kanıtlamış en iyi Javascript kütüphanelerinden biri olan Ext JS 'yi içerisinde dahili olarak sunar. ColdFusion bu konuda Amerika'yı yeniden keşfetmemiştir. En iyisini içerisinde sunar. Zaten ColdFusion'unun genel mantığı odur; sektördeki en iyi araçları bünyesine katıp hazır olarak kullanıma sunar. Böylece en iyisini arayıp bulmazsınız. Elinizin altında hepsi hazırdır. Asıl işinize odaklanırsınız.
Adobe ve AJAX ile ilgili olarak diğer bir makalemize göz atmak isteyebilirsiniz: AJAX dünyası ve Adobe
15) ColdFusion sunucu izleme
Diğer seçeneklerde geliştirdiğiniz uygulamanızda gidişatın nasıl olduğunu anlamak çok zordur. Yüklüce kod yazarak loglar tutar sorun anında sıkıntının nereden kaynaklandığını anlamaya çalışırsınız. Uygulamanızın nasıl bir yük altında olduğunu anlamak çoğu zaman bir muammadır. Fakat ColdFusion Server Monitoring sayesinde bunlar dert değildir. Uygulamanız kontrolünüz altındadır. Ne zaman uygulamanın neresine müdahele etmeniz gerektiğini görebilirsiniz.
ColdFusion her sürümünde daha da iyileşmektedir. Özellikle 8 inci sürümünde çok ciddi iyileştirmeler vardır. Bu iyileştirmelerden kodculara yansıyan yönüyle iyileştirmeleri görmek için diğer yazımızı inceleyebilirsiniz: ColdFusion 8'in getirdiği yenilikler
ColdFusion hakkında daha fazla bilgi almak için Adobe'nin resmi internet sitesini ziyaret edebilirsiniz










0 yorum
Yorum Gönder