Najlepsza biblioteka widżetów GWT? [Zamknięte]


134

Pytanie do wszystkich guru GWT - jaka jest najlepsza biblioteka widżetów GWT? I dlaczego?

Lista na podstawie odpowiedzi:

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


Czy zapomniałeś dołączyć do listy gwt-mosaic?
Ashwin Prabhu

2
To pytanie nie dotyczyło konkretnych wymagań, więc można było przewidzieć, że najbardziej widoczny (rdzeń GWT) został odrzucony, mimo że nie spełnia wszystkich wymagań. Jeśli masz złożoną aplikację korporacyjną z wieloma ekranami i dużą ilością danych, a potrzebujesz wydajnych siatek i edytorów, to właśnie do tego służy SmartGWT. Zwykły GWT świetnie nadaje się do wielu aplikacji, ale wiele przedsiębiorstw z tym konkretnym zestawem wymagań ocenia GWT i decyduje, że SmartGWT jest lepszym rozwiązaniem. Aby uzyskać przegląd i zdecydować samodzielnie, przeczytaj przewodnik Szybki start. smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Charles Kendrick

brakuje gwt-bootstrap
caarlos0

Stworzyłem propozycję witryny, aby takie pytania były oficjalnym domem z dala od Stack Overflow. Nazywa się to zaleceniami dotyczącymi kodu. Pomóż w urzeczywistnieniu tego, dołączając i zadając pytania już teraz!
daviewales

To również wygląda obiecująco: gwt-material-demo.herokuapp.com
kozla13

Odpowiedzi:


52

Nie wiąż się z ŻADNĄ z tych bibliotek. Użyj Vanilla GWT do stworzenia struktury swojego projektu. W szczególności użyj wzorca MVP i magistrali zdarzeń. Zapoznaj się z artykułem Google, aby dowiedzieć się, jak najlepiej zaprojektować aplikację kliencką za pomocą GWT: Tworzenie aplikacji MVP

Następnie możesz użyć dowolnego widżetu z tych bibliotek (powiedzmy tabeli, pola kombi, selektora dat itp.) I dołączyć go do swojego projektu. Spróbuj używać rozszerzonych komponentów TYLKO, jeśli nie widzisz sposobu, aby to zrobić z waniliowym GWT. W ten sposób nie przywiązujesz się do tych bibliotek, które ZAWSZE są uciążliwe, gdy próbujesz zrobić coś, co nie pojawia się w aplikacji demonstracyjnej, zawiera wiele błędów, a ich wsparcie jest w najlepszym przypadku słabe.

Sposób wyszukiwania widgetów powinien przebiegać w następującej kolejności:

Ostrożnie z innymi bibliotekami, pracowałem z nimi (i nadal mam koszmary).


1
Masz jakieś konkretne doświadczenia z innymi bibliotekami, którymi chciałbyś się podzielić?
Adam

6
GXT, nie poleciłbym go mojemu najgorszemu wrogowi. Jeśli się nad tym zastanowisz, najpierw wygoogluj to i upewnij się, że wiesz, dokąd się pakujesz. SmartGWT, opakowanie JS, bardzo brzydkie. Uciekaj od tego daleko. Mam doświadczenie z oboma w prawdziwym projekcie. Najpierw użyłem SmartGWT, ale jego ograniczenia skłoniły mnie do przejścia na GXT. Wkrótce odkryłem bałagan, jaki mieli tam z wiązaniami formularzy i typami java (Jezu, za każdym razem, gdy pamiętam ...) Nie wiem, co jest gorsze! Skończyłem to, tak, ale ogromnie cierpiałem. Potem nauczyłem się używać waniliowego GWT i tylko widżetu, który polubiłem z innych bibliotek.
monzonj

Ten post jest stary i ze swej natury będzie datowany, ale intensywnie korzystałem z GXT przez ostatnie 2 lata i chociaż ma problemy, pozwala również na tworzenie bardzo dobrze wyglądających aplikacji ze względną łatwością. Ma bardzo przydatne siatki, siatki buforowane i siatki pod napięciem. SmartGWT ma również dobrze funkcjonalne siatki i komponenty. Weź również pod uwagę Vaadina .
Carl Pritchett

