Найкраща бібліотека віджетів GWT? [зачинено]


134

Питання для всіх гуру GWT там - яка найкраща бібліотека віджетів GWT там? І чому?

Список на основі відповідей:

Я накопичую - нове покоління засноване на JsInterop :


Ви забули включити gwt-mosaic до списку?
Ешвін Прабху

2
Це питання не стосувалося вимог, тому передбачувано було проголосовано найвизначніше (основний GWT), хоча воно не відповідає всім вимогам. Якщо у вас є складний корпоративний додаток з багатьма екранами та великим обсягом даних, і вам потрібні потужні сітки та редактори, саме для цього SmartGWT. Звичайний GWT відмінно підходить для багатьох додатків, але багато підприємств із таким специфічним набором вимог оцінюють GWT і вирішують, що SmartGWT є більш підходящим. Щоб отримати огляд та вирішити самостійно, прочитайте посібник із швидкого запуску. smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Чарльз Кендрік

вам не вистачає gwt-bootstrap
caarlos0

Я створив пропозицію на сайті, щоб надати такі питання, як офіційний будинок, далеко від Stack Overflow. Це називається Рекомендації з коду. Допоможіть зробити його реальністю, приєднавшись і задаючи питання зараз!
daviewales

Це також виглядає перспективно: gwt-material-demo.herokuapp.com
kozla13

Відповіді:


52

Не прив'язуйте себе до БУДЬ-кого з цих бібліотек. Використовуйте ванільний GWT для створення структури вашого проекту. Зокрема, використовуйте шаблон MVP та шину подій. Перегляньте статтю google, щоб дізнатися, як найкраще розробити клієнтську програму за допомогою GWT: Створення MVP-додатків

Після цього ви можете використовувати будь-який віджет цих бібліотек (скажімо, таблицю або комбінований список, панель дат тощо) та включити його у свій проект. Спробуйте використовувати розширені компоненти ТІЛЬКИ, якщо ви не бачите способу зробити це з ванільним GWT. Таким чином, ви не прив'язуєте себе до цих бібліотек, які ЗАВЖДИ болять, коли ви намагаєтесь зробити щось, що не відображається в демонстраційній програмі, містить багато помилок і їх підтримка в кращому випадку погана.

Як шукати віджети, слід дотримуватися цього порядку:

Обережно з іншими бібліотеками, я працював з ними (і досі маю кошмари).


1
Який-небудь конкретний досвід з іншими бібліотеками, якими ви хотіли б поділитися?
Адам

6
GXT, я б не рекомендував цього моєму гіршому ворогу. Якщо ви вважаєте це, спочатку спочатку Google і переконайтеся, що ви знаєте, куди потрапляєте. SmartGWT, оболонка JS, дуже потворна. Біжіть далеко від нього. Я маю досвід роботи з обома в реальному проекті. Спочатку я використовував SmartGWT, але його обмеження змусили мене перейти до GXT. Невдовзі я виявив там їхній безлад з прив'язками форми та джеваріками (Ісусе, кожен раз, коли я згадую ....) Я не знаю, що гірше! Я це закінчив, так, але я страждав дуже. Після цього я навчився використовувати ванільний GWT і лише той віджет, який мені сподобався з інших бібліотек.
Monzonj

Ця публікація є давньою і за своєю природою буде датою, але я широко використовував GXT протягом останніх 2 років, і, хоча у нього є проблеми, він також дозволяє створювати дуже добре виглядаючі програми з відносною легкістю. Він має дуже корисні сітки, захищені сітки та живі сітки. SmartGWT також має добре представлені сітки та компоненти. Також розглянемо Ваадіна .
Карл Притчетт

43

Залежить від того, що ви маєте на увазі під «найкращим». Найкраще виглядає? Кращий API? Найкраще для розширення ваших власних потреб?

Наприклад, я тільки оцінював класи таблиць, які використовував у нашій програмі. Ми використовували GWT-Ext, але у нас є багато проблем із продуктивністю, і дуже важко отримати таблиці за розміром так, як вони нам потрібні. Я підійшов дуже близько до GWT-Mosaic , але вирішив замість цього розробити віджети в інкубаторі GWT .

