En iyi GWT widget kütüphanesi? [kapalı]


134

Orada tüm GWT gurular için soru - orada en iyi GWT widget kütüphanesi hangisi? Ve neden?

Cevaplara dayalı liste:

И наконец- новое поколение основанное на JsInterop :


Listeye gwt-mosaic eklemeyi unuttunuz mu?
Ashwin Prabhu

2
Bu soru gereksinimler hakkında spesifik değildi, bu nedenle tahmin edilebilir bir şekilde, tüm gereksinimleri karşılamasa da en görünür olanı (çekirdek GWT) oylandı. Birçok ekrana ve yüksek veri hacmine sahip karmaşık bir kurumsal uygulamanız varsa ve güçlü ızgaralara ve editörlere ihtiyacınız varsa, SmartGWT bunun içindir. Düz GWT birçok uygulama için mükemmeldir, ancak bu özel gereksinim kümesine sahip birçok işletme GWT'yi değerlendirir ve SmartGWT'nin daha uygun olduğuna karar verir. Genel bir bakış almak ve kendiniz karar vermek için QuickStart Rehberini okuyun. smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Charles Kendrick

gwt-bootstrap eksik
caarlos0

Stack Overflow'dan uzak resmi bir ev gibi sorular vermek için bir site teklifi oluşturdum. Adı Kod Önerileri Şimdi katılarak soru sorarak gerçeğe dönüşmesine yardımcı olun!
daviewales

Bu da umut verici görünüyor: gwt-material-demo.herokuapp.com
kozla13

Yanıtlar:


52

Kendinizi bu kütüphanelerden HERHANGİ BİRİNE bağlamayın. Projenizin yapısını oluşturmak için Vanilla GWT'yi kullanın. Özellikle, MVP desenini ve bir Olay Veri Yolu'nu kullanın. GWT ile istemci uygulamanızı en iyi şekilde nasıl tasarlayacağınızı öğrenmek için lütfen Google makalesine bakın: MVP uygulamaları oluşturma

Daha sonra, bu kütüphanelerin herhangi bir widget'ını (bir tablo veya bir birleşik giriş kutusu, bir tarih seçici vb.) Kullanabilir ve projenize ekleyebilirsiniz. Genişletilmiş bileşenleri SADECE vanilya GWT ile yapmanın bir yolunu görmüyorsanız kullanın. Bu şekilde, demo uygulamasında görünmeyen bir şey yapmaya çalıştığınızda, birçok hata içeren ve destekleri en iyi ihtimalle her zaman bir ağrı olan bu kütüphanelere kendinizi bağlamazsınız.

Widget'ların nasıl aranacağı şu sırayı izlemelidir:

Diğer kütüphanelere dikkat ederek onlarla çalıştım (ve hala kabus görüyorum).


1
Paylaşmak istediğiniz diğer kütüphanelerle ilgili özel deneyimleriniz var mı?
Adam

6
GXT, en kötü düşmanım için tavsiye etmem. Bunu düşünürseniz, lütfen önce Google'ı kullanın ve nereye girdiğinizi bildiğinizden emin olun. SmartGWT, bir JS sarıcı, çok çirkin. Ondan uzak durun. Her ikisiyle de gerçek bir projede deneyimim var. İlk olarak SmartGWT'yi kullandım, ancak kısıtlamaları beni GXT'ye taşıdı. Yakında orada form bağlayıcılar ve java jenerik (İsa, her hatırlıyorum ....) ile vardı karışıklık keşfetti hangisi daha kötü bilmiyorum! Bitirdim, evet, ama çok acı çektim. Bundan sonra vanilya GWT ve sadece diğer kütüphanelerden sevdiğim widget'ı kullanmayı öğrendim.
23'te monzonj

Bu yazı eski ve doğası gereği tarih olacak, ancak GXT'yi son 2 yıldır yoğun olarak kullandım ve sorunları olsa da, nispeten iyi görünümlü uygulamaların oluşturulmasına da izin veriyor. Çok kullanışlı ızgaraları, tamponlu ızgaraları ve canlı ızgaraları vardır. SmartGWT ayrıca iyi özellikli ızgaralara ve bileşenlere sahiptir. Vaadin'i de düşünün .
Carl Pritchett