43

Zależy od tego, co masz na myśli, mówiąc „najlepszy”. Najlepiej wyglądający? Najlepszy interfejs API? Najlepsze rozwiązanie do własnych, niestandardowych potrzeb?

Np. Właśnie oceniałem klasy tabel do użycia w naszej aplikacji. Używaliśmy GWT-Ext, ale ma on dla nas wiele problemów z wydajnością i bardzo trudno jest uzyskać rozmiar tabel tak, jak ich potrzebujemy. Byłem bardzo blisko przejścia z GWT-Mosaic , ale zamiast tego zdecydowałem się zbudować widżety w Inkubatorze GWT .

Dlaczego więc dokonałem tego wyboru? Wygląda na to, że zbyt wiele bibliotek ma własne, z braku lepszego słowa, bagaż. Albo musisz zanurzyć się w całości w jakimś frameworku MVC (który może nie być całkowicie kompatybilny z resztą twojego kodu), albo musisz przyjąć czyjś nowy, wachlarzowy system układu, albo musisz żyć z faktem, że nie możesz naprawdę debuguj kod (ponieważ to tylko opakowania JSNI).

Nie zrozumcie mnie źle, inkubator GWT nie jest doskonały ... widżety są w pewnym stopniu zmienne. W moim przypadku był to jednak najlepszy wybór. Daje mi dobre (ale zdecydowanie nie idealne):

  • API
  • Rozciągliwość
  • Wygląd i uczucie (cóż, to trochę słabe, ale do tego służy CSS).

Więc ... odpowiedź (dla mnie) to kombinacja:

  • Standardowe widżety GWT (z wieloma niestandardowymi stylami)
  • Stoły inkubatora GWT
  • Kilka domowych widżetów

(Powinienem dodać: „bagaż”, o którym mówię, niekoniecznie jest złą rzeczą. Ale jeśli potrzebujesz tylko jednego lub dwóch widżetów, może podnieść poprzeczkę w zakresie tego, co jest potrzebne do wykonania pracy i jak dobrze wygląda aplikacja.)


Większość bibliotek widżetów wymaga pewnej licencji ze względu na zależność od zewnętrznej biblioteki AJAX. To również zwiększy rozmiar Twojego rozwiązania. Należy również zauważyć, że większość bibliotek widgetów zależy od co najmniej jednego dodatkowego składnika zewnętrznego.
IgorM


10

Sam GWT to całkiem niezła biblioteka.

Nie korzystałem ze wszystkich wymienionych, ale mogę polecić Ext GWT .


2
Zgadzam się z gołym GWT. Wraz z projektami inkubatorów ( code.google.com/p/google-web-toolkit-incubator ) możesz wdrożyć w zasadzie wszystko. Użyłem MyGwt, ale to jest do bani, gdy zamknęli projekt i zmienili jego nazwę oraz wszystkie fora i wsparcie, zmieniono licencję
Robert Childan

1
To musi być straszne. Nie jest to zbyt praktyczny sposób na utrzymanie oprogramowania.
DragonBorn

9

Wolę waniliowy GWT. Niektóre inne API wyglądają ładnie, a ich prezentacje naprawdę pokazują widżety, ale zawsze uważam, że wydajność nie jest najlepsza ... kiedy mówię o wydajności, mam na myśli bardziej czas odpowiedzi. Nienawidzę, gdy aplikacja działa wolno.


8

Większość wymienionych bibliotek nie jest open source, a co gorsza: są po prostu opakowaniami na górze biblioteki JavaScript. Siła GWT polega na tym, że aplikacja działa na różnych przeglądarkach (ze względu na generowanie kodu dla "dużych" przeglądarek). Te podstawowe biblioteki JavaScript mogą powodować wiele problemów.

Zgadzam się z jgindin GWT Incubator i GWT Mosaic są jak dotąd najlepsze.


