Google Web Toolkit:
Artılar:
- Web arayüzü icin saf Java çözümü. Debugging, refactoring ve unit test işlemlerini UI katmanında yapma imkanı sağlar. Server tarafında da aynı şekilde.
- Hazır elverişli Ajax geliştirme. Yazılan Java kodu Javascripte dönüştürülür.Elle yazılmış scriptlerden daha verimli ve hızlı çalışır.
- Kolay ve hızlı öğrenim kolaylığı. Standart Java’dan başka bir şey öğrenmeye ihtiyaç duymaz.
- UI için component model kullanır. Bu sayede kodun yeniden kullanılabilirliği vardır. Ayrıca bir çok açık kaynak kaynak GWT componentleri mevcuttur.
- Komplex java bileşenlerini kullanma imkanı sağlar.(ArrayList, HashMap, Date,Math..)
- Dışardan Javascript kodları eklenebilmekte(JSNI)
- Kompleks Java bileşenlerini server’a gönderebilir ve server’dan alabilir.
- IDE kolaylığı. Normal Java uygulaması gerçekleştiriyor gibi.
- POJO’larla ilgilenir – no JSON/XML/DOM
- Dokümantasyonu ve haber grubu iyi.
Eksiler:
- Derleme işlemi standart Java derleyicisine göre daha yavaş.
- UI katmanının tasarımını iyi yapmak gerekiyor. Kod tekrarı büyük projelerde sınıf sayısının fazlallığına yol açabiliyor. Tasarım örüntülerinden faydanlanmak gerekiyor(design patterns)
- Gelişmiş GWT widgetlerine ihtiyaç duyuluyor. Mygwt, gwt-ext, google-web-toolkit-incubator…
- HTML’ye referans verme işlemi GWT uygulaması içinde yapılamıyor.
- Javascript ekleme işlemi doğrudan yapılamıyor. JSNI ile yapılmakta. İlk kullanımda zorluk çekilebilir.
- GWT’deki modül konseptine alışmak da zorluk çekilebilir.
- Yardımcı araçları diğer belli başlı uygulama çatılarına göre daha az olabilir.
- Server la iletisim Service ler aracılığıyla yapılıyor.Validation işlemleri için halihazırda standart kütüphanesi yok sanırım.
JAVA Server Faces:
Artılar:
- Java Standardı.
- Custom GUI kontrolleri kullanma imkanı sağlar. API si ve tagleri ile kompleks HTML formlarının gerçekleştirimini sağlar.
- Kolay event handling sağlar.
- Beanlere ve koleksiyonlara mimarisindeki ifade dili aracılığıyla erişim imkanı sağlar.
- Geniş doküman ve kaynaklara sahiptir.
Eksiler:
- Öğrenme zorluğu. JSf öğrenmek için MVC modeline aşina olmak, JSP ve Servlet uygulamaları geliştirmiş olmak gerekir. Bu adımdan sonra JSF öğrenilebilir ancak. Küçük çaplı projeler ve teslim zamanı yakın projeler için daha önceden bir tecrübe yoksa JSF zaman alıcıdır.
- GET methodunu desteklemez. Bu yüzden sonuç sayfaları etiketlenemez.
- Debug işlemi sancılı hala.