43

Ne demek istediğine bağlı olarak "en iyi". En iyi görünüm? En iyi API? Kendi özel ihtiyaçlarınızı karşılamak için en iyisi?

Örneğin, uygulamamızda kullanılacak tablo sınıflarını değerlendiriyordum. GWT-Ext kullanıyoruz, ancak bizim için birçok performans sorunu var ve tabloları ihtiyaç duyduğumuz şekilde boyutlandırmak çok zor. GWT-Mosaic ile çalışmaya çok yaklaştım , ancak bunun yerine GWT Incubator'daki widget'ları oluşturmaya karar verdim .

Peki, neden bu seçimi yaptım? Görünüşe bakılırsa, kütüphanelerin çoğu, daha iyi bir kelime eksikliği nedeniyle, kendi bagajlarıyla geliyor. Ya bütün domuzları bir MVC çerçevesine daldırmalısınız (kod tabanınızın geri kalanıyla tamamen uyumlu olmayabilir), ya da birisinin yeni kanatlı yerleşim sistemini benimsemeniz ya da yapamayacağınız gerçeğiyle yaşamak zorundasınız. gerçekten kod hata ayıklama (çünkü onun sadece JSNI sarmalayıcılar).

Beni yanlış anlamayın, GWT İnkübatör mükemmel değil ... Widget'ların bir miktar akısı var. Benim durumumda olsa da, bu en iyi seçim oldu. Bana iyi veriyor (ama kesinlikle mükemmel değil):

  • API
  • uzayabilirlik
  • Bak ve hisset (bu biraz zayıf, ama CSS bunun için.)

Yani ... cevap (benim için) aşağıdakilerin bir kombinasyonudur:

  • Stok GWT widget'ları ( birçok özel stil ile)
  • GWT İnkübatör tabloları
  • Evde yetiştirilen birkaç widget

(Ben eklemeliyim: bahsettiğim "bagaj" mutlaka kötü bir şey değildir. Ancak, sadece bir veya iki widget istiyorsanız, sadece işinizi yapmak ve nasıl yapmak için gerekenlere çıtayı yükseltebilir iyi youe uygulaması görünüyor.)


Pencere öğesi kitaplıklarının çoğu, bazı harici AJAX kitaplığına bağımlılık nedeniyle biraz lisans gerektirir. Bu da çözümünüze ekstra boyut katıyor. Widget kitaplıklarının çoğunun bir veya daha fazla ek harici bileşene bağlı olduğunu da unutmayın.
IgorM


10

GWT tek başına oldukça iyi bir kütüphanedir.

Bahsedilenlerin hepsini kullanmadım ama Ext GWT'yi önerebilirim .


2
Çıplak GWT'ye katılıyorum. İnkübatör projeleri ile birlikte ( code.google.com/p/google-web-toolkit-incubator ), temel olarak her şeyi uygulayabilirsiniz. MyGwt kullandım, ancak projeyi kapatıp adını değiştirdiklerinde berbat oldular ve tüm forumlar ve destek, lisans değişti
Robert Childan

1
Bu korkunç olmalı. Bir yazılım parçası tutmanın çok pratik bir yolu değil.
30:09

9

Vanilya GWT'yi tercih ederim. Diğer API'lerden bazıları güzel görünüyor ve vitrinleri gerçekten widget'ları gösteriyor, ama her zaman performansın en iyi olmadığını buluyorum .... performans dediğimde daha çok tepki süresi demek istiyorum. Bir uygulama halsiz hissettiğinde nefret ediyorum.


8

Bahsedilen kütüphanelerin çoğu açık kaynak değildir ve daha da kötüsü: sadece bir JavaScript kütüphanesinin üstündeki paketleyicidir. GWT'nin gücü, uygulamanın farklı tarayıcılarda çalıştığı gerçeğinde yatmaktadır (özellikle "büyük" tarayıcılar için kod üretimi nedeniyle). Bu temel kütüphaneler, birçok soruna neden olabilir.

Ben jgindin GWT Incubator ve GWT Mosaic şimdiye kadar en iyisi ile katılıyorum.