Отже, чому я зробив цей вибір? Здається, що надто багато бібліотек там приїжджають із власною, через відсутність кращого слова, багажем. Або вам доведеться занурюватися цілою свиною в якусь рамку MVC (яка може бути не повністю сумісна з рештою вашої кодової бази), або вам доведеться прийняти чиюсь нову вигадливу систему компонування, або вам доведеться жити з тим, що ви не можете дійсно налагоджувати код (адже його просто JSNI обгортки).

Не зрозумійте мене неправильно, інкубатор GWT не є ідеальним ... віджети є в деякій кількості потоку. У моєму випадку це був найкращий вибір. Це дає мені добре (але точно не ідеально):

  • API
  • Розширюваність
  • Поглянь і відчуй (ну, це начебто слабке, але для цього і CSS.)

Отже ... відповідь (для мене) - це поєднання:

  • Запаси віджетів GWT (з великою кількістю індивідуальних стилів)
  • Столи інкубаторів GWT
  • Кілька домашніх віджетів

(Додам, що "багаж", про який я маю на увазі, не обов'язково є поганим. Але, якщо ви просто хочете віджет або два, він може підняти планку щодо того, що потрібно, щоб просто виконати вашу роботу і як добре виглядає додаток.)


Більшість бібліотек віджетів потребують певної ліцензії через залежність від деякої зовнішньої бібліотеки AJAX. Це також додасть вашому рішенню додатковий розмір. Зауважте також, що більшість бібліотек віджетів залежать від одного або декількох додаткових зовнішніх компонентів.
ІгорМ


10

GWT тільки є досить гарною бібліотекою.

Я не використовував усіх згаданих, але можу порекомендувати Ext GWT .


2
Я згоден з голими ГВТ. Поряд з проектами інкубаторів ( code.google.com/p/google-web-toolkit-incubator ) ви можете реалізувати що завгодно. Я використовував MyGwt, але це відстійно, коли вони закрили проект і змінили його назву, а всі форуми та підтримка змінили ліцензію
Роберт Чаддіан

1
Це повинно бути жахливо. Це не дуже практичний спосіб обслуговування частини програмного забезпечення.
DragonBorn

9

Я віддаю перевагу ванільному GWT. Деякі інші API виглядають досить, і їх вітрини справді демонструють віджети, але я завжди вважаю, що продуктивність не найкраща .... коли я кажу, що ефективність, я маю на увазі більше, як час відгуку. Я ненавиджу, коли програма відчуває себе мляво.


8

Більшість згаданих бібліотек не є відкритим кодом, а ще гірше: це просто обгортки поверх бібліотеки JavaScript. Потужність GWT полягає в тому, що додаток працює в різних браузерах (через генерацію коду саме для "великих" браузерів). Ці основні бібліотеки JavaScript можуть викликати безліч проблем.

Я погоджуюсь з jgindin GWT Incubator та GWT Mosaic - найкращі досі.


Дуже вводить в оману. Майже всі перераховані бібліотеки є відкритим кодом з комерційними дружніми ліцензіями (Apache, BSD, LGPL), крім ExtGWT (GPL). Крім того, навіть у дуже обмеженому наборі компонентів, які зараз надаються, GWT має багато помилок між веб-браузерами - просто шукайте в їх базі даних помилок, щоб перевірити це. Компілятор GWT не є магічним і не виправляє автоматично для дивних, конкретних ситуацій помилок у макеті браузера тощо - їм потрібно обійти їх, як і будь-який інший фреймворк. Вони також не завжди передові - вони не оголосили про офіційну підтримку iPhone або Android, SmartGWT має.
Чарльз Кендрік

7

Не кажучи, що це "найкраще", але останнім часом я використовую GWT-Ext на роботі. У цього є деякі плюси і мінуси:

Плюси:

  • Відносно простий у налаштуванні та використанні
  • Громада, що стоїть за нею
  • МНОГО прикладів в Інтернеті, всі вони мають супровідний код
  • Хороший вибір віджетів, які охоплюють широкий спектр функціональності

Мінуси:

  • Робить припущення щодо формату та структури ваших даних, які ви не зможете вмістити
  • Бібліотека - лише оболонка JSNI, що ускладнює її налагодження та розширення
  • Майбутня підтримка та розвиток бібліотеки невизначена
  • Деякі дратівливі проблеми між веб-браузером все ще існують (особливо з макетами)
  • Функція пошуку на їх форумах по суті марна. (Це стає великим моїм домашнім вихованцем> _ <)

6

НЕ використовуйте жодного з них! Якщо ви плануєте розробити широкомасштабну програму, вам слід розглянути можливість використання схеми MVP. Найкраща реалізація - це MVP4G фреймворк, він підтримує розділення коду GWT поза коробкою. Існує маса чудових прикладів, з яких можна почати. Найцінніший з них - Mvp4GModules.


5

Додайте нове: GWT-Bootstrap :)