Bardzo mylące. Prawie wszystkie wymienione biblioteki są open source z komercyjnymi licencjami (Apache, BSD, LGPL) z wyjątkiem ExtGWT (GPL). Co więcej, nawet w obecnie bardzo ograniczonym zestawie komponentów, GWT ma wiele błędów występujących w różnych przeglądarkach - wystarczy przeszukać ich bazę danych błędów, aby to sprawdzić. Kompilator GWT nie jest magiczny i nie koryguje automatycznie dziwnych, specyficznych dla sytuacji błędów w układzie przeglądarki i tym podobnych - muszą one obejść je jak każdy inny framework. Nie zawsze też są w czołówce - nie ogłosili oficjalnego wsparcia dla iPhone'a lub Androida, tak ma SmartGWT.
Charles Kendrick

7

Nie mówię, że jest „najlepszy”, ale ostatnio używam GWT-Ext w pracy. Ma kilka zalet i wad:

Plusy:

  • Stosunkowo łatwy w konfiguracji i obsłudze
  • Za tym stoi społeczność przyzwoitej wielkości
  • WIELE przykładów online, z których wszystkie mają dołączony kod
  • Duży wybór widżetów, które obejmują szeroki zakres funkcji

Cons:

  • Przyjmuje założenia dotyczące formatu i struktury danych, których możesz nie być w stanie dostosować
  • Biblioteka jest po prostu opakowaniem JSNI, co utrudnia debugowanie i rozszerzanie
  • Przyszłe wsparcie i rozwój biblioteki są niepewne
  • Nadal istnieją irytujące problemy z różnymi przeglądarkami (szczególnie w przypadku układów)
  • Funkcja wyszukiwania na ich forach jest zasadniczo bezużyteczna. (To staje się moją wielką irytacją> _ <)

6

NIE używaj żadnego z nich! Jeśli planujesz stworzyć aplikację na dużą skalę, powinieneś rozważyć użycie wzorca MVP. Najlepszą implementacją jest framework MVP4G , który obsługuje dzielenie kodu GWT po wyjęciu z pudełka. Jest wiele świetnych przykładów, od których możesz zacząć. Najcenniejszym z nich jest Mvp4GModules.


5

Dodaj nowy: GWT-Bootstrap :)

W tej chwili nie ma stabilnej wersji, ale wkrótce będzie.


1
GWT-Bootstrap ma potencjał, aby być najlepszym.
Mike

Z wyjątkiem bardzo podstawowego nadzoru projektowego w obszarach takich jak karty i modały. Muszą zmniejszyć swoją zależność od JQuery i myśleć bardziej „app”.
Καrτhικ

Łatki są bardzo mile widziane.
Mimo

4

Z mojego doświadczenia wynika, że ​​z bibliotekami innych firm zawsze jest wiele problemów. Najlepszym sposobem - jest użycie samej dobrze znanej i dobrze wykonanej technologii oraz własnych komponentów. Ich zapisanie i utrzymanie może zająć więcej czasu, ale TCO jest zawsze na niższym poziomie.

Biblioteki zewnętrzne często mogą nieoczekiwanie zepsuć Twoje plany. Trudno jest znaleźć i naprawić źródło problemu.

Więc sugerowałbym użycie zwykłego GWT.


3

Myślę, że SmartGWT jest w porządku, jeśli po prostu chcesz używać widżetów takimi, jakimi są, ale jeśli chcesz rozszerzyć lub zmodyfikować widżety, tak jak ja w Gxt Scheduler , myślę, że Ext-GWT jest lepszym wyborem.


3

dla mnie EXT-GWT (aka GXT) to najlepsza obecnie dostępna biblioteka, używam jej w 6-miesięcznym projekcie i bardzo pomaga przy wielu predefiniowanych komponentach, takich jak siatki, drzewa ... Jest również piękny


3
Chyba żartujesz! Używam GXT od 18 miesięcy na co dzień i mogę szczerze powiedzieć, że to koszmar.
Alex Worden


2

Grupa użytkowników gwt-mosaic nie wygląda na zbyt aktywną i nie mogłem znaleźć podręcznika użytkownika poza fragmentami wiki. gwt-mosaic zapoznało mnie z dwoma interesującymi narzędziami.

