Каковы мои варианты создания многофункционального веб-приложения? - PullRequest
2 голосов
/ 15 апреля 2011

Я работаю над клиентским Java-приложением, для которого я хочу создать веб-интерфейс пользователя (который будет обслуживаться браузером из локального приложения).С риском упрощения, это инструмент микроблогов, который будет поддерживать функциональность, аналогичную Twitter и Facebook.Это открытый исходный код, и вы можете прочитать больше на нашей вики .

Важно, что это приложение чрезвычайно простое в использовании, и я также хочу, чтобы оно выглядело хорошо по сравнению с современными веб-приложениями (такие как примеры, доступные в Интернет-магазине Chrome ).Поскольку я не веб-дизайнер, я надеюсь использовать инструменты, которые дают мне привлекательный пользовательский интерфейс "из коробки".О, и мне нужно, чтобы распространяемый файл был достаточно маленьким (чтобы он не использовался, поэтому все, что я использую, должно быть достаточно легким.

До сих пор я смотрел на Sproutcore и GWT.

Sproutcoreприложения определенно имеют внешний вид, на который я надеюсь, но я не очень знаком с JavaScript, и после некоторых экспериментов мне не совсем ясно, как я достигну некоторых из более сложных функциональных возможностей, которые, я думаю, мне понадобятся.

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

Еще кое-что, о чем я думал, - это использование CoffeeScript (который кажется ему более приятным, а он - его).ему его, чем JavaScript, и есть строители Maven для этого), возможно, вместе с JQuery-UI.

Какие еще варианты я должен рассмотреть?

Ответы [ 6 ]

3 голосов
/ 15 апреля 2011

Рекомендовать две большие структуры javascript Sencha и Cappuccino .

Они имеют обширный инструментарий пользовательского интерфейса из коробки.Последний имеет встроенную инфраструктуру MVC, первый имеет встроенную общую библиотеку JavaScript. И то и другое очень рекомендуется.

Также, как и рекомендовано, jQuery UI - разумный инструментарий.Я бы лично предложил Sencha за его богатый инструментарий пользовательского интерфейса и легкий MVC-фреймворк, такой как Backbone .Боюсь, это требует хорошего изучения JavaScript.

Вместо этого вы также можете использовать свой инструментарий пользовательского интерфейса JavaScript в основном с сервера и пропустить клиентский MVC.Для этого Sencha должен работать как инструментарий пользовательского интерфейса, но если вам нужна значимая функциональность, вам понадобится еще немного структуры.Я также рекомендовал бы RequireJS для модульного управления файлами.

2 голосов
/ 16 апреля 2011

Мне не нравится писать простой JavaScript, поэтому я расскажу вам немного о платформах на основе Java.Недавно я выбрал Google Web Toolkit .

Плюсы:

  • множество материалов
  • Eclipse + плагин Google
  • Очень интуитивно понятныйAPI
  • сторонние библиотеки
  • Необычные виджеты + оптимизированный JavaScript
  • множество обобщений
  • очень активное сообщество
  • потрясающие асинхронные обратные вызовы

Минусы:

  • очень медленная отладка , которая рано или поздно сведет вас с ума
  • много устаревшего кода для столь молодого фреймворка

Смешанные чувства:

  • У вас нетнаписать декларативный интерфейс (вы можете делать Swing-подобную разработку), но ваш код становится больше и менее поддерживаемым, поэтому вполне вероятно, что вы в конечном итоге выучите некоторый декларативный интерфейс, такой как UI Binder
  • Визуальный дизайнер для GWTкак-то неплохо, но очень нестабильно (затмение): (

Некоторые соображения:

Выполнить несколько прототипов with Vaadin .Попробуйте отладку.Затем попробуйте GWT и отладку аналогичного по размеру проекта.Рассматривайте отладку как ОЧЕНЬ важный фактор принятия решений, потому что отладка GWT была для меня самым расстраивающим.

Рассмотрим JSF + несколько хороших многофункциональных фреймворков для JSF, таких как RichFaces, IceFaces, PrimeFaces и т. Д. (но ваше приложение больше не будет «легким» и «маленьким», если вы действительно заботитесь).Убедитесь в том, что вам вполне комфортно работать со средой (IDE + плагины), там ничто не сравнится с JSF (я бы выбрал RichFaces + Seam сегодня, если полная Java EE является опцией).

2 голосов
/ 15 апреля 2011

Взгляните на jQuery & jQuery UI ( jQuery Modile , если вы хотите развернуть на портативные устройства)

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

2 голосов
/ 15 апреля 2011

Взгляните на Vaadin , он основан на GWT, но проще в использовании. Я пользуюсь им уже 2 года, и я тоже не дизайнер.

0 голосов
/ 14 сентября 2011

Я писал приложение в SproutCore для внешнего интерфейса и внутреннего интерфейса Java. На мой взгляд, это работает отлично.

Бэкэнд может перестать беспокоиться о содержимом HTML и JavaScript на стороне клиента, если запрос XHR или простой запрос / ответ. Я могу реализовать бэкэнды, используя простые старые сервлеты Java, и беспокоиться только о данных, которые передаются между клиентом и сервером (по большей части JSON).

Клиент стал быстрым и отзывчивым, и SproutCore имеет большое количество компонентов, которые можно смешивать и сочетать.

Таким образом, другими словами, с помощью SproutCore (и Cappuccino и других полнофункциональных платформ JavaScript MVC) вы можете позволить своему клиенту делать то, что он делает лучше всего: отображать и отображать HTML, CSS и JavaScript, оставляя свой сервер беспокоиться о том, что он делает. делает лучше всего: извлекать, хранить и обновлять данные. Если вам интересно, исходный код этого проекта доступен с лицензией GPLv3: https://github.com/joachimhs/EurekaJ

Я написал статью о различных подходах между MVC на стороне сервера и MVC на стороне клиента: http://haagen.name/2011/05/24/The_RIA_MVC_Model.html.

Также SproutCore поставляется с лицензией MIT, поэтому его можно использовать без каких-либо ограничений.

0 голосов
/ 15 апреля 2011

Если вы не хотите изучать javascript, я рекомендую вам GWT с Sencha-GWT (GXT), вы можете разработать все свое приложение на языке java, а также отладить свой код на java.

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

Также вы можете смешивать их с Hibernate и Giled для сохранения ваших данных, а Giled помогает вам сериализовать объекты Hibernate.

...