Лучшая библиотека виджетов GWT?
Вопрос ко всем гуру GWT - какая библиотека GWT является лучшей из всех? И почему?
Список на основе ответов:
- По умолчанию
- Сенча GXT
- Smart GWT
- Vaadin
- GWT-Bootstrap
- GwtBootstrap3
- Ракета GWT (неактивна)
- Татами (неактивный)
- http://erraiframework.org/
- GWTMaterialDesign
И наконец- новое поколение основанное на JsInterop:
27 ответов
Не связывай себя ни с одной из этих библиотек. Используйте Vanilla GWT для создания структуры вашего проекта. В частности, используйте шаблон MVP и шину событий. Пожалуйста, обратитесь к статье Google, чтобы узнать, как лучше спроектировать ваше клиентское приложение с помощью GWT: Создание приложений MVP
После этого вы можете использовать любой виджет этих библиотек (например, таблицу или комбинированный список, средство выбора даты и т. Д.) И включить его в свой проект. Попробуйте использовать ТОЛЬКО расширенные компоненты, если вы не видите способа сделать это с помощью vanilla GWT. Таким образом, вы не привязываете себя к этим библиотекам, которые ВСЕГДА испытывают боль, когда вы пытаетесь сделать что-то, что не появляется в демонстрационном приложении, содержит много ошибок и их поддержка в лучшем случае плохая.
Как искать виджеты следует в следующем порядке:
- Сначала проверьте инкубатор GWT, чтобы увидеть, есть ли то, что я ищу. http://code.google.com/p/google-web-toolkit-incubator/
- Затем, если вы ищете что-то "круче", проверьте GWT Mosaic http://code.google.com/p/gwt-mosaic/
Осторожнее с другими библиотеками, я работал с ними (и до сих пор ночные кошмары).
Зависит от того, что вы подразумеваете под "лучшим". Лучший вид? Лучший API? Лучше всего для расширения ваших собственных потребностей?
Например, я просто оценивал классы таблиц для использования в нашем приложении. Мы использовали GWT-Ext, но у нас много проблем с производительностью, и очень трудно подобрать таблицы по размеру так, как они нам нужны. Я очень близко подошел к работе с GWT-Mosaic, но решил вместо этого создать виджеты в инкубаторе GWT.
Итак, почему я сделал этот выбор? Похоже, что слишком многие библиотеки там имеют свой собственный, из-за отсутствия лучшего слова, багаж. Либо вам придется полностью погрузиться в какую-то инфраструктуру MVC (которая может быть не полностью совместима с остальной частью вашей базы кода), либо вам нужно принять новую чью-то запутанную систему компоновки, или вам придется смириться с тем, что вы не можете действительно отладить код (потому что это просто JSNI-оболочки).
Не поймите меня неправильно, инкубатор GWT не совершенен... виджеты в некотором количестве изменяются. В моем случае это был лучший выбор. Это дает мне хорошее (но определенно не идеальное):
- API
- растяжимость
- Смотри и чувствуй (ну, это немного слабовато, но для этого и нужен CSS).
Итак... ответ (для меня) представляет собой сочетание:
- Стандартные виджеты GWT (с большим количеством пользовательских стилей)
- Инкубаторные столы GWT
- Несколько доморощенных виджетов
(Я должен добавить: "багаж", о котором я говорю, не обязательно плохая вещь. Но, если вам нужен только один или два виджета, это может поднять планку того, что нужно, чтобы просто выполнить свою работу и как хорошо выглядит приложение.
Посмотрите эту библиотеку компонентов GWT Bootstrap, это реализация в gwt Twitter Bootstrap.
GWT одна довольно хорошая библиотека.
Я не использовал все перечисленные, но могу рекомендовать Ext GWT.
Я предпочитаю ванильный GWT. Некоторые из других API выглядят симпатично, и их витрины действительно демонстрируют виджеты, но я всегда нахожу, что производительность не самая лучшая.... когда я говорю производительность, я имею в виду скорее время отклика. Я ненавижу, когда приложение чувствует себя вялым.
Большинство упомянутых библиотек не имеют открытого исходного кода и, что еще хуже, являются просто обертками над библиотекой JavaScript. Сила GWT заключается в том, что приложение работает в разных браузерах (в частности, из-за генерации кода для "больших" браузеров). Эти базовые библиотеки JavaScript могут вызвать много проблем.
Я согласен с Jgindin GWT Incubator и GWT Mosaic пока что являются лучшими.
Не сказать, что это "лучший", но я в последнее время использую GWT-Ext на работе. У него есть плюсы и минусы:
Плюсы:
- Относительно прост в настройке и использовании
- Достойное сообщество за этим стоит
- Множество примеров онлайн, каждый из которых имеет сопровождающий код
- Хороший выбор виджетов, которые охватывают широкий спектр функций
Минусы:
- Делает предположения о формате и структуре ваших данных, которые вы, возможно, не сможете вместить
- Библиотека - это просто оболочка JSNI, которая усложняет отладку и расширение
- Будущая поддержка и развитие библиотеки сомнительна
- Некоторые раздражающие кросс-браузерные проблемы все еще существуют (особенно с макетами)
- Функция поиска на их форумах по сути бесполезна. (Это становится моей любимой мозолью>_<)
НЕ используйте ни один из них! Если вы планируете разработать крупномасштабное приложение, вы должны рассмотреть возможность использования шаблона MVP. Лучшая реализация вокруг - это фреймворк MVP4G, он поддерживает разделение кода GWT из коробки. Есть много отличных примеров, с которых можно начать. Самый ценный из них - Mvp4GModules.
Добавьте новый: GWT-Bootstrap:)
Сейчас нет стабильного релиза, но скоро будет.
Мой опыт показывает, что со сторонними библиотеками всегда много проблем. Лучший способ - это использовать известные и хорошо продуманные технологии, а также собственные компоненты. Для их написания и обслуживания может потребоваться больше времени, но TCO всегда находится на более низком уровне.
Сторонние библиотеки часто могут неожиданно нарушить ваши планы. И трудно найти и исправить источник проблемы.
Поэтому я бы предложил использовать обычный GWT.
Я думаю, что SmartGWT - это хорошо, если вы просто хотите использовать виджеты такими, как они есть, но если вы хотите расширить или изменить виджеты, как я это делаю в Gxt Scheduler, я думаю, что Ext-GWT - лучший выбор.
Для меня EXT-GWT (он же GXT) - лучшая библиотека, доступная на данный момент, я использую ее в 6-месячном проекте, и она очень помогает со многими предопределенными компонентами, такими как сетки, деревья... Это также прекрасно
Определенно не SmartGWT. Их структура раздутая и имеет очень полусыренную природу. У них есть миллион виджетов, но попытка заставить их работать на ваш проект не легка. Источники данных очень сильно усложняют процесс управления вашими данными, например, чтобы получить доступ к данным в вашем источнике данных, вы должны использовать fecth и часто проверять. Хотя вы можете кэшировать результаты, их не всегда легко опрашивать.
RPC - еще одна слабая и запутанная область. В документации и на форумах противоречивая информация. Хотя в документации будет сказано, что вам редко следует использовать пользовательские операции как часть ds, на форуме вам сообщат, что это совершенно нормально. Научиться эффективно использовать эти инструменты - подъем в гору в лучшие дни.
Они будут перепродавать продукт. Например, пакет карт / аналитики содержит графики... Но эти графики не будут отображать отрицательные значения или позволят вам манипулировать метками осей любым осмысленным способом. И они открыто отвечают на вопросы об этом на форуме с отношением "да и что". "Мы не планируем добавлять это в 3.0x, хотя это один из наших пунктов продажи, это на нашей дорожной карте". Когда они продавали мне пакет, они никогда не упоминали, что я не могу отображать отрицательные значения. В самом деле? Какой график не должен быть в состоянии показать отрицательные значения? Я могу думать только об одном - о том, что изображает количество несчастных изоморфных клиентов.
Держитесь подальше от этих парней и зайдите на сайт любого конкурента, например ExtJS, JQuery, чёрт возьми, даже quxdoo. Есть несколько проектов, которые действительно набирают силу и действительно предлагают хорошее решение.
Будьте очень осторожны, если вы когда-либо оцениваете этот продукт. Это выглядит красиво, но через две недели в проекте, использующем его, вы начнете понимать, что я имею в виду. Виджеты наполовину испечены, источники данных чрезвычайно сложны, и только потому, что вы заплатили за поддержку форума, не означает, что вы на самом деле получите что-то иное, нежели снисходительные, снисходительные ответы, которые сначала заставят вас думать, что вы что-то упустили. Вы не они, как правило, очень высокомерны.
Желаем удачи, и держитесь подальше от этого продукта, если вы цените время разработки и ремонтопригодность. Ох, и последнее. Посмотрите на пример MVC на их веб-сайте. Он буквально не имеет ничего общего с MVC, кроме метки с надписью "MVC". Они попытаются убедить вас в том, что такие фреймворки предназначены для неопытных разработчиков, и что такой концепции нет места в реальном программировании... Вроде как те, которые пытаются блокировать catch.
Группа пользователей gwt-mosaic не очень активна, и я не смог найти руководство пользователя, кроме фрагментов вики. gwt-mosaic познакомила меня с двумя интересными инструментами.
1) gwt-mosaic включает в себя оболочку для PageBus компании Tibco, которая является инструментом публикации / подписки для JS-частей вашего приложения (обработчики RPC, обратные вызовы виджетов, установщики виджетов). Это альтернатива шине событий GWT.
2) gwt-mosaic поощряет использование Beans Binding (http://code.google.com/p/gwt-beans-binding/) для привязки данных к виджетам и проверки виджетов.
SmartGWT не дешево для полного набора функций и поддержки. Баночка слишком велика для appengine, если вы не удалите файлы тем, которые вы не используете. Они также вкладывают средства в разработку на стороне сервера.
Я слышал, что ext-gwt вялый, а файлы JS большие.
Инкубатор виджетов gwt выглядит устаревшим. Я верю, что роскошная сетка будет выпущена с новым GWT.
Отсутствие стандартов внешнего вида, связывания и валидации препятствует взаимодействию библиотек виджетов.
В настоящее время нам нравятся виджеты GWT Mosaic. Мы работали с ext-JS, и мы катали свои собственные виджеты в прошлом. Лицензирование ext-JS и массовое распространение были для нас проблемой. Прокатить свой собственный не то, что мы хотим сделать. Мозаика дает нам счастливую золотую середину, которая, как нам нравится думать, станет еще более счастливой золотой серединой по мере развития проекта.
Я не упомянул об этом, Ваадин (ранее известный как IT Mill Toolkit), но, возможно, это потому, что это технически не совсем GWT; поскольку их FAQ говорит:
Чем это отличается от GWT?
Приложения GWT запускаются в браузере, а приложения Vaadin - на сервере. На самом деле мы используем GWT в качестве "движка рендеринга" на стороне браузера, поэтому вы можете комбинировать Vaadin и GWT.
Я бы сказал, если вам нужно всего несколько виджетов, то создайте свой собственный. Вы можете скопировать и вставить некоторые концепции из упомянутых библиотек. Но им всем не хватает того или другого. Я играл с большинством из них и отказался от всех.
Библиотека Google по умолчанию является самой мощной библиотекой.
Ext GWT добавляет навороты, но кроме этого он похож на Google.
SmartGWT работает медленно, примеров нет, и очень сложно найти ответы даже на основные вопросы, то есть посмотреть все мои неотвеченные вопросы на этом форуме. Я сбрасываю smartgwt.
Мы занимаемся проектами gwt более 2 лет и придерживаемся стандартных виджетов. Мы сделали нашу собственную библиотеку с открытым исходным кодом, чтобы автоматически заполнить стандартные или наши собственные расширения виджетов. Пожалуйста, проверьте это, это называется gwt-jet. Он очень хорошо протестирован, поскольку мы используем его в больших производственных средах, и мы надеемся, что он будет расти с течением времени.
Я использую GWT в течение года. После долгих исследований я решил, что GWT Mosaic является библиотекой виджетов. Mosaic использует некоторые компоненты инкубатора GWT, такие как PagingScrollTable. Но нам не хватает возможностей комбинированного списка и таблицы. Вот почему мы имеем расширили эти компоненты, чтобы добавить необходимую функциональность.
Две важные вещи - и то, что пропускает большинство библиотек - это модульное тестирование и отладка. Это где GWT сияет. Если вы используете библиотеку, основанную на vanilla js, вы отказываетесь от возможности модульного тестирования и отладки своего проекта. Как разработчик GWT, вы должны учитывать эти моменты и использовать библиотеку без или с минимальной зависимостью от js.
Проверьте SpiffyUI: http://www.spiffyui.org/
Это не просто библиотека виджетов, а сложная инфраструктура UI/UX GWT.
Мы создали большой HR-портал и несколько небольших приложений, использующих портлеты GWT. В центре внимания проекта не столько создание коллекции виджетов, сколько создание простой модели программирования.
С веб-сайта:
GWT Portlets - это бесплатный веб-фреймворк с открытым исходным кодом для создания приложений GWT (Google Web Toolkit). Он определяет очень простую и продуктивную, но мощную модель программирования для создания привлекательных модульных приложений GWT.
Модель программирования чем-то похожа на написание портлетов JSR168 для сервера портала (Liferay, JBoss Portal и т. Д.). "Портал" - это ваше приложение, созданное с использованием инфраструктуры портлетов GWT в качестве библиотеки. Функциональные возможности приложения разрабатываются как слабо связанные портлеты, каждый из которых имеет дополнительный DataProvider на стороне сервера.