1) gwt-mosaic zawiera opakowanie dla Tibco's PageBus, które jest narzędziem publikowania / subskrypcji dla części JS twojej aplikacji (programy obsługi RPC, wywołania zwrotne widgetów, narzędzia do ustawiania widgetów). Jest to alternatywa dla magistrali zdarzeń gwt.

2) gwt-mosaic zachęca do używania Beans Binding (http://code.google.com/p/gwt-beans-binding/) do wiązania danych z widżetami i sprawdzania poprawności widżetów.

smartgwt nie jest tani w przypadku pełnego zestawu funkcji i wsparcia. Jar jest za duży dla appengine, chyba że usuniesz pliki motywów, których nie używasz. Inwestują też w inżynierię po stronie serwera.

Słyszałem, że ext-gwt działa wolno, a pliki JS są duże.

Inkubator widżetów gwt wygląda na przestarzały. Wierzę, że deluxe grid zostanie wydany wraz z nowym gwt.

Brak standardów wyglądu i działania, powiązań i standardów walidacji utrudnia współdziałanie bibliotek widżetów.


Nie ma problemu ze SmartGWT GAE w przypadku dużych plików .jars, chyba że zignorujesz instrukcje instalacji w dokumentacji, w rzeczywistości SmartGWT Pro zawiera przykładowy projekt, który działa w GAE i zapewnia pełny CRUD, używając JPA do trwałości. Poza tym taniość jest względna - najdroższa licencja i opcja wsparcia oferowana dla SmartGWT to nadal znikoma część kosztów dostarczenia całej aplikacji / produktu, biorąc pod uwagę koszt programistów, QA, sprzętu / hostingu itp. Jeśli masz skromny budżet, dostępna jest bezpłatna wersja (LGPL).
Charles Kendrick

2

Zdecydowanie nie SmartGWT. Ich szkielet jest nadęty i ma bardzo niedopieczony charakter. Mają milion widżetów, ale próba zmuszenia ich do pracy nad Twoim projektem nie jest łatwa. Źródła danych w bardzo dużym stopniu komplikują proces zarządzania danymi, na przykład aby dostać się do danych w źródle danych, należy często korzystać z fecth i sprawdzać. Wyniki można zapisywać w pamięci podręcznej, jednak ich przesłuchanie nie zawsze jest łatwe.

RPC to kolejny słaby i zawiły obszar. W dokumentacji i na forach znajdują się sprzeczne informacje. Podczas gdy dokumentacja powie, że rzadko powinieneś używać niestandardowej operacji jako części ds, forum powie ci, że jest to całkowicie w porządku. Nauka efektywnego korzystania z tych narzędzi to trudna wspinaczka w najlepsze dni.

Będą wyprzedawać produkt. Na przykład pakiet wykresów / analiz zawiera wykresy ... Ale te wykresy nie będą wyświetlać wartości ujemnych ani nie pozwolą na manipulowanie etykietami osi w jakikolwiek znaczący sposób. I otwarcie odpowiadają na pytania na ten temat na forum z nastawieniem „tak i co z tego”. „Nie planujemy dodawać tego do 3,0x, mimo że jest to jeden z naszych punktów sprzedaży, jest na naszej mapie drogowej”. Kiedy sprzedali mi pakiet, nigdy nie wspomnieli, że nie mogę wyświetlić wartości ujemnych. Naprawdę? Który wykres nie musiałby pokazywać wartości ujemnych? Przychodzi mi do głowy tylko jeden - ten, który przedstawia liczbę niezadowolonych klientów izomorficznych.

Trzymaj się z daleka od tych facetów i przejdź do witryny dowolnego konkurenta, na przykład ExtJS, JQuery, a nawet quxdoo. Istnieje kilka projektów, które naprawdę zyskują na popularności i oferują dobre rozwiązanie.

Zachowaj dużą ostrożność, jeśli kiedykolwiek ocenisz ten produkt. Wygląda ładnie, ale po około dwóch tygodniach od używania go do projektu, zaczniesz rozumieć, o co mi chodzi. Widżety są na wpół upieczone, źródła danych są niezwykle skomplikowane i tylko dlatego, że zapłaciłeś za wsparcie na forum, nie oznacza, że ​​w rzeczywistości otrzymasz coś innego niż złośliwe, protekcjonalne odpowiedzi, które na początku sprawią, że pomyślisz, że coś przegapiłeś. Nie byliście generalnie bardzo aroganccy.

Powodzenia i trzymaj się z daleka od tego produktu, jeśli cenisz swój czas rozwoju i łatwość konserwacji. Och i ostatnia rzecz. Spójrz na przykład MVC na ich stronie internetowej. Nie ma to dosłownie nic wspólnego z MVC poza etykietą „MVC”. Spróbują cię przekonać, że takie frameworki są dla niedoświadczonych programistów i że na taką koncepcję nie ma miejsca w prawdziwym programowaniu ... Coś w rodzaju tych, które próbują złapać bloki.


Wszystko dość fałszywe, co możesz łatwo zweryfikować. Oto przykład MVC ( smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc ), którego ten użytkownik w zasadzie nie rozumie - przeczytaj opis, a zobaczysz, jak ogromna moc jest demonstrowana. Nie mogę nawet zgadnąć, co oznacza konieczność „pobierania i sprawdzania”, ale najprawdopodobniej użytkownik nie przeczytał Przewodnika Szybki Start i niewłaściwie używa systemu. Po prostu przeczytaj to sam ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ), a architektura jest przejrzysta i nie wymaga objaśnień. Ponadto nasze wykresy przedstawiają wartości ujemne.
Charles Kendrick