Çok yanıltıcı. Listelenen hemen hemen tüm kütüphaneler, ExtGWT (GPL) hariç ticari dostu lisanslara (Apache, BSD, LGPL) sahip açık kaynaklıdır. Ayrıca, şu anda sağlanan çok sınırlı bileşen setinde bile, GWT'nin birçok çapraz tarayıcı hatası vardır - bunu doğrulamak için hata veritabanlarında arama yapmanız yeterlidir. GWT derleyici sihirli değildir ve garip, duruma özgü tarayıcı düzeni hataları ve benzerleri için otomatik olarak düzeltilmez - diğer çerçeveler gibi onların etrafında çalışmaları gerekir. SmartGWT, her zaman en üst düzeyde değil - resmi iPhone veya Android desteğini açıklamadılar.
Charles Kendrick

7

Bunun "en iyi" olduğunu söylemiyorum, ama son zamanlarda işte GWT-Ext kullanıyorum . Bazı artıları ve eksileri var:

Artıları:

  • Kurulumu ve kullanımı nispeten kolay
  • Arkasındaki makul büyüklükteki topluluk
  • Hepsi eşlik eden koda sahip birçok çevrimiçi örnek
  • Çok çeşitli işlevleri kapsayan iyi widget seçenekleri

Eksileri:

  • Verilerinizin biçimi ve yapısı hakkında uyum sağlayamayacağınız varsayımlar yapar
  • Kütüphane sadece bir JSNI sarmalayıcıdır, bu da hata ayıklamayı ve genişletmeyi zorlaştırır
  • Kütüphanede gelecekteki destek ve gelişim belirsizdir
  • Bazı can sıkıcı tarayıcılar arası sorunlar hala var (özellikle düzenlerde)
  • Forumlarında arama işlevi aslında işe yaramaz. (Bu benim büyük bir evcil hayvanım oluyor> _ <)

6

Hiçbirini KULLANMAYIN! Büyük ölçekli bir uygulama geliştirmeyi planlıyorsanız, MVP kalıbı kullanmayı düşünmelisiniz. En iyi uygulama MVP4G çerçevesidir, kutudan GWT kodunu bölmeyi destekler. Başlayabileceğiniz birçok harika örnek var. En değerli olanı Mvp4GModüller.


5

Yenisini ekleyin: GWT-Bootstrap :)

Şu anda kararlı bir sürüm yok, ancak yakında yayınlanacak.


1
GWT-Bootstrap en iyisi olma potansiyeline sahiptir.
Mike

Sekmeler ve modals gibi alanlarda çok temel tasarım denetimi dışında. JQuery'ye olan güvenlerini azaltmaları ve daha fazla "uygulama" düşünmeleri gerekiyor.
καrτhικ

Yamalar çok açıktır. Yine de öneri için teşekkürler
caarlos0

4

Deneyimlerim, üçüncü parti kütüphanelerde her zaman birçok sorun olduğunu gösteriyor. En iyi yol, iyi bilinen ve iyi tasarlanmış teknolojinin yanı sıra kendi bileşenlerinizi kullanmaktır. Bunların yazılması ve bakımı daha uzun sürebilir, ancak TCO her zaman daha düşük seviyededir.

3. taraf kütüphaneler genellikle planlarınızı beklenmedik şekilde bozabilir. Ve sorunun kaynağını bulmak ve düzeltmek zor.

Bu yüzden düz GWT kullanmanızı öneririm.


3

Widget'ları oldukları gibi kullanmak istiyorsanız SmartGWT'nin iyi olduğunu düşünüyorum, ancak Gxt Zamanlayıcı'da yaptığım gibi widget'ları genişletmek veya değiştirmek isterseniz Ext- GWT'nin daha iyi bir seçim olduğunu düşünüyorum.


3

benim için EXT-GWT (aka GXT) şu anda mevcut olan en iyi kütüphane, 6 aylık projede kullanıyorum ve ızgaralar, ağaçlar gibi önceden tanımlanmış birçok bileşene çok yardımcı oluyor .... Çok güzel


3
Dalga geçiyor olmalısın! GXT'i 18 aydır günlük olarak kullanıyorum ve dürüstçe bunun bir kabus olduğunu söyleyebilirim.
Alex Worden