Зараз немає стабільного випуску, але буде скоро.


1
GWT-Bootstrap має потенціал стати найкращим.
Майк

За винятком дуже фундаментального нагляду за дизайном у таких областях, як вкладки та модалі. Їм потрібно зменшити свою залежність від JQuery і продумати більше "додаток".
Καrτhικ

Патчі дуже вітаються. Спасибі за пропозицію все одно
caarlos0

4

Мій досвід показує, що завжди існує багато проблем з сторонніми бібліотеками. Найкращий спосіб - це використовувати відому і добре продуману технологію плюс власні компоненти. Написання та підтримка їх може зайняти більше часу, але TCO завжди знаходиться на нижчому рівні.

Сторонні бібліотеки часто можуть несподівано порушити ваші плани. І важко знайти та виправити джерело проблеми.

Тому я б запропонував використовувати звичайний ГВТ.


3

Я думаю, що SmartGWT чудово, якщо ви просто хочете використовувати віджети такими, якими вони є, але якщо ви хочете розширити або змінити віджети, як я роблю в Gxt Scheduler, я думаю, що Ext-GWT - кращий вибір.


3

для мене EXT-GWT (він же GXT) - найкраща бібліотека, яка зараз доступна, я використовую її протягом шести місяців проекту, і це дуже допомагає з багатьма заздалегідь визначеними компонентами, такими як сітки, дерева .... Це також прекрасно


3
Ти жартуєш! Я використовую GXT вже 18 місяців щодня і можу чесно сказати, що це кошмар.
Алекс Worden

2

SmartGWT - це хороша бібліотека, яка має безліч прикладів, але користувальницький інтерфейс не такий гладкий. Для інтерфейсу користувача Ext GWT добре.


2

Група користувачів gwt-mosaic не здається дуже активною, і я не можу знайти посібник користувача, окрім фрагментів вікі. gwt-mosaic познайомила мене з двома цікавими інструментами.

1) gwt-mosaic включає обгортку для PageBus Tibco, яка є інструментом публікації / підписки для частин JS вашого додатка (обробники RPC, зворотні виклики віджетів, налаштування віджетів). Це альтернатива шині подій gwt.

2) gwt-мозаїка заохочує використання прив'язки бобів (http://code.google.com/p/gwt-beans-binding/) для прив’язки даних до віджетів та перевірки віджетів.

smartgwt не є дешевим для повного набору функцій та підтримки. Баночка занадто велика для аппендину, якщо ви не видалите файли теми, які ви не використовуєте. Вони інвестують інженерію і на стороні сервера.

Я чув, що ext-gwt млявий, а файли JS великі.

Інкубатор віджетів gwt виглядає застарілим. Я вірю, що розкішна сітка вийде з новим gwt.

Відсутність стандартів зовнішнього вигляду, прив'язки та валідації перешкоджає сумісності бібліотек віджетів.


Немає проблеми SmartGWT GAE з великими .jars, якщо ви не ігноруєте інструкції з установки в документах, насправді SmartGWT Pro включає зразок проекту, який працює на GAE та забезпечує повний CRUD, використовуючи JPA для постійності. Крім того, дешевий відносний - найдорожчий варіант ліцензії та підтримки, пропонований для SmartGWT, все ще є незначною частиною витрат на доставку загальної програми / продукту, коли враховуються витрати на розробників, якість, апаратне забезпечення / хостинг тощо. Якщо у вас бюджет бюджету, є безкоштовна версія (LGPL).
Чарльз Кендрік

2

Однозначно не SmartGWT. Їх основи роздуті і мають дуже напівпечений характер. У них мільйон віджетів, але спробувати змусити їх працювати для вашого проекту непросто. Джерела даних дуже ускладнюють процес управління вашими даними, наприклад, для того, щоб дістатися до даних у вашому джерелі даних, ви повинні використовувати fecth та інспектувати часто. Хоча ви можете кешувати результати, допитувати їх не завжди легко.

