关于Liferay的Portlet开发方法的建议

时间:2011-02-24 19:31:07

标签: spring-mvc struts2 portlet liferay

我们正处于评估portlet开发的一些框架的阶段。截至目前,我知道以下3个选项。我想知道你和他们以及其他人的经历

  1. Struts 2
  2. Spring Portlet MVC
  3. Liferay 6.x MVC框架
  4. 请尝试在以下方面分享优点/缺点以及您认为重要的内容

    • 发展速度
    • 维护
    • Geo Distributed团队的易于开发

    请建议任何其他可用作替代方案的框架

4 个答案:

答案 0 :(得分:5)

从我的角度来看,使用没有Spring-mvc或Struts的MVCPortlet和JSP仅适用于简单的portlet。我肯定会尝试至少一个示例portlet,看看如果开发人员没有完成portlet,它是如何工作的。

使用Struts的唯一好处是Portal本身大量使用它,因为spring-portlet-mvc相对较新。这样你就可以从各种例子中学到很多东西。否则,afaik技术正在消亡(关于portlet开发),如果你还没有使用Struts,那么更好的选择就是使用spring-portlet。我已经使用spring-portlet超过一年了,我必须说我很惊讶它是如何集成到portlet容器中以及在那里实现了哪些功能。你可以像spring-mvc(servlet规范)那样做几乎所有事情,除了我发现冗余的一些小支持。

发展速度 知道spring-mvc的体验开发人员可以使用少量弹簧控制器创建一个强大的应用程序。

<强>维护 弹簧然后struts的源代码量明显减少。 Spring-portlet实现了268 JSR,因此它可以节省几个变通方法。

Geo Distributed团队的易于开发 我觉得你想要更大的东西,所以请开发人员询问他们使用Spring和Struts的经历并做出你的选择。无论如何,Liferay是一个非常强大的门户解决方案,并且“学习”它并找到正确使用它的方法比如何开发portlet更重要。

也对开发人员对Javascript的了解感兴趣。如果他们不了解JS或者你没有前端开发人员,我可能会给Vaadin或GWT portlet一个机会。然而,Liferay有一个非常好的客户端支持,你会发现在Liferay中可以在客户端完成很多事情。 JSP标记库提供了大量的动态行为,构建在YUI之上的Alloy JS框架为您提供了一个很好的环境,并且不难使用。

编辑:Struts与Spring的比较是关于portlet规范,其中(我的意见)struts支持是旧的大众汽车,春天是Bentley大陆gt: - )

另外:Liferay portlet开发的关键工具是所谓的ServiceBuilder,它是一个代码生成器,它生成持久层的重要部分,基于域模型和元数据的远程服务层。如果您选择使用它,您的portlet将自动基于Spring。我建议使用它,因为一旦你尝试它,你就不会放过它。例如,从客户端到远程服务创建Ajax调用是一个2分钟的设置问题,并且能够调用它们甚至获得返回值。 Hibernate设置已完全优化,可在运行servicebuilder后立即使用。还有更多。

答案 1 :(得分:2)

它真的取决于你的要求,因为liferay MVCPortlet只是javax.portlet.GenericPortlet的简单子类,我不认为它是Strut 2或Spring MVC等Web框架之间的公平比较。

我建议使用Spring MVC或Struts 2 for 168&amp; 268 JSR portlet如果你想要跨portlet-container可移植性,或者如果你有更复杂的表示要求,你应该找到两个框架的优缺点列表。

如果您的要求非常简单,那么请使用liferay MVCPortlet甚至是JSPPortlet。

答案 2 :(得分:2)

我用过2)和3)但不是1) - 我不是Struts的粉丝。

Spring MVC为您提供Spring的强大功能,并将其无缝插入Spring后端,并允许连接到Liferay Spring服务。 已提供您正确使用MVC并将Controller个问题分离到单独的Action类中,这是一个极其可扩展且灵活的选择,与Liferay结合使用时效果很好。

Liferay的MVCPortlet在灵活性方面提供的更少,但如果使用得当,它仍然具有高度可扩展性和非常有用的选择。它还与Liferay IDE / Liferay Development Studio相关联,可在开发过程中提供优势。如果您可以访问Liferay Developer培训,那么第2天就会有广泛的报道。

总体而言,春天有更大的好处,但也有更大的学习曲线和更大的错误做事风险,并且在做得不好时会更加困难。 Liferay的MVCPortlets做得很糟糕,最终看起来像香草portlet,因此是较小的邪恶。我个人使用MVCPortlets进行小型任务,将Spring MVC用于大型任务。

在这两种情况下,做得好'涉及正确使用框架和注释。

Liferay还支持Vaardin并使用它发布了新的Mail Portlet。我没有使用过Vaardin,但肯定会对它进行计划,并且到目前为止已经听过很多好事。

答案 3 :(得分:0)

从易于开发的角度来看,我认为Vaadin是最好的之一。新的Liferay IDE 1.2已经包含了Vaadin支持,因此很容易从中开始。

应用程序维护和API也是如此。使用Vaadin,应用程序代码只是Java代码,可以轻松划分工作,并维护现有代码(OOP优势)。

已经有很多"add-ons" for Vaadin证明了Java代码如何被“组件化”,并且开发在整个组织中分裂。

唯一的缺点是Vaadin库与门户网站中的所有Vaadin-portlet共享,这意味着他们应该使用相同的Vaadin版本来保持部署更轻松。

无论如何,我会说你的需求非常匹配。