2

gwt-mosaic kullanıcı grubu çok aktif görünmüyor ve wiki snippet'lerinin yanında bir kullanım kılavuzu bulamadım. gwt-mosaic beni iki ilginç araçla tanıştırdı.

1) gwt-mosaic, uygulamanızın JS bölümleri için bir yayınlama / abone olma aracı olan Tibco'nun PageBus'u için bir sarıcı içerir (RPC işleyicileri, widget geri aramaları, widget ayarlayıcıları). Bu, gwt'nin olay veriyoluna bir alternatiftir.

2) gwt-mosaic, verileri widget'lara bağlama ve widget'ları doğrulama için Fasulye Bağlama (http://code.google.com/p/gwt-beans-binding/) kullanımını teşvik eder.

smartgwt tam özellik kümesi ve desteği için ucuz değildir. Kullanmadığınız tema dosyalarını kaldırmazsanız, kavanoz appengine için çok büyük. Onlar da sunucu tarafında mühendislik yatırımı yapıyorlar.

Ext-gwt yavaş ve JS dosyaları büyük duydum.

Gwt widget inkübatörü kullanımdan kaldırılmış görünüyor. Lüks şebekenin yeni gwt ile piyasaya sürüleceğine inanıyorum.

Görünüm ve hissetme, bağlama ve doğrulama standartlarının eksikliği, widget kitaplıklarının birlikte çalışabilirliğini engelliyor.


Dokümanlardaki kurulum talimatlarını göz ardı etmedikçe büyük .jar'larda SmartGWT GAE sorunu yoktur, aslında SmartGWT Pro, GAE üzerinde çalışan ve kalıcılık için JPA kullanarak tam CRUD sağlayan bir örnek proje içerir. Ayrıca, ucuz görecelidir - SmartGWT için sunulan en pahalı lisans ve destek seçeneği, geliştiricilerin, QA, donanım / barındırma vb. Maliyeti düşünüldüğünde genel uygulama / ürün sunma maliyetinin hala ihmal edilebilir bir parçasıdır. Kısıtlı bir bütçeniz varsa, ücretsiz (LGPL) sürüm var.
Charles Kendrick

2

Kesinlikle SmartGWT değil. Çerçeveleri şişirilmiş ve çok yarı pişmiş bir doğaya sahip. Bir milyon widget'ları var, ancak projeniz için onları çalıştırmaya çalışmak kolay değil. Veri kaynakları, verilerinizi çok büyük bir şekilde yönetme sürecini karmaşıklaştırır; örneğin, veri kaynağınızdaki verilere ulaşmak için fecth'i kullanmalı ve sık sık denetlemelisiniz. Sonuçları önbelleğe alabilmenize rağmen, bunları sorgulamak her zaman kolay değildir.

RPC bir başka zayıf ve kıvrık alandır. Belgelerde ve forumlarda çelişkili bilgiler var. Belgeler, ds'nin bir parçası olarak nadiren özel bir işlem kullanmanız gerektiğini söyleyecek olsa da, forum size bunun mükemmel olduğunu söyleyecektir. Bu araçları etkili bir şekilde kullanmayı öğrenmek en iyi günlerde zorlu bir tırmanıştır.

Ürünü satıyorlar. Örneğin, grafik / analiz paketi grafikler içerir ... Ancak bu grafikler negatif değerler görüntülemez veya eksen etiketlerini anlamlı bir şekilde değiştirmenize izin vermez. Ve forumda bununla ilgili sorulara "evet ne olmuş" bir tavırla açıkça yanıt veriyorlar. "Satış noktalarımızdan biri olsa da 3.0x'e eklemeyi planlamıyoruz, yol haritamızda." Bana paketi sattıklarında, negatif değerler gösteremediğimi hiç söylemediler. Gerçekten mi? Hangi grafiğin negatif değerler göstermesi gerekmez? Sadece birini düşünebilirim - mutsuz İzomorfik müşterilerin sayısını tasvir eden.

Bu adamlardan uzak durun ve herhangi bir rakibin sitesine gidin, örneğin ExtJS, JQuery, heck bile quxdoo. Dışarıda gerçekten yer edinen ve gerçekten iyi bir çözüm sunan birkaç proje var.

Bu ürünü değerlendirirseniz çok dikkatli olun. Güzel görünüyor, ancak projeyi kullanarak yaklaşık iki hafta içinde ne demek istediğimi görmeye başlayacaksınız. Widget'lar yarı pişmiş, veri kaynakları son derece karmaşık ve sadece forum desteği için ödeme yaptığınız için, aslında gizli olmaktan başka bir şey alacağınız anlamına gelmez, ilk başta bir şeyleri kaçırdığınızı düşündürecek cevaplar küçümseyecektir. Genelde çok kibirli olmadılar.

İyi şanslar ve geliştirme sürenize ve sürdürülebilirliğinize değer veriyorsanız bu üründen uzak durun. Oh ve son bir şey. Web sitelerindeki MVC örneğine bakın. Kelimenin tam anlamıyla MVC ile etiket "MVC" okumak dışında hiçbir ilgisi yoktur. Sizi bu tür çerçevelerin deneyimsiz geliştiriciler için olduğuna ve böyle bir kavramın gerçek programlamada yeri olmadığına ikna etmeye çalışacaklar ...


Kolayca doğrulayabileceğiniz gibi hepsi oldukça yanlış. İşte MVC örneği ( smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc ) bu kullanıcı temelde anlamıyor - açıklamayı okuyun ve muazzam gücün gösterildiğini göreceksiniz. "Getirmek ve incelemek" zorunda ne anlama geldiğini tahmin edemiyorum ama büyük olasılıkla kullanıcı QuickStart Kılavuzu okumadım ve sistemi yanlış kullanıyor. Sadece kendiniz okuyun ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ) ve mimari açık ve kendinden açıklayıcı. Ayrıca, tablolarımız negatif değerler çizmektedir.
Charles Kendrick