RPC - ще одна слабка і звивиста область. Інформація суперечлива в документації та на форумах. Хоча в документації буде сказано, що ви рідко повинні користуватися власною операцією як частиною ds, вони на форумі скажуть, що це прекрасно. Навчитися ефективно використовувати ці інструменти - це сходження в гору в найкращі дні.

Вони будуть перепродавати товар. Наприклад, пакет графіків / аналітичних програм містить графіки ... Але ці графіки не відображатимуть негативних значень або дозволять вам маніпулювати мітками осі будь-яким значущим чином. І вони відкрито відповідають на запити з цього приводу на форумі зі ставленням "так, що". "Ми не плануємо додавати це до 3.0x, хоча це одна з наших торгових точок, це на нашій дорожній карті". Коли вони продали мені пакет, вони ніколи не згадували, що я не можу відображати негативні значення. Дійсно? Який графік не повинен мати змогу відображати негативні значення? Я можу придумати лише один - той, що зображує кількість нещасних замовників Ізоморфних.

Не тримайтеся подалі від цих хлопців і перейдіть на будь-який сайт конкурента, наприклад, ExtJS, JQuery, хек навіть quxdoo. Є кілька проектів, які справді набирають позиції і фактично пропонують хороше рішення.

Будьте дуже обережні, якщо ви коли-небудь оцінюєте цей продукт. Це виглядає приємно, але приблизно за два тижні до проекту, який використовує його, ви почнете бачити, що я маю на увазі. Віджети наполовину зафіксовані, джерела даних надзвичайно складні, і те, що ви заплатили за підтримку на форумі, не означає, що ви насправді отримаєте що-небудь, крім чищення, поблажливих відповідей, які спочатку змусять вас думати, що ви щось пропустили. Ви, як правило, не дуже зарозумілі.

Пощастить і не тримайтеся подалі від цього продукту, якщо цінуєте час свого розвитку та ремонту. О та остання річ. Подивіться приклад MVC на їх веб-сайті. Це буквально не має нічого спільного з MVC, окрім етикетки "MVC". Вони спробують переконати вас у тому, що такі рамки призначені для недосвідчених розробників, і що така концепція не має місця в реальному програмуванні ... Як і ті, хто намагається ловити блоки.


Все досить помилково, як ви можете легко перевірити. Ось зразок MVC ( smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc ) цей користувач в основному не отримує - прочитайте опис, і ви побачите величезну силу, що демонструється. Я навіть не можу здогадатися, що мається на увазі про необхідність "отримати та перевірити", але, швидше за все, користувач не прочитав посібник QuickStart і неправильно використовує систему. Просто прочитайте його самостійно ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ), і архітектура чітка та зрозуміла. Крім того, наші діаграми відображають негативні значення.
Чарльз Кендрік

Давайте тут будемо чесними. Нинішня стабільна збірка 3.0 не підтримує негативні цифри, і власними словами вони відмовляються її підтримувати: forums.smartclient.com/showthread.php?t=21219 .
бінаргієнт


?? Цей потік спрямовує клієнта використовувати точковий випуск (3.1). Це безкоштовно, не оновлення, і це дуже стабільно. Ви намагалися зробити цей звук схожим на спробу перепродажу або вилучення більше грошей, що не тільки неправдиво, але й не може бути далі від істини: просто подивіться на всі основні нові функції, які люди отримують безкоштовно в 3.1 ( blog.isomorphic .com /… ). Вас явно навмисно вводили в оману, що проливає світло на ваші інші коментарі.
Чарльз Кендрік

Звичайно, це не мій намір вводити в оману. У відповідь, однак, я скажу, що вводити в оману, щоб виділити всі чудові особливості продукту, в даному випадку пакет аналітики, але якимось чином не виключаю, що це не було (раніше 3.1), насправді, побудувати негативні числа. Крім того, оновлення до 3-крапкового випуску добре, якщо у версії 3.0 немає спеціальних реалізацій CSS, що підкреслює ще один момент, коли робота зі SmartGWT болісна ...
binarygiant

1

Бібліотека за замовчуванням Google - це найпотужніша бібліотека.

