Предложения по подходу к разработке портлетов на Liferay - PullRequest
5 голосов
/ 24 февраля 2011

Мы находимся на этапе оценки некоторых структур для разработки портлетов.На данный момент я знаю ниже 3 вариантов.Хотелось бы узнать ваш опыт работы с ними и другими

  1. Struts 2
  2. Spring Portlet MVC
  3. Liferay 6.x MVC Framework

Пожалуйста, попробуйте поделиться плюсами / минусами в следующих областях наряду с тем, что вы считаете важным

  • Скорость разработки
  • Обслуживание
  • Простота разработки с Geo Distributedкоманды

Пожалуйста, предложите любые другие фреймворки, которые можно использовать как альтернативу с некоторыми плюсами / минусами

Ответы [ 4 ]

5 голосов
/ 25 февраля 2011

С моей точки зрения, использование MVCPortlet и JSP без Spring-mvc или Struts подходит только для простого портлета. Я бы определенно попробовал хотя бы пример портлета, чтобы увидеть, как он работает, если разработчики не сделали портлеты.

Единственное преимущество использования Struts заключается в том, что сам портал активно использует его, потому что spring-portlet-mvc является относительно новым. Так что вы можете многому научиться на самых разных примерах. В противном случае технология afaik умирает ( в отношении разработки портлетов ), и если вы не работали со Struts, лучшим вариантом для вас будет перейти на spring-portlet. Я использую Spring-портлет уже более года, и должен сказать, что был поражен тем, насколько хорошо он интегрирован в контейнер портлетов и какие функции реализованы там. Вы можете делать практически все, как с spring-mvc (спецификация сервлета), за исключением некоторой незначительной поддержки, которую я все равно нашел избыточной.

Скорость развития опытный разработчик, который знает, что spring-mvc может создать надежное приложение с несколькими контроллерами Spring.

Техническое обслуживание Количество исходного кода с пружиной значительно меньше, чем у стоек. Spring-портлет реализовал 268 JSR, так что он экономит пару обходных путей.

Простота разработки с командами Geo Distributed Я чувствую, что вы стремитесь к чему-то большему, поэтому спросите разработчиков об их опыте с Spring и Struts и сделайте свой выбор. В любом случае, Liferay - довольно надежное решение для портала, и «изучить» его и найти способ его правильного использования является более важной проблемой, чем разработка портлетов.

Также поинтересуйтесь разработчиками знанием Javascript. Если они мало знают JS или у вас нет фронт-эндов разработчиков, я бы, вероятно, попробовал портлеты Vaadin или GWT . Однако Liferay имеет очень хорошую поддержку на стороне клиента, и вы увидите, что в Liferay можно многое сделать на стороне клиента. Библиотеки тегов JSP обеспечивают значительное динамическое поведение, а структура Alloy JS, построенная на основе YUI, обеспечивает приятную среду, и ее нетрудно использовать.

РЕДАКТИРОВАТЬ: Сравнение Struts и Spring касается спецификации портлета, где (на мой взгляд) поддержка Struts - это старый Volkswagen, а Spring - Bentley continental gt: -)

ТАКЖЕ: Ключевым инструментом для разработки портлетов Liferay является так называемый ServiceBuilder, который является генератором кода, который генерирует значительную часть вашего уровня персистентности, уровня удаленного сервиса на основе модели домена и метаданных. Если вы решите использовать его, ваш портлет будет автоматически основан на Spring. И я бы порекомендовал использовать его, потому что, как только вы попробуете это, вы не отпустите. Например, для создания Ajax-вызовов от клиентской стороны к удаленным сервисам требуется 2 минуты, чтобы настроить его, иметь возможность вызывать их и даже получать возвращаемое значение. Настройка Hibernate полностью оптимизирована и готова к использованию после запуска servicebuilder. И многое, многое другое.

2 голосов
/ 26 февраля 2011

Я использовал 2) и 3), но не 1) - я не фанат Struts.

Spring MVC предоставляет вам возможности Spring и без проблем подключается к бэкэнду Spring, а также позволяет подключаться к сервисам Liferay Spring. При условии вы правильно используете MVC и разделяете Controller концерны на отдельные Action классы, тогда это чрезвычайно масштабируемый и гибкий выбор, который хорошо работает в сочетании с Liferay.

Liferay MVCPortlet предоставляет многоменьше с точки зрения гибкости, но при правильном использовании это все еще очень масштабируемый и очень полезный выбор.Он также связан с Liferay IDE / Liferay Development Studio, которая обеспечивает преимущества во время разработки.Если у вас есть доступ к обучению Liferay Developer, то в День 2 вы получите широкий охват.

В целом Spring обладает большими преимуществами, но также имеет большую кривую обучения и больший риск неправильного выполнения действий, а также наносит тяжелые удары посделано плохо.MVCPortlet Liferay, сделанный плохо, в конечном итоге выглядит как ванильный портлет, и поэтому является меньшим злом.Лично я использую MVCPortlets для небольших задач и Spring MVC для более крупных.

В обоих случаях делает это хорошо 'предполагает правильное использование рамок и аннотаций.

Liferay также поддерживает Vaardin и выпустил новый почтовый портлет, используя его.Я не использовал Vaardin, но определенно планирую это и слышал хорошие вещи до сих пор.

2 голосов
/ 25 февраля 2011

Это действительно зависит от ваших требований, поскольку liferay MVCPortlet - это просто подклассы javax.portlet.GenericPortlet, я не думаю, что это справедливое сравнение между веб-фреймворком, таким как Strut 2 или Spring MVC.

Я предлагаю использовать Spring MVC или Struts 2 для портлета 168 и 268 JSR, если вы хотите использовать переносимость между портлетами и контейнерами или если у вас более сложные требования к представлению, вы должны найти список преимуществ и недостатков этих двух сред везде.

Если ваше требование очень простое, тогда используйте Liferay MVCPortlet или даже JSPPortlet.

0 голосов
/ 22 марта 2011

С точки зрения простоты разработки, я думаю, Vaadin - один из лучших.Новая Liferay IDE 1.2 уже включает поддержку Vaadin, что упрощает ее запуск.

То же самое касается обслуживания приложений и API.С Vaadin код приложения - это просто код Java, который позволяет легко разделять работу и поддерживать существующий код (преимущества ООП).

Уже имеется большое количество «дополнений» для Vaadin , которые демонстрируют, как можно «компоновать» код Java и разделить разработку между организациями.

Единственным недостатком является тот факт, что библиотеки Vaadin используются всеми портлетами Vaadin на портале, что означает, что они должны использовать одну и ту же версию Vaadin для упрощения развертывания.

В любом случае, я бы сказал,неплохо подходит для ваших нужд.

...