Они основаны на моем личном опыте использования фреймворков, о которых вы упомянули. Так что да, это немного предвзято. Итак, как другие говорили снова и снова, определите свои требования и какой из них, по вашему мнению, соответствует вашему требованию, основываясь на том, что люди предложили здесь.
Это строго вопрос мнения. Вы не получите никаких однозначных ответов ни от кого, так как каждый, кто ответит, будет иметь то или иное, что он лично предпочитает.
Попробуйте каждый из них достаточно долго, чтобы решить, какой из них лучше всего подходит для ваших (или вашей команды) целей.
При этом я предпочитаю GWT. Другие неизменно не согласятся со мной.
Причины, по которым мне нравится GWT:
UiBinder
позволяет вам писать свой пользовательский интерфейс с использованием декларативного синтаксиса, подобного HTML; вы не зацикливаетесь на написании Swing-подобного пользовательского интерфейса, если не хотите, чтобы ] Вещи, которые могут сделать GWT неподходящим для вас:
Лично я устал от несогласованности браузеров. Если кто-то другой решил эту проблему, я бы не хотел повторяться. Вот почему я все больше интересуюсь такими фронтэндами, как cappuccino и qooxdoo. Они представляют собой решение с нулевым HTML и нулевым CSS.
Ext GWT хорошо зарекомендовал себя в моем проекте. Премиум-поддержка была хорошей.
Однако проект предназначен для внутреннего использования, что позволило ограничить развертывание одним браузером в одной ОС, и не было предпринято никаких усилий для изменения внешнего вида или поведения Ext GWT по умолчанию.
Полная разработка на Java является ключевым преимуществом, поскольку помогает сохранять управляемость проекта по мере добавления функций.
Здесь мы используем Grails + ExtJS. Поскольку мы пытаемся создать идиоматическое приложение ExtJS, Grails используется не полностью, хотя все еще имеет смысл использовать Grails вместо, скажем, JSP для серверной части.
Почему ExtJS: Потому что это очень богатый набор инструментов для веб-приложений, подобных графическому интерфейсу пользователя. Наша задача - заменить старый графический интерфейс Motif, так что это именно то, что нам нужно.
Почему Grails: потому что он выполняет работу легко и быстро. Для связи с частью ExtJS нам нужно много JSON, а в Grails это примерно так:
import foo.bar.FooBar
class FooBarController {
def viewFooBars = {
def list = FooBar.getList(session.userId, params.foo, params.bar)
def result = [resultset: list] as JSON
response.setHeader('Content-disposition', 'filename="json"')
response.contentType = "text/json";
render result
}
}
И это даже на две или три строки больше, чем необходимо ...
К сожалению, ответ будет основан на мнениях, GWT в чистом виде - это не конфетка для глаз. И это при том, что ExtJs GXT - это супер-хонки-дори. Одна из основных проблем, с которыми я сталкиваюсь с развивающимися фреймворками, заключается в том, что они не являются абсолютно бездефектными. Если я правильно помню, GWT 2.0 был отправлен с отсутствующими стилями CSS для некоторых новых макетов. Я пытаюсь решить проблему в ExtJs/GXT уже 5 дней :(, фреймворки многое скрывают. Я буду работать с любым фреймворком, который абсолютно надежен и выдает соответствующие сообщения об ошибках. Хотя я не работал с другими.
В настоящее время я работаю над гибридным приложением grail / flex, которое работает намного лучше, чем я ожидал. Я посмотрел на GWT, но в то время было не так много книг об этом, и, похоже, подчеркивалось использование Swing-подобных методов программирования, которые мне никогда не нравились. Я согласен с комментарием об испытании их всех. Запустите приложение hello, которое есть у всех, и измерьте, насколько сложно или легко его изменить. Кроме того, поддержка инструментов (IDE, Maven, CI ... и т. Д.) Также может быть важным фактором с точки зрения немедленной продуктивности.