Burada dürüst olalım. Şu anki kararlı 3.0 derlemesi negatif sayıları desteklemiyor ve kendi ifadeleriyle bunu desteklemeyi reddediyorlar: forums.smartclient.com/showthread.php?t=21219 .
binarygiant


?? Bu iş parçacığı, müşteriyi nokta ayırma (3.1) kullanmaya yönlendirir. Ücretsiz, yükseltme değil ve çok kararlı. Bu sesi daha fazla para çıkarma veya çıkarma girişimi gibi yapmaya çalıştınız, bu sadece yanlış değil, aynı zamanda gerçeklerden daha uzak olamazdı: sadece insanların 3.1'de ücretsiz olarak elde ettiği tüm yeni özelliklere bakın ( blog.isomorfik) .com /… ). Diğer yorumlarınıza ışık tutan kasıtlı olarak yanıltıcı oluyorsunuz.
Charles Kendrick

Kesinlikle yanlış yönlendirmek niyetim değil. Ancak yanıt olarak, bir ürünün tüm harika özelliklerini, bu durumda analiz paketini vurgulamak için yanıltıcı olduğunu söyleyeceğim, ancak bir şekilde aslında negatif sayıları çizmediğini (3.1 öncesi) bırakmayın. Ayrıca, 3.0 sürümünde SmartGWT ile çalışmanın acı verici olduğu başka bir noktayı vurgulayan özel CSS uygulamaları olmadığı sürece 3 "nokta" sürümüne yükseltme gayet iyi ...
binarygiant

1

Google'ın varsayılan kitaplığı en güçlü kitaplıktır.

Ext GWT, çan ve ıslık ekler, ancak bunun dışında Google'ınkine benzer.


1

Şu anda GWT Mozaik widget'larını seviyoruz . Ext-JS ile çalıştık ve geçmişte kendi widget'larımızı yuvarladık. ext-JS lisansı ve toplu bizim için bir sorundu. Kendimizi yuvarlamak istediğimiz şey değil. Mosaic bize, proje olgunlaştıkça daha da mutlu bir orta yol olacağını düşündüğümüz mutlu bir orta zemin veriyor.


1

