Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Каковы плюсы и минусы различных веб-фреймворков Java?
Я рассматриваю возможность создания собственного веб-сайта с использованием Java и пытаюсь решить, какой фреймворк использовать. Однако при быстром поиске Java фреймворков возвращается более 50 вариантов на выбор!
Мой сайт будет просто для моего собственного удовольствия строить его в начале, но если он станет популярным, было бы хорошо, чтобы он имел некоторую масштабируемость или, по крайней мере, мог бы перепроектировать для этого.
Каковы основные различия между более популярными фреймворками? Есть ли случаи, когда один значительно превосходит других? Например, корпоративные приложения с высоким трафиком по сравнению с малыми приложениями с низким трафиком. Мне также интересно, если некоторые из них гораздо легче изучать и использовать, чем другие.
Есть ли кто-нибудь, кто имеет опыт работы с некоторыми из этих рамок и может дать рекомендации? Является ли само количество вариантов просто ранним предупреждением, чтобы избежать Java-ориентированной веб-разработки, где это возможно?
Я довольно широко использовал гобелен 3 , калитку , Эхо и JSF . Я бы очень рекомендовал вам просмотреть их и выбрать тот, который кажется вам самым легким и наиболее точно соответствует тому, как вы предпочитаете работать.
Из них наиболее удобной для меня была калитка, благодаря легкому характеру компоновки компонентов и простоте шаблонизации страниц. Это вдвойне верно, если вы используете свой собственный код БД вместо Hibernate или какой-то другой фреймворк (я никогда не был полностью доволен интеграцией Wicket Hibernate или Spring).
Echo отлично подходит, если вы не возражаете против написания всего вашего макета в Java. Я знаю, что сейчас все по-другому, но я все еще думаю, что этот продукт служит довольно узкой нише. Похоже, что они меняют модель разработки с каждым крупным релизом.
Гобелен -отличный продукт, но он, очевидно, очень отличается от других с точки зрения модели развития, поскольку его возглавляет в основном один чувак. Корабль Говарда Льюиса, несомненно, довольно умен, но я разочарован их решением в основном забыть обратную совместимость с каждым релизом. Однако опять же, для ваших нужд это может не иметь значения, и я всегда находил гобеленовые изделия приятными для работы.
JSF вышел в течение многих лет, и до сих пор кажется чем-то, что парень Struts построил, чтобы исправить все проблемы Struts. Не понимая по-настоящему всех проблем с Struts. Оно все еще имеет незаконченное чувство к нему, хотя продукт очевидно очень гибок. Я пользуюсь им и питаю к нему некоторую симпатию, с большими надеждами на его будущее. Я думаю, что следующий релиз (2.0), который будет выпущен в JEE6, действительно принесет его в свой собственный, с новым синтаксисом шаблона (похожим на Facelets) и упрощенной моделью компонентов (пользовательские компоненты только в 1 файле... окончательно).
И, конечно же, есть миллион меньших фреймворков и инструментов , которые получают свое собственное следование ( скорость для основных потребностей, raw JSPs, Struts и т. д.). Хотя я сам обычно предпочитаю компонентно-ориентированные фреймворки.
В конце концов, я бы рекомендовал просто взглянуть на гобелен, калитку и JSF и просто выбрать тот, который кажется вам лучшим. Вы, вероятно, найдете тот, который просто соответствует тому, как вы любите работать очень быстро.
Я рекомендую компонентно-ориентированный каркас калитки . Это позволяет вам написать свое веб-приложение в простом старом коде Java, вы можете использовать POJOs в качестве модели для всех компонентов и не нужно возиться с огромными файлами конфигурации XML.
Я успешно разработал приложение для онлайн-банкинга с Struts, когда открыл для себя Wicket и увидел, как легко может быть разработана разработка веб-приложений!
Я недавно начал использовать фреймворк Stripes . Если вы ищете основанную на запросах структуру, которая действительно проста в использовании, но не накладывает никаких ограничений на то, что вы делаете, я бы очень рекомендовал ее.
Это похоже на struts, но выходит далеко за его пределы. Есть даже некоторые проекты плагинов, которые позволяют вам использовать hibernate или jpa с очень небольшой конфигурацией.
Там есть много хороших фреймворков, хотя я слышал, что уикет тоже хороший, но я его не использовал.
Обновление: гобелен 5.2 вышел, поэтому он не заброшен,как это было раньше. Мой опыт работы с гобеленом 4, а не 5, поэтому ваш пробег может отличаться. Мое мнение о гобеленах изменилось за эти годы; я изменил этот пост, чтобы отразить его.
Я больше не могу рекомендовать гобелен, как делал это раньше. Гобелен 5, по-видимому, является значительным улучшением, но моя главная проблема с гобеленом заключается не в самой платформе, а в людях, стоящих за ней.
Исторически сложилось так, что каждое крупное обновление версии Tapestry нарушало обратную совместимость с крайним предубеждением, гораздо больше, чем можно было бы ожидать. Это, по-видимому, связано с внедрением новых методов кодирования или технологий, которые требуют значительных переписок.
Говард Льюис шип (главный автор "гобеленов"), безусловно, блестящий разработчик, но я не могу сказать, что мне нравится его руководство проектом гобеленов. Разработка гобелена 5 началась почти сразу же после отгрузки гобелена 4. Из того, что я могу сказать, корабль в значительной степени посвятил себя этому, оставив гобелен 4 в руках других участников, которые, как я чувствую, не так способны, как корабль. Сделав болезненный переход с гобелена 3 на гобелен 4, я почти сразу почувствовал, что меня бросили.
Конечно, с выпуском Tapestry 5, Tapestry 4 стал устаревшим продуктом. У меня не было бы проблем с этим, если бы путь обновления снова не был таким жестоким . Так что теперь наша команда разработчиков находится в довольно незавидном положении: мы можем продолжать использовать фактически заброшенную веб-платформу (Tapestry 4), сделать отвратительное обновление до Tapestry 5 или полностью отказаться от Tapestry и переписать наше приложение с помощью другой платформы. Ни один из этих вариантов не является очень привлекательным.
Гобелен 5 предположительно написан так, чтобы уменьшить вероятность поломки обновления с этого момента вперед. Хороший пример - классы страниц: в предыдущих воплощениях классы страниц произошли от базового класса, предоставленного Tapestry; несовместимые изменения API в этом классе были причиной большого количества проблем обратной совместимости. В Tapestry 5 страницы POJOs, которые улучшаются во время выполнения с "magic Tapestry fairy dust" через аннотации. Таким образом, пока контракт для аннотаций сохраняется, изменения в гобелен не повлияют на ваши классы страниц.
Если это правильно, то написание нового приложения с использованием Tapestry 5 может оказаться хорошим результатом. Но лично мне не хочется снова класть руку на горелку.
Disclamer: я работаю на Vaadin (ранее это была мельница )
Если вы делаете что-то RIAish, вы можете посмотреть на Vaadin . Это фреймворк с открытым исходным кодом UI-oriented AJAX, который, по-моему, приятно использовать (я сам родом из PHP-го фона).
Есть пример , который сравнивает выполнение одного и того же приложения (т. е. двух приложений с одним и тем же набором функций) в Icefaces и Vaadin. В двух словах он утверждает, что разработка UI была значительно быстрее.
Несмотря на то, что исследование проводится в компании wiki, я могу заверить, что оно объективно, искренне и правдиво, хотя я не могу заставить вас поверить мне.
После долгого времени тестирования различных решений, для меня это оказалось:
Spring MVC для презентации и уровень контроллера (нет Spring Webflow, хотя, потому что мои потоки основаны на ajax)
jQuery для всех вещей на стороне клиента
Spring безопасность для, ну, аспекта безопасности
Hibernate / JPA2
Jetty ради продолжения (комета)
Один месяц необычайно крутой кривой обучения, но теперь я счастлив.
Я также хотел бы отметить, что я был всего лишь в небольшом шаге от того, чтобы пропустить все эти Java вещи и вместо этого изучить Scala/LIFT. Насколько я понимаю, все в Java, что связано с ультрасовременной веб-разработкой (comet, асинхронная Связь, безопасность (да, даже с Spring безопасностью!)) все равно это немного халтура (доказывай мне неправоту доказательствами, пожалуйста!). Мне кажется, что Scala/LIFT является более подходящим решением для out-of-the-box и all-in-one.
Причина, по которой я в конце концов решил не идти с Scala-это
как руководитель проекта я должен учитывать человеческие ресурсы и Java разработчиков гораздо легче найти, чем Scala разработчиков
для большинства разработчиков из моей команды функциональная концепция Scala, как бы превосходна она ни была, трудна для понимания
Овации Э
Я тоже слышал много хорошего о фреймворке Spring. В целом, однако, я был не в восторге от большинства Java веб-фреймворков, которые я рассматривал (esp Struts).
Для простого приложения я бы определенно рассматривал использование "raw" сервлетов и JSPs и не беспокоился о принятии фреймворка. Если сервлеты хорошо написаны,то в будущем, когда приложение будет усложняться, его можно будет легко портировать на фреймворк.
Я оценил довольно много фреймворков и Vaadin (http://vaadin.com/home ) просочился на самый верх.
Вы должны, по крайней мере, дать ему короткую оценку.
Ваше здоровье!
Для сайтов с высоким трафиком я бы использовал фреймворк, который не управляет состоянием клиента на сервере - Wicket, JSF и Tapestry управляют состоянием клиента на сервере. Я бы только использовал эти фреймворки (калитка-мой любимый), если бы приложение было больше похоже на настольное приложение. Но я бы попытался использовать более масштабируемый и простой подход REST+AJAX.
Spring MVC был бы кандидатом, но так как Spring MVC 3 имеет странную перегруженную аннотациями модель программирования, которая не использует преимущества статической типизации. Есть и другие уродливые вещи, такие как выходные параметры в методах в сочетании с обычным возвратом, поэтому есть два выходных канала одного метода. Spring MVC также имеет тенденцию повторно изобретать колесо, и вам придется больше настраивать по сравнению с другими фреймворками. Я действительно не могу рекомендовать Spring MVC, хотя у него есть несколько хороших идей.
Grails-это удобный способ использовать Spring MVC и другие установленные фреймворки, такие как Hibernate. Кодирование-это весело, и вы быстро увидите результаты.
И не забывайте, что Servlet API с несколькими маленькими помощниками, такими как FreeMarker для создания шаблонов, очень мощны.
Сказать "use JSF"-это немного просто. Когда вы решите использовать JSF, вы должны выбрать библиотеку компонентов поверх него. Будете ли вы использовать MyFaces Tomahawk, Trinidad, Tobago ( http://myfaces.apache.org/)? Или, может быть, ICEfaces ( http://www.icefaces.org/)? О, и если вы используете ICEfaces, вы будете использовать JSPs или Facelets для ваших представлений?
По-моему,это очень трудно сказать. Ни у кого нет времени, чтобы оценить все перспективные альтернативы, по крайней мере в проектах, над которыми я работаю, потому что они недостаточно велики, чтобы сделать трехмесячные этапы оценки. Тем не менее, вам следует поискать тех, кто имеет большое и активное сообщество и не исчез за год. JSF находится вокруг в течение некоторого времени, и так как его толкает солнце, он будет находиться вокруг еще некоторое время. Я не могу сказать, что это лучший выбор, но он будет хорошим.
См. несколько комментариев по некоторым Java платформам приложений (второй абзац):
http://swiss-knife.blogspot.com/2009/11/some-java-application-servers.html
Для быстрого и необычного GUI вы можете использовать JSF с библиотекой Richfaces . Компоненты Richfaces UI просты в использовании и удобны для использования с демонстрацией кода на демонстрационном сайте. Вероятно, позже, когда у вашего сайта будет больше данных для обработки и много информации должно быть обработано в базе данных, вы можете подключить к ней любую платформу доступа к базе данных (ORM).
Мой любимый способ получить действительно простые приложения-это Apache VelocityTools ( VelocityLayoutServlet) с Velosurf (http://velosurf.sourceforge.net ).
Для более сложных приложений-Spring MVC или Struts 2.