GWT (Google Web Toolkit), Google'ın kendi araçlarını geliştirdiği bir Javascript kütüphane ailesi. Ancak geliştirmeyi JS ile değil Java söz diziminde GWT kütüphanelerini kullanarak yapıyorsunuz, yazdığınız kodlar da SDK tarafından derlenerek Javascript kodlarına dönüştürülüyor. Geliştirmede HTML de kullanmıyorsunuz, kullandığınız GWT kütüphaneleri DOM'un kirli işlerini hallediyor. Pardus'ta Eclipse ile GWT uygulamaları geliştirebilirsiniz, kurulum şöyle;
- Paket yöneticisi ile Eclipse kurun.
- Alt+F2 İle açılan komut çalıştırma penceresine "xdg-su -c dolphin" yazarak çalıştırın.
- Açılan Dolphin ile /opt dizinine geçin ve eclipse dizinine sağ tıklayıp Özellikler'i seçin.
- Özellikler penceresindeki İzinler sekmesine geçip Erişim izinlerindeki Grubu görebilir değiştirebilir olarak ayarlayın, Sahiplik bölümünden de Grup olarak "users" yazın. Değişiklikleri alt dizinlere uygula seçin ve Tamam düğmesi ile kapatın.
- GWT'nin Eclpise eklentisi indirme sayfasını açın ve kullandığınız Eclipse sürümüne uygun güncelleme adresini kopyalayın. (Örnekte Galileo için; http://dl.google.com/eclipse/plugin/3.5)
- Eclipse çalıştırın, Help menüsünden Install New software seçin.
- Açılan penceredeki Work with adresine kopyaladığınız adresi yapıştırın ve Add düğmesine tıklayın. Çıkan diyalogda isim yazmadan Tamam düğmesi ile devam edin.
- Şu anda eklenti listesini görüyor olmanız lazım ama bilmediğim bir nedenden dolayı ben göremedim ancak liste orada :) Listenin başında göremediğim onay kutuları var, bunlara rastgele tıklayarak Next düğmesinin açılmasını sağladım. Sonra Next ile bir ileri sonra da Back ile bir geri yaptım ve liste görünür oldu :D
- Listeden Plugin ve SDK seçin ve Next ile devam edin. En son lisansı kabul edip Finish ile kurulum işlemini başlatın.
Kurulum tamamlandığında /opt/eclipse dizininde 200MB'lık bir fark oluştu, bunun yarısı civarında bir indirme yaptığını tahmin ediyorum. Kurulum bittiğinde Eclipse'i yeniden başlatın.
Test etmek için yeni bir Google>Web Application Project oluşturun, projeye sağ tıklayıp Run As > Web App. seçin. Derleme bittikten sonra http://127.0.0.1:8888/... adresinden bir bağlantı veriyor, bunu Firefox adres satırına yapıştırıp uygulamayı çalıştırabiliyorsunuz. İlk denemede küçük bir Firefox eklentisi kurmanız gerekiyor, Firefox sayfayı açınca uyarı veriyor ve onay isteyip kendisi kuruyor.
GWT İstemci tarafını hallediyor ama bunun bir de sunucu tarafı var. Eh, bu işlere bulaşan birisi zaten o tarafı da biliyor demektir. PHP, Django gibi sunucu tarafı betikler için XML-RPC yöntemi veya benim pek bilmediğim ama Google'ın kullandığı Java Servlet kullanılabilir. Şimdi GWT ile nasıl yazılır, şöyle olursa böyle mi olur diye sormayın bende daha bilmiyorum, merak eden çevrimiçi dokümanlardan devam etsin.
Test etmek için yeni bir Google>Web Application Project oluşturun, projeye sağ tıklayıp Run As > Web App. seçin. Derleme bittikten sonra http://127.0.0.1:8888/... adresinden bir bağlantı veriyor, bunu Firefox adres satırına yapıştırıp uygulamayı çalıştırabiliyorsunuz. İlk denemede küçük bir Firefox eklentisi kurmanız gerekiyor, Firefox sayfayı açınca uyarı veriyor ve onay isteyip kendisi kuruyor.
GWT İstemci tarafını hallediyor ama bunun bir de sunucu tarafı var. Eh, bu işlere bulaşan birisi zaten o tarafı da biliyor demektir. PHP, Django gibi sunucu tarafı betikler için XML-RPC yöntemi veya benim pek bilmediğim ama Google'ın kullandığı Java Servlet kullanılabilir. Şimdi GWT ile nasıl yazılır, şöyle olursa böyle mi olur diye sormayın bende daha bilmiyorum, merak eden çevrimiçi dokümanlardan devam etsin.
Bir GWT gelistiricisi olarak söyleyebilirim ki, GWT'nin en güzel yani tarayici ve/veya platform düsüncenizin olmamasi. GWT derleyicisi hepsi icin javascript derliyor ve serverda tutuyor. Üstelik bu kodlarin tamami optimize edilmis kodlar. Siz HTTP request gönderdiginizde sadece gereken kodu aliyorsunuz. Ayrica su da var, asla ve asla JS bilgisine ihtiyac duymayabilirsiniz.
YanıtlaSilTek kötü yani, tarayici tarafi icin yeniden yazilmis kütüphaneler hemen hemen tüm isinizi görse de tüm JDK uyarlanmis degil. Ancak server tarafinda tüm JDKyi kullanabilirsiniz.
RPC sayesinde de asenkron haberlesebilirsiniz. Böylece bir islem gerceklesirken bitene dek beklemeniz gerekmez.
Saygilar,
Altug
Altuğ Bey, sunucu tarafı için ne önerirsiniz, sanırım Servlet kullanıyorsunuz.
YanıtlaSilMerhabalar Ali Bey,
YanıtlaSilYanitim biraz gec oldu, kusura bakmayin lütfen.
sunucu tarafinda en az iki seceneginiz var. Birincisi, GWT'nin modulündeki sunucu tarafi kodunun icinde JDKdaki tüm kütüphaneleri ve 3. parti kütüphaneleri kullanarak yazabilirsiniz. Yani RPC cagrilarinda cagirdiginiz implementasyon sinifindan da baska siniflari cagirip o sekilde islemlerinizi rahatca yapabilirsiniz.
Ikinci yöntem de JSP sayfalarini projenizde kullanmaniz olabilir. Burada da bilinen Servlet vb gibi klasik mimarilerle calisabiliyorsunuz.
Umarim yardimci olabilmisimdir.
Saygilarimla,
Altug