Sadece birkaç widget'a ihtiyacınız varsa kendiniz oluşturun derim. Bahsedilen kütüphanelerden bazı kavramları kopyalayıp yapıştırabilirsiniz. Ama hepsinde bir ya da başka bir şey yok. Birçoğuyla oynadım ve hepsini terk ettim.



1

Bu sözünü görmedim , Vaadin (daha önce bilinen IT Mill Toolkit), ama belki de teknik olarak tam olarak GWT olmadığı için; Onların olarak SSS diyor:

Bunun GWT'den farkı nedir?

GWT uygulamaları tarayıcıda, Vaadin uygulamaları ise sunucuda çalışır. Aslında GWT'yi tarayıcı tarafında bir "oluşturma motoru" olarak kullanıyoruz, böylece Vaadin ve GWT'yi birleştirebilirsiniz.


1

smartGWT yavaştır ve örnekler eksiktir ve temel sorular için bile cevap bulmak çok zordur, yani bu forumda cevaplanmayan tüm sorularıma bakın. Smartgwt atıyorum.


SmartGWT kesinlikle devam etmekte olan bir çalışmadır, ancak daha da iyiye gitmektedir. İki ayrı olayda, geliştiricilerin onları rapor ettikten sonraki günlerde bagajdaki hataları düzeltmesini sağladım, bu da cesaret verici. Büyük, ağır bir API olsa da, yazdığınız uygulama ile eşleşip eşleşmediğini kendinize sormanız gerekir.
AndrewR

SmartGWT burada tartışılan kitaplıklardan daha fazla örneğe sahiptir. Bu objektif olarak doğrulanabilir: ( smartclient.com/smartgwt/showcase/#main ) Ayrıca son derece güçlü bir Hızlı Başlangıç ​​Kılavuzumuz da var ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ). Lütfen bu kullanıcının sorduğu sorulara bakın - biri geçersizdi, cevapladım.
Charles Kendrick


0

GWT Portletlerini kullanarak büyük bir İK portalı ve birkaç küçük uygulama geliştirdik . Projenin odak noktası, bir widget koleksiyonu oluşturmak değil, basit bir programlama modeli oluşturmaktır.

Web sitesinden:

GWT Portletleri, GWT (Google Web Toolkit) uygulamaları oluşturmak için ücretsiz bir açık kaynaklı web çerçevesidir. İyi görünümlü, modüler GWT uygulamaları oluşturmak için çok basit ve üretken, ancak güçlü bir programlama modeli tanımlar.

Programlama modeli, bir portal sunucusu (Liferay, JBoss Portal vb.) İçin JSR168 portletleri yazmaya benzer. "Portal", GWT Portletleri çerçevesi kullanılarak bir kütüphane olarak oluşturulan uygulamanızdır. Uygulama işlevselliği, her biri isteğe bağlı sunucu tarafı DataProvider ile gevşek bağlanmış Portletler olarak geliştirilmiştir.


0

Bir yıldır GWT kullanıyorum. Birçok araştırmadan sonra, GWT Mozaik'e bir widget kütüphanesi olarak karar verdim .. Mozaik, PagingScrollTable gibi GWT inkübatör bileşenlerinden bazılarını kullanıyor .. Ancak combobox ve tablonun özellikleri bizim için yeterli değil. bu bileşenleri gereken işlevselliği eklemek için genişletti.



0

İki önemli şey - ve kütüphanelerin çoğunun kaçırdığı şey - birim testi ve hata ayıklamadır. Burası GWT'nin parladığı yerdir. Vanilya js tabanlı bir kütüphane kullanıyorsanız, projenizi birim test etme ve hata ayıklama yeteneğini verirsiniz. Bir GWT geliştiricisi olarak bu noktaları göz önünde bulundurmalı ve js bağımlılığı hiç veya çok az olan bir kütüphane kullanmalısınız.


0

2 yıldan fazla bir süredir gwt projeleri yapıyoruz ve varsayılan widget'lara bağlı kalıyoruz. Varsayılan olanları veya kendi widget uzantılarımızı otomatikleştirmek için kendi açık kaynak kütüphanemizi oluşturduk. Lütfen kontrol et, buna gwt-jet deniyor . Büyük üretim ortamlarında kullandığımız için çok iyi test edildi ve umarım zaman içinde güvenle büyüyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.