Bądźmy tutaj szczerzy. Obecna stabilna wersja 3.0 nie obsługuje liczb ujemnych i, jak mówią, odmawiają jej obsługi: forums.smartclient.com/showthread.php?t=21219 .
binarygiant


?? Ten wątek kieruje klienta do korzystania z wersji dot (3.1). To nic nie kosztuje, nie jest aktualizacją i jest bardzo stabilne. Próbowałeś, aby zabrzmiało to jak próba wyprzedania lub wydobycia większej ilości pieniędzy, co jest nie tylko fałszywe, ale nie może być dalsze od prawdy: wystarczy spojrzeć na wszystkie główne nowe funkcje, które ludzie otrzymują bezpłatnie w wersji 3.1 ( blog.isomorphic .com /… ). Wyraźnie wprowadzałeś w błąd, co rzuca światło na Twoje inne komentarze.
Charles Kendrick,

Z pewnością nie jest moim zamiarem wprowadzanie w błąd. W odpowiedzi jednak powiem, że podkreślanie wszystkich wspaniałych cech produktu, w tym przypadku pakietu analitycznego, jest mylące, ale w jakiś sposób pomijam, że w rzeczywistości nie wykreślał on (przed 3.1) liczb ujemnych. Co więcej, aktualizacja do wersji z 3 „kropkami” jest w porządku, o ile w wersji 3.0 nie ma niestandardowych implementacji CSS, co podkreśla kolejny punkt, w którym praca ze SmartGWT jest bolesna ...
binarygiant

1

Domyślna biblioteka Google to najpotężniejsza biblioteka.

Ext GWT dodaje dzwonki i gwizdki, ale poza tym jest podobny do Google.


1

Obecnie podoba nam się widżety GWT Mosaic . Pracowaliśmy z ext-JS i w przeszłości tworzyliśmy własne widżety. Licencjonowanie ext-JS i zbiorcze były dla nas problemem. Nie chcemy tego robić. Mosaic daje nam radosny kompromis, który, jak nam się wydaje, będzie jeszcze szczęśliwszym, gdy projekt dojrzeje.


1

Powiedziałbym, że jeśli potrzebujesz tylko kilku widżetów, zbuduj własne. Możesz skopiować i wkleić niektóre koncepcje z wymienionych bibliotek. Ale wszystkim brakuje jednej lub drugiej rzeczy. Grałem z większością z nich i porzuciłem każdego.


