2009-05-15 3 views
133

Вопрос для всех гуру GWT, который является лучшей библиотекой виджетов GWT? И почему?Лучшая библиотека виджета GWT?

Список на основе ответов:

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

+0

Вы забыли включить gwt-mosaic в список? –

+2

Этот вопрос не был специфичен в отношении требований, поэтому, как и следовало ожидать, наиболее заметный (основной GWT) был проголосован, хотя он не отвечает всем требованиям. Если у вас есть сложное корпоративное приложение со многими экранами и высоким объемом данных, и вам нужны мощные сетки и редакторы, для этого и предназначен SmartGWT. Plain GWT отлично подходит для многих приложений, но многие предприятия с этим конкретным набором требований оценивают GWT и решают, что SmartGWT лучше подходит. Чтобы получить обзор и решить сами, прочитайте руководство по быстрому запуску. http://www.smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf –

+0

у вас отсутствует gwt-bootstrap – caarlos0

ответ

2

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

1

Библиотека Google по умолчанию является самой мощной библиотекой.

Ext GWT добавляет колокола и свистки, но помимо этого он похож на Google.

10

GWT - очень хорошая библиотека.

Я не использовал все упомянутые, но могу порекомендовать Ext GWT.

+2

Я согласен с голыми GWT. Наряду с проектами инкубатора (http://code.google.com/p/google-web-toolkit-incubator/) вы можете реализовать что угодно в принципе. Я использовал MyGwt, но это отстой, когда они закрыли проект и изменили его название, и все форумы и поддержка, лицензия изменены –

+1

Это должно быть ужасно. Это не очень практичный способ сохранить часть программного обеспечения. – DragonBorn

43

Зависит от того, что вы подразумеваете под «лучшим». Лучший вид? Лучший API? Лучше всего использовать свои собственные потребности?

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

Итак, почему я сделал этот выбор? Кажется, что слишком много библиотек там приходят со своими, из-за отсутствия лучшего слова, багажа. Либо вы должны погрузиться целиком в какую-либо среду MVC (которая может быть не совсем совместима с остальной частью вашей базы кода), либо вам нужно принять новую систему фальшивых макетов, или вы должны жить с тем, что вы не можете действительно отлаживать код (потому что его просто обертки JSNI).

Не поймите меня неправильно, инкубатор GWT не идеален ...виджеты находятся в некотором количестве потока. В моем случае это был лучший выбор. Это дает мне хорошо (но определенно не совершенен):

  • API
  • расширяемость
  • выглядеть и чувствовать себя (ну, это своего рода слабый, но вот что CSS для.)

Итак ... ответ (для меня) представляет собой комбинацию:

  • Stock GWT виджетов (с много таможенного щупов нг)
  • GWT Инкубатор столы
  • Несколько доморощенные виджетов

(я должен прибавить: «багаж» Я имею в виду не обязательно плохо. Но, если вам просто нужен виджет или два, он может поднять планку на то, что нужно, чтобы просто выполнить свою работу и как хорошо выглядит ваше приложение.)

+0

Большинство библиотек виджетов требуют некоторой лицензии из-за зависимости от некоторой внешней библиотеки AJAX. Это также добавит дополнительный размер вашего решения. Обратите внимание, что большинство библиотек виджетов зависят от одного или нескольких дополнительных внешних компонентов. – IgorM

9

Я предпочитаю ванильный GWT. Некоторые из других API выглядят довольно красиво, и их витрины действительно демонстрируют виджеты, но я всегда считаю, что производительность не самая лучшая .... когда я говорю, что производительность я имею в виду больше как время отклика. Я ненавижу, когда приложение кажется вялым.

1

Я бы сказал, если вам нужно только несколько виджетов, тогда создайте свои собственные. Вы можете скопировать некоторые концепции из упомянутых библиотек. Но им не хватает одного или другого. Я играл с большинством из них и оставил всех.

8

Большинство упомянутых библиотек не являются открытыми исходными кодами и даже хуже: это всего лишь обертки поверх библиотеки JavaScript. Сила GWT заключается в том, что приложение работает в разных браузерах (из-за генерации кода для «больших» браузеров). Эти базовые библиотеки JavaScript могут вызвать множество проблем.

Я согласен с JGindin GWT Инкубатор и GWT Mosaic являются лучшими до сих пор.

+0

Очень вводящий в заблуждение. Почти все перечисленные библиотеки являются open source с коммерчески доступными лицензиями (Apache, BSD, LGPL), за исключением ExtGWT (GPL). Кроме того, даже в очень ограниченном наборе компонентов, который в настоящее время предоставляется, GWT имеет множество кросс-браузерных ошибок - просто выполните поиск в своей базе данных ошибок, чтобы проверить это. Компилятор GWT не является магии и не автоматически исправляет странные, зависящие от конкретной ситуации ошибки макета браузера и т. П. - им нужно работать вокруг них, как и в любой другой среде. Также они не всегда на переднем крае - они не объявили официальную поддержку iPhone или Android, у SmartGWT. –

1

Мы в настоящее время любим GWT Mosaic виджетов. Мы работали с ext-JS, и в прошлом мы использовали собственные виджеты. ext-JS лицензирование и объемные были проблемой для нас. Роллинг - это не то, что мы хотим сделать. Мозаика дает нам счастливую середину, которую мы любим думать, станет еще более счастливой средой, когда проект созреет.

1

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

0

Мы создали большой портал HR и несколько небольших приложений, используя GWT Portlets. Основное внимание в проекте уделяется не столько созданию набора виджетов, сколько созданию простой модели программирования.

С сайта:

GWT Portlets является открытым исходным кодом веб-фреймворк для создания GWT (Google Web Toolkit) приложений.Он определяет очень простую & продуктивную, но мощную модель программирования для создания хороших, модульных приложений GWT.

Модель программирования несколько похожа на портлеты JSR168 для портала портала (Liferay, JBoss Portal и т. Д.). «Портал» - это ваше приложение, построенное с использованием инфраструктуры почтовых портов GWT в качестве библиотеки. Функциональность приложения разрабатывается как слабо связанные портлеты, каждая из которых имеет дополнительный сервер DataProvider на стороне сервера.

7

Не сказал, что это «лучший», но я использовал GWT-Ext на работе в последнее время. У него есть некоторые плюсы и минусы:

Pros:

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

Минусы:

  • делает предположение о формате и структуре ваших данных, которые вы не можете быть в состоянии насытить
  • Библиотеки просто обертка JSNI, что делает его более трудным для отладки и расширение
  • Будущей поддержки и разработка в библиотеке не определена
  • Некоторые досадные проблемы с перекрестным браузером все еще существуют (особенно с макетами)
  • Функция поиска на их форумах по существу бесполезна. (Это становится большой мозоль мой> _ <)
1

Не видел этот упомянутый, Vaadin (ранее известный на IT Mill Toolkit), но, возможно, это потому, что это технически не совсем GWT; как их FAQ говорит:

Как это отличается от GWT?

GWT приложения запускаются в браузере, в то время как Vaadin приложения выполняются на сервере . Мы действительно используем GWT как «механизм рендеринга» в браузере , поэтому вы можете комбинировать Vaadin и GWT.

1

SmartGWT медленно и примеры отсутствуют, и это очень трудно найти ответы на даже основные вопросы, то есть увидеть все мои вопросы ответили не являющиеся на этом форуме. Я демпинг smartgwt.

+0

SmartGWT - это определенно работа, но она улучшается. В двух отдельных случаях я обнаружил, что разработчики исправляли ошибки в багажнике в течение нескольких дней после того, как я сообщал о них, что обнадеживает. Это большой, тяжелый API, хотя вы должны спросить себя, соответствует ли оно тому, что вы пишете. – AndrewR

+0

У SmartGWT больше образцов, чем в любой из обсуждаемых здесь библиотек. Это объективно проверяемо: (http://www.smartclient.com/smartgwt/showcase/#main) У нас также есть чрезвычайно сильное руководство по быстрому запуску (http://www.smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf). Пожалуйста, просмотрите вопросы, заданные этим пользователем - один был недействительным, я ответил. –

0

Я использую GWT в течение года. После многих исследований я решил, что GWT Mosaic является библиотекой виджета. Мозаика использует некоторые из компонентов инкубатора GWT, такие как PagingScrollTable. Но возможностей со списком и таблицы для нас недостаточно. Вот почему у нас есть расширили эти компоненты, чтобы добавить необходимую функциональность.

3

Я думаю SmartGWT это хорошо, если вы просто whant использовать виджеты, как они, , но если вы хотите расширить или изменить виджеты, как я в Gxt Scheduler Я думаю, что Ext-GWT является лучшим выбором ,

4

Мой опыт показывает, что с сторонними библиотеками всегда есть много проблем. Лучший способ - использовать известную и хорошо продуманную технологию, а также ваши собственные компоненты. Это может занять больше времени, чтобы писать и поддерживать их, но TCO всегда находится на более низком уровне.

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

Поэтому я предлагаю использовать простой GWT.

3

для меня EXT-GWT (aka GXT) - лучшая библиотека, доступная в настоящее время, я использую ее в течение 6 месяцев проекта, и она помогает много со многими предопределенными компонентами, такими как сетки, деревья .... Это также прекрасно

+3

Вы, должно быть, шутите! Я использую GXT в течение 18 месяцев на ежедневной основе, и я могу честно сказать, что это кошмар. –

52

Не привязывайте себя к ЛЮБОЙ из этих библиотек. Используйте Vanilla GWT для создания структуры вашего проекта. В частности, используйте шаблон MVP и шину событий. Пожалуйста, просмотрите статью Google, чтобы узнать, как наилучшим образом спроектировать ваше клиентское приложение с помощью GWT: Building MVP apps

После этого вы можете использовать любой виджет этих библиотек (скажем, таблицу или выпадающий список, дату и т. Д.) И включить ее в ваш проект. Попробуйте использовать расширенные компоненты ТОЛЬКО, если вы не видите способ сделать это с помощью ванильного GWT. Таким образом, вы не привязываетесь к этим библиотекам, которые ВСЕГДА испытывают боль, когда вы пытаетесь сделать что-то, что не появляется в демонстрационном приложении, содержат много ошибок, и их поддержка в лучшем случае невелика.

Как искать виджеты должны следовать этому порядку:

Осторожнее с другими библиотеками, я с ними работал (и до сих пор кошмары).

+1

Любые конкретные события с другими библиотеками, которые вы хотели бы поделиться? – Adam

+6

GXT, я бы не рекомендовал его моему злейшему врагу. Если вы считаете это, пожалуйста, сначала имейте это в виду, и убедитесь, что знаете, куда вы входите. SmartGWT, обертка JS, очень уродливая. Бегите далеко от него.У меня есть опыт как в реальном проекте. Сначала я использовал SmartGWT, но его ограничения заставили меня перейти на GXT. Вскоре я обнаружил беспорядок, который у них был там, с привязкой к форме и java generics (Иисус, каждый раз, когда я помню ....) Я не знаю, что хуже! Я закончил, да, но я сильно пострадал. После этого я научился использовать ванильный GWT и только виджет, который мне нравился из других библиотек. – monzonj

+0

Это сообщение устарело и по своей природе датируется, но я использовал GXT в течение последних 2 лет, и хотя у него есть проблемы, он также позволяет создавать очень красивые приложения с относительной легкостью. Он имеет очень полезные сетки, буферизованные сетки и живые сетки. SmartGWT также имеет хорошо зарекомендовавшие себя сетки и компоненты. Также рассмотрите [Ваадин] (http://vaadin.com). –

2

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

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

2) gwt-mosaic поощряет использование привязки Beans (http://code.google.com/p/gwt-beans-binding/) для привязки данных к виджетам и проверки виджетов.

smartgwt не является дешевым для полного набора функций и поддержки. Флажок слишком большой для appengine, если вы не удалите файлы тем, которые вы не используете. Они инвестируют инжиниринг на серверной стороне.

Я слышал, что ext-gwt вялый и JS-файлы большие.

Инкубатор виджета gwt выглядит устаревшим. Я считаю, что роскошная сетка будет выпущена с новым gwt.

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

+0

Нет проблемы с SmartGWT GAE с большими .jars, если вы не игнорируете инструкции по установке в документах, на самом деле SmartGWT Pro включает примерный проект, который работает на GAE и предоставляет полный CRUD, используя JPA для сохранения. Кроме того, дешево относительное - самый дорогой вариант лицензии и поддержки, предлагаемый для SmartGWT, по-прежнему является незначительной частью стоимости доставки всего приложения/продукта, когда учитываются стоимость разработчиков, QA, аппаратное обеспечение/хостинг и т. Д. Если вы находитесь в ограниченном бюджете, есть бесплатная (LGPL) версия. –

6

НЕ используйте ни одно из них! Если вы планируете разрабатывать широкомасштабное приложение, вам следует рассмотреть возможность использования шаблона MVP. Лучшая реализация вокруг - MVP4G framework, она поддерживает разделение кода GWT из коробки. Есть много отличных примеров, с которых вы можете начать. Самым ценным является Mvp4GModules.

0

Заканчивать SpiffyUI: www.spiffyui.org

Это не просто библиотека виджетов, но сложный UI/UX GWT рамки.

0

Две важные вещи - и большинство библиотек пропускают модульное тестирование и отладку. Именно там сияет GWT. Если вы используете библиотеку, основанную на vanilla js, вы отдаете возможность модульного тестирования и отладки вашего проекта. В качестве разработчика GWT вы должны учитывать эти моменты и использовать библиотеку без или минимальной зависимости js.

2

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

RPC - еще одна слабая и изогнутая область. В документации и на форумах есть противоречивая информация. Хотя в документации будет сказано, что вы редко должны использовать пользовательскую операцию как часть ds, они сообщают вам, что все в порядке. Научиться эффективно использовать эти инструменты - это тяжелый подъем в лучшие дни.

Они будут перепродать продукт. Например, пакет charting/analytics содержит графики ... Но эти графики не будут отображать отрицательные значения или позволяют манипулировать метками оси любым значимым образом. И они открыто отвечают на вопросы об этом на форуме с отношением «да, какой». «Мы не планируем добавлять это к 3.0x, хотя это один из наших пунктов продажи, это на нашей дорожной карте». Когда они продали мне пакет, они никогда не упоминали, что я не могу отображать отрицательные значения. В самом деле? Какой график не должен показывать отрицательные значения? Я могу думать только об одном - о том, что изображено количество несчастных Изоморфных клиентов.

Держитесь подальше от этих ребят и отправляйтесь на сайт любого конкурента, например ExtJS, JQuery, даже quxdoo. Есть несколько проектов, которые действительно набирают силу и на самом деле предлагают хорошее решение.

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

Удачи, и держитесь подальше от этого продукта, если вы цените время разработки и ремонтопригодность. О, и последнее. Посмотрите пример MVC на своем веб-сайте. Это буквально не имеет никакого отношения к MVC, кроме метки, которая читает «MVC». Они попытаются убедить вас в том, что такие рамки для неопытных разработчиков и что такая концепция не имеет места в реальном программировании ... Кажется, что те пытаются поймать блоки.

+0

Все довольно ложные, как вы можете легко проверить. Вот пример MVC (http://www.smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc), этот пользователь в принципе не получает его - прочитайте описание, и вы увидите потрясающую мощь. Я даже не могу догадаться, что подразумевается в том, что нужно «получать и проверять», но, скорее всего, пользователь не прочитал руководство QuickStart и неправильно использует систему. Просто прочитайте его самостоятельно (http://www.smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf), и архитектура понятна и понятна. Кроме того, наши диаграммы содержат отрицательные значения. –

+0

Давайте будем честными здесь. Текущая стабильная версия 3.0 не поддерживает отрицательные числа, и, по их собственным словам, они отказываются ее поддерживать: http://forums.smartclient.com/showthread.php?t=21219. – binarygiant

+0

http://forums.smartclient.com/showthread.php?t=7026 – binarygiant

0

Мы занимаемся проектами gwt более двух лет, и мы придерживаемся виджета по умолчанию. Мы создали нашу собственную библиотеку с открытым исходным кодом, чтобы автопопуляцией стандартных или собственных расширений виджета. Пожалуйста, проверьте его, это называется gwt-jet. Он очень хорошо протестирован, так как мы используем его в больших производственных средах, и мы надеемся, что он будет расти безопасно через время.

13

См. Эту библиотеку компонентов GWT Bootstrap Это реализация в gwt Twitter Bootstrap.

+0

Я думаю, что самым важным сегодня является создание [адаптивного веб-дизайна с GWT] (http://www.javaworld.com/article/2842875/java-web-development/responsive-web-design-with-google-web-toolkit .html). – hyip

5

Добавить новый один: GWT-Bootstrap :)

Там разве стабильный релиз прямо сейчас, но будет в ближайшее время.

+1

GWT-Bootstrap обладает потенциалом быть лучшим. – Mike

+0

За исключением очень фундаментального надзора за проектами в таких областях, как вкладки и модалы. Им нужно уменьшить свою зависимость от JQuery и подумать о «приложении». –

+0

Патчи приветствуются. Спасибо за предложение в любом случае – caarlos0