Ext GWT додає дзвіночки, але крім того, що це схоже на Google.


1

На даний момент нам подобаються віджети GWT Mosaic . Ми працювали з ext-JS і раніше прокручували власні віджети. Ліцензування та масове використання EX-JS були для нас проблемою. Ми не маємо того, що ми хочемо робити. Мозаїка дає нам щасливе середнє місце, яке, як ми думаємо, буде ще щасливішим середнім майданчиком у міру дозрівання проекту.


1

Я б сказав, якщо вам потрібно лише кілька віджетів, тоді створіть свій власний. Ви можете скопіювати і вставити деякі поняття із згаданих бібліотек. Але всім їм бракує тієї чи іншої речі. Я грав з більшістю з них і відмовився від кожного.


1

Слід пам’ятати про те, що з форумів GWT-Ext виглядає, що він більше не буде розвиватися / підтримуватися значно (можливо, зовсім не?). На своєму веб-сайті вони рекомендують перейти на SmartGWT .


1

Не бачив цього згадуваного, Ваадін (раніше відомий IT Mill Toolkit), але, можливо, це тому, що це технічно не саме GWT; як говорить їх FAQ :

Чим це відрізняється від ГВТ?

Програми GWT запускаються в браузері, тоді як програми Vaadin працюють на сервері. Ми фактично використовуємо GWT як "двигун візуалізації" на стороні браузера, тому ви можете комбінувати Vaadin і GWT.


1

smartGWT повільний, прикладів бракує, і навіть на основні запитання знайти відповіді дуже важко, тобто перегляньте всі мої невідповідані запитання на цьому форумі. Я скидаю smartgwt.


SmartGWT, безумовно, незавершений процес, але він стає кращим. У двох окремих випадках мені довелося розробникам виправляти помилки в багажнику протягом декількох днів від мого повідомлення про них, що є обнадійливим. Це великий, важкий API, хоча ви повинні запитати себе, чи відповідає він додатку, про який ви пишете.
AndrewR

SmartGWT має більше зразків, ніж будь-яка бібліотека, про яку йдеться тут. Це об'єктивно перевіряється: ( smartclient.com/smartgwt/showcase/#main ) У нас також є надзвичайно сильний посібник із швидкого запуску ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ). Будь ласка, подивіться на питання, які задав цей користувач - одне було недійсне, а одне я відповів.
Чарльз Кендрік


0

Ми створили великий HR-портал та пару менших додатків за допомогою GWT портлетів . У центрі уваги проекту стоїть не стільки створення колекції віджетів, скільки створення простої моделі програмування.

З веб-сайту:

GWT Portlets - це безкоштовна веб-основа з відкритим кодом для створення програм GWT (Google Web Toolkit). Він визначає дуже просту і продуктивну, але потужну модель програмування для створення гарних, модульних GWT-програм.

Модель програмування дещо схожа на написання портлетів JSR168 для сервера порталу (Liferay, JBoss Portal тощо). "Портал" - це ваша програма, побудована за допомогою бази GWT Portlets як бібліотеки. Функціональність додатків розроблена у вигляді вільно поєднаних портлетів, кожен з додатковим сервером DataProvider.


0

Я використовую GWT протягом року. Після багатьох досліджень я вирішив GWT Mosaic як бібліотеку віджетів. Мозаїка використовує деякі компоненти інкубатора GWT, такі як PagingScrollTable .. Але можливостей комбобоксу та таблиці нам недостатньо. Ось чому ми маємо розширив ці компоненти, щоб додати необхідну функціональність.



0

Дві важливі речі - і те, що пропускає більшість бібліотек, - тестування блоків та налагодження. Тут світить GWT. Якщо ви використовуєте бібліотеку, що базується на ванільному js, ви надаєте можливість тестувати модуль і налагоджувати проект. Як розробник GWT ви повинні врахувати ці моменти та використовувати бібліотеку без або мінімальної залежності js.


0

Ми займаємося gwt проектами більше 2 років, і дотримуємось віджетів за замовчуванням. Ми створили власну бібліотеку з відкритим кодом для автоматичного заселення типових або власних розширень віджетів. Перевірте це, це називається gwt-jet . Це дуже добре перевірено, оскільки ми використовуємо його у великих виробничих умовах, і ми сподіваємось, що він зросте безпечно через час.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.