Struts 1.x против Struts 2.x - PullRequest
8 голосов
/ 03 мая 2011

Я рассмотрел несколько вопросов Struts 1 vs 2 по SO, но ни один из них, по-видимому, не отвечает на вопрос в той перспективе, с которой я на него смотрю.

Я собираюсь приступить к разработке новой системы,полная реорганизация очень старого настольного приложения.Цель состоит в том, чтобы сделать его основанным на веб-технологиях, добавить больше функциональности, сделать его более удобным для использования и т. Д. (Обычные причины реинжиниринга).

Команда, которая будет разрабатывать систему, состоит в основном из Java-разработчиков и работала над Struts 1.х широко за последние 5 лет.

Система рассчитана на долгие годы, поэтому идея реинжиниринга через 3-5 лет, когда выйдет лучшая структура, не возможна.Он не предназначен для интенсивного использования AJAX.

Мой вопрос: зачем мне переходить на Struts 2, когда моя команда имеет такой опыт работы с Struts 1.x.Я понимаю, что есть некоторые улучшения, но я беспокоюсь, что время, потраченное на то, чтобы ускорить работу команды, переработать ее из-за неправильного использования и т. Д., Намного перевесит любую выгоду, которую мы получили бы от Struts 2. Нам нравится Struts 1, он делает то, что мынеобходимо, и все шаблоны проектирования, стандарты, лучшие практики и т. д. на месте.

Существуют ли в Struts 2 функции-убийцы или серьезные проблемы, о которых я не знаю в Struts 1, которые могли бы повлиять на решение остаться со Struts 1.

Ответы [ 7 ]

9 голосов
/ 03 мая 2011

Если вы строите систему с нуля, я бы определенно перешел на версию 2.x Struts. Кривая обучения не будет хорошей для команды Struts 1.x, но вы сможете воспользоваться современной платформой MVC.

Для меня две основные функции Struts 2.x, которые повысят производительность:

  • Встроенная поддержка AJAX
  • Больше никаких ActionForms - вы можете привязываться непосредственно к доменным объектам, если хотите, так что этот промежуточный шаг уже пройден.

Если вы работаете над большим проектом, возможно, вы захотите взглянуть на каркас компонентов, например JSF 2 или калитка. Если вы полны решимости остаться на основе действий, то я лично считаю, что Stripes более продуктивен.

4 голосов
/ 03 мая 2011

Struts 1.x - это винтажная технология 2000 года.С какой стати вы могли бы даже подумать о том, чтобы придерживаться его в новом приложении?

Самый большой недостаток, который я вижу, заключается в том, что Struts блокирует вас на основе браузера, основанного на JSP.Действия Struts можно использовать только в рамках.В случае необходимости вам будет сложно интегрировать мобильное устройство в эту систему.

Я бы начал думать о веб-сервисах, предпочтительно на основе REST, и AJAX.Мир изменился.Я бы посмотрел на альтернативы Struts, такие как Spring или Play.Выбор новой веб-инфраструктуры не будет такой уж большой проблемой, но выгоды могут стоить того.

Те сотрудники, которые за последние пять лет работали только с устаревшей платформой, будут вам благодарны,тоже.Время новых навыков.

ОБНОВЛЕНИЕ: Если вы пытались, и не можете опоздать, и слишком много ограничений, то я бы сказал, что вы уже знаете свой ответ.Что вы надеетесь получить, придя сюда?Я не вижу аргумента, который вы не смогли продумать.

2 голосов
/ 03 мая 2011

Учитывая, что у вас есть команда с хорошим опытом в Struts 1.x и ваш продукт также стабилен, я не вижу веских причин для перехода на Struts 2. Apache, похоже, тоже согласен с тем, что http://struts.apache.org/roadmap.html#migrate_s1.

1 голос
/ 04 мая 2011

Я бы подумал вместо того, чтобы спрашивать "Придерживайтесь Struts1 или переходите в Struts2?" Вы бы лучше спросили: «Придерживайтесь Struts1 или переходите на современный веб-фреймворк MVC на основе действий?». Зачем двигаться? Потому что Struts1 стар и (откровенно) отстой. Почему бы не двигаться? Потому что мы должны изучить новую структуру. Конечно, вы знаете свои ресурсы, вы должны сделать оценку. Но имейте в виду, что современные фреймворки на основе действий (Struts2, SpringMVC, Stripes) довольно просты в освоении, и особенно если ваши команды уже знают Struts1.

Я сам перешел с Struts на Struts2, и теперь я не хотел бы возвращаться к программированию на Struts1 (эти неуклюжие ActionForms!). Я думаю, что Struts2 намного лучше. Но нужно также учитывать, что у Struts2 есть и свои слабые стороны, проект не выглядит очень здоровым, а сообщество - не очень активным. Переход от Struts1 к Struts2 невелик, но он не так мал, как изменение версии («Struts2» является неправильным), и он, вероятно, не меньше перехода к SpringMVC, поэтому я предлагаю рассмотреть его (или Stripes).

0 голосов
/ 04 мая 2011

Ну, главная причина в том, чтобы перейти к распоркам 2.x вместо распорок 1.x Struts 1.x находится на стадии сопровождения, сейчас не в активной разработке.

Теперь, когда все начинается с команды, которая хорошо разбирается в структурах 1.x, они быстро получат базовую систему. Но прежде чем позвольте мне четко изложить одну точку. Struts1.x не имеет сходства со Struts 2.x единственное сходство - это имя, унаследованное от родителей. Struts2 имеет следующие преимущества.

  1. Основанная на действии структура
  2. Сильная поддержка Ajax
  3. Подход перехватчиков (ядро фреймворка) 4 Отсоединен от API Serve let, что означает простой POJO, поэтому модульное тестирование будет намного проще

но я считаю, что простые стойки2 и стойки1 похожи только по названию, но с точки зрения базовой архитектуры они совершенно разные.

0 голосов
/ 03 мая 2011

в стойках2.0 больше возможностей и преимуществ, в стойках 2.0 нет балки формы, хорошая и мощная среда полной проверки и большинство импортируемых в struts2.0 для каждого запроса, есть один экземпляр действия, но в sturts1.x только один экземпляр действия для дырочного приложения.

так что выбор за вами. :)

0 голосов
/ 03 мая 2011

В целом, слоистые рамки Struts 2.x сравниваются со Struts 1.x.Например, в слое данных Struts 2.x имеет слой DO между VO и DAO. Аналогично, другие функции упоминаются в приведенной ниже ссылке.

http://struts.fromdev.com/2008/08/struts-1-vs-struts-2.html ..

Так как ваша команда более опытна в использовании Struts 1.x, я не думаю, что потребуется больше времени для переноса вашего кода в Struts 2.x.

Пожалуйста, уточните, какую разницу вы ожидаете..

...