1

Jedną rzeczą, o której należy pamiętać, jest to, że na forach GWT-Ext wygląda na to, że nie będzie już dużo rozwijany / utrzymywany (może wcale?). Na swojej stronie internetowej zalecają migrację do SmartGWT .


1

Nie widziałem tego wspomnianego Vaadina (wcześniej znany to IT Mill Toolkit), ale może to dlatego, że technicznie nie jest to dokładnie GWT; jak mówi ich FAQ :

Czym to się różni od GWT?

Aplikacje GWT działają w przeglądarce, a aplikacje Vaadin na serwerze. W rzeczywistości używamy GWT jako „silnika renderującego” po stronie przeglądarki, więc możesz połączyć Vaadin i GWT.


1

smartGWT działa wolno i brakuje przykładów i bardzo trudno jest znaleźć odpowiedzi nawet na podstawowe pytania, tj. zobacz wszystkie moje pytania bez odpowiedzi na tym forum. Rzucam smartgwt.


SmartGWT jest zdecydowanie w toku, ale jest coraz lepszy. Przy dwóch różnych okazjach programiści naprawiali błędy w bagażniku w ciągu kilku dni od ich zgłoszenia, co jest zachęcające. Jest to duże, ciężkie API, więc musisz zadać sobie pytanie, czy pasuje do aplikacji, którą piszesz.
AndrewR

SmartGWT ma więcej próbek niż którakolwiek z omawianych tutaj bibliotek. Można to obiektywnie zweryfikować: ( smartclient.com/smartgwt/showcase/#main ) Mamy również niezwykle rozbudowany przewodnik Szybki start ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ). Proszę spojrzeć na pytania zadane przez tego użytkownika - jedno było nieprawidłowe, drugie, na które odpowiedziałem.
Charles Kendrick


0

Zbudowaliśmy duży portal HR i kilka mniejszych aplikacji korzystających z portletów GWT . Projekt koncentruje się nie tyle na budowaniu kolekcji widżetów, ile na tworzeniu prostego modelu programowania.

Ze strony internetowej:

Portlety GWT to bezpłatna platforma internetowa typu open source do tworzenia aplikacji GWT (Google Web Toolkit). Definiuje bardzo prosty i produktywny, ale potężny model programowania do tworzenia dobrze wyglądających, modułowych aplikacji GWT.

Model programowania jest nieco podobny do pisania portletów JSR168 dla serwera portalu (Liferay, JBoss Portal itp.). „Portal” to aplikacja utworzona za pomocą struktury portletów GWT jako biblioteki. Funkcjonalność aplikacji jest rozwijana jako luźno powiązane portlety, każdy z opcjonalnym dostawcą danych po stronie serwera.


0

Używam GWT od roku. Po wielu badaniach zdecydowałem, że GWT Mosaic jest biblioteką widżetów. Mosaic używa niektórych komponentów inkubatora GWT, takich jak PagingScrollTable .. Ale funkcje combobox i tabeli nie są dla nas wystarczające. Dlatego mamy rozszerzył te komponenty, aby dodać potrzebną funkcjonalność.



0

Dwie ważne rzeczy - i to, czego brakuje większości bibliotek - to testowanie jednostkowe i debugowanie. To tam błyszczy GWT. Jeśli korzystasz z biblioteki opartej na vanilla js, udostępniasz możliwość testowania jednostkowego i debugowania projektu. Jako programista GWT powinieneś wziąć pod uwagę te punkty i użyć biblioteki bez lub z minimalną zależnością js.


0

Realizujemy projekty GWT od ponad 2 lat i trzymamy się domyślnych widżetów. Stworzyliśmy własną bibliotekę open source do automatycznego wypełniania domyślnych lub własnych rozszerzeń widżetów. Sprawdź to, nazywa się gwt-jet . Jest bardzo dobrze przetestowany, ponieważ używamy go w dużych środowiskach produkcyjnych i mamy nadzieję, że z czasem będzie się bezpiecznie rozwijał.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.