Подтвердить что ты не робот

Должен ли я использовать Google Web Toolkit для моего нового webapp?

Я хотел бы создать базу данных, поддерживающую интерактивный AJAX webapp, который имеет настраиваемую (конкретную структуру событий, редактирование) систему календаря. Это потребует довольно много JavaScript и AJAX, и я подумал о Google Web Toolkit для интерфейса и Ruby on Rails для серверной части.

Является ли Google Web Toolkit надежным и надежным? Какие скрытые риски могут возникнуть, если я выберу Google Web Toolkit? Можно ли легко объединить его с Ruby on Rails на стороне сервера? Или я должен попытаться использовать непосредственно библиотеку JavaScript, такую ​​как jQuery?

У меня нет опыта в веб-разработке, кроме некоторого HTML, но я опытный программист (С++, java, С#), и я бы хотел использовать только бесплатные инструменты для этого проекта.

4b9b3361

Ответ 1

RoR на самом деле является одной из вещей, с которой GWT хорошо работает, если вы правильно используете REST. Это в книге приложений Google Web Toolkit Applications, и вы можете увидеть демо из книги, используя эту идею здесь. Это не значит, что у вас не будет никаких проблем, но я думаю, что поддержка там определенно для этого.

Там аккуратный проект для создания RoR/GWT легко, что вы можете найти здесь (лицензия MIT). У меня еще не было возможности попробовать это, но похоже, что в него было заложено много идей. Один улов заключается в том, что похоже, что он еще не был полностью протестирован с 2.1 Rails, но всего 2.0, поэтому вы можете столкнуться с несколькими (возможно, незначительными и исправляемыми) ошибками.

Ответ 2

Если вы хотите интегрировать GWT с не-Java-компонентами, такими как ROR, PHP и т.д., вы должны иметь в виду, что GWT 1.5 теперь поддерживает типы JavaScript Overlay. Эта функция позволяет вам писать классы, которые могут быть сопоставлены поверх встроенных объектов JavaScript, чтобы легко предоставлять методы доступа к свойствам этих объектов и другим расширенным функциям.

См. эту ссылку для получения более подробной информации: Типы перекрытия JavaScript

Таким образом, вы можете вернуть JSON-кодированные данные из вашего бэкэнда через вызовы AJAX, проанализировать его в JavaScript-объекте и затем получить доступ к данным через ваш код Java GWT, используя созданные классы наложения. Или, когда вы создаете свою страницу, вы можете отображать статические данные конфигурации как объекты JavaScript и читать ее с помощью этого механизма, вместо того, чтобы выполнять вызов AJAX для захвата данных.

Ответ 3

Если вы знаете JAVA, и где-нибудь вы можете разместить его (например, контейнер tomcat или glassfish), я бы рекомендовал это гораздо больше, чем использовать Ruby для задней части. Основная причина заключается в том, что тогда вы можете поделиться всеми своими объектами и использовать встроенный механизм RPC. Я сделал это для довольно многих наших проектов, и это огромный тайм-брейк, не говоря уже о том, что код менее подвержен ошибкам, потому что вы не конвертируете свои Java-объекты ни к чему, а затем обратно.

Я связал свой GWT с Rails раньше, используя функцию to_json в Rails и затем прочитав JSON в GWT. Все это поддерживалось, но это гораздо более раздражает, чем просто сделать задний конец в JAVA.

Конечно, если у вас дешевый хостинг, то Java-контейнеры в значительной степени не могут быть и речи, и в этом случае я бы подумал, что Rails будет следующей лучшей.

Ответ 4

GWT - это очень высокое качество с отличным сообществом. Однако вам нужно знать CSS, если вы хотите настроить внешний вид вещей (вы это сделаете) - CSS может сделать много макета, как обычный веб-сайт, если вы этого хотите. Библиотеки, такие как GWT-ext или ExtGWT, могут немного помочь, поскольку у них потрясающий "из коробки" выглядит, но по цене (дополнительный размер для вашего приложения).

Ответ 5

Вы можете закодировать все на Java с помощью GWT, и вы можете интегрировать с ним существующие сторонние библиотеки javascript. Это очень хорошо. Я никогда не использовал RoR, хотя, поэтому ничего не могу сказать об этом.

Ответ 6

Если вы опытны в Java, но не в Javascript/CSS, тогда GWT будет спасателем (если вы не хотите их изучать, конечно). CSS имеет очень много деталей. Это не редкость, чтобы потратить полдня на исправление 2-пиксельной несоосности, которая встречается только в IE6.

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

Ответ 7

Недавно я написал о некотором недостатках GWT. Главным образом, недостатками являются: длительный цикл развертывания для изменений в некоторых частях приложения и довольно крутая кривая обучения. Как опытный программист на Java, второй должен быть менее проблемным, и если вы используете отдельный сервер, первый также смягчается (поскольку полное перераспределение требуется в первую очередь при изменении "серверной" части приложения).

Ответ 8

GWT - замечательная инфраструктура с большим потенциалом. Имейте в виду, что он все еще довольно новый. Есть некоторые неурегулированные ошибки, которые могут вас действительно раздражать, и они обычно требуют уродливых обходных решений, чтобы пройти. Сообщество великолепен, но вы, вероятно, в конечном итоге столкнетесь с некоторыми проблемами рано или поздно, что Google еще не может ответить.

Но эй, я говорю, иди за ним. Потенциал GWT потрясающий, и я уверен, что будущее будет ярким.

Ответ 9

Вы должны обязательно использовать GWT для нового проекта (он довольно прост в использовании в старом проекте тоже).

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

Другим преимуществом является способность отлаживать ваш код (который является адом только с javascript)

Ответ 10

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

Фундаментальное преимущество

GWT запускает программирование веб-уровня в JAVA. Таким образом, очевидные преимущества Java начинают входить в игру. Он обеспечит объектно-ориентированное программирование. Он также обеспечит отличные проверки времени отладки и компиляции. Поскольку он генерирует HTML и Javascript, он также будет иметь возможность скрывать некоторую сложность в своем генераторе.

Основные недостатки

Недостаток начинается с того же самого утверждения. GWT запускает программирование веб-уровня в JAVA. Если вы знаете JAVA, возможно, вы никогда не будете искать альтернативный язык для написания своей бизнес-логики. Это самодостаточно и здорово. Но когда дело доходит до написания конфигураций для приложения JAVA. Мы используем файлы свойств, базу данных, XML и т.д. Мы никогда не храним конфигурации в файле класса JAVA. Подумайте, почему это?

Это потому, что конфигурация - это статические данные. Это часто требует иерархии. Он должен быть читаемым. Это никогда не требует компиляции. Это не требует знания языка программирования JAVA. Короче говоря, это другая игра в мяч. Теперь вопрос в том, как это относится к нашей дискуссии?

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

Предыдущий абзац делает очень сильное выражение. Это объяснит, почему веб-страницы на основе HTML и XML по-прежнему являются самыми популярными. XML лучше всего подходит для написания конфигураций. Структура должна обеспечивать четкое разделение веб-страницы от бизнес-логики (цель структуры MVC). Делая это, веб-дизайнер сможет применять свои навыки визуализации и артистизма для создания блестящих веб-страниц, просто настраивая XML файлы и не беспокоясь о тонкостях языка программирования. Разработчики смогут использовать свои лучшие в бизнесе JAVA для написания бизнес-логики.

Наконец, давайте поговорим о последствиях в прямых выражениях. GWT нарушает эту основную задачу, поэтому она обязательно терпит неудачу. Стоимость разработки приложения GWT будет очень высокой, поскольку для написания веб-страниц вам понадобятся программисты с несколькими программами. Необходимый внешний вид будет очень трудно достичь. Поворот времени на изменение веб-страницы будет очень высоким из-за ненужной компиляции. И, наконец, поскольку вы пишете веб-страницы в JAVA, это очень легко испортить его бизнес-логикой. Неосознанно вы вводите сложности, которых следует избегать.

Ответ 11

Вы также можете рассмотреть Grails ( "Groovy on Rails" ), который дает вам преимущества структуры Rails и использование виртуальной машины Java.

Ответ 12

Наша команда недавно задала тот же вопрос, и мы решили пойти с GWT, тем более что плагин дизайнера сделал работу с GWT более доступной для экспертов, не являющихся специалистами в команде. Кто бы ни выбрал этот выбор, просто будьте осторожны, НЕ используйте плагин GWT Designer! Он не обновлялся (по крайней мере, через год), чтобы создать приложение GWT, совместимое с IE8.

Наша команда почти завершила наши макеты приложений, которые отлично работали в Chrome, FF и Safari. Затем они взорвались в IE. IE 7 загружал частичные страницы (но не включал составные), а IE8 даже не смог загрузить приложение. Он просто висел.

В плагине дизайнера есть кнопки, которые позволяют пользователю добавлять виджеты CellTable, которые не совместимы с IE (CellTable, DeckPanel, Horizontal Panel, Vertical Panel и другие). Это вызовет сильную боль, когда макеты должны быть переделаны в java без помощи дизайнера.

Опытные пользователи GWT любят это, но плагин дизайнера убьет вас.