为Liferay开发Portlet的限制/缺点 [已关闭]

2022-09-01 11:17:52

我正在考虑开发一个应用程序作为Portlet,以集成到Liferay门户中。与使用Spring框架开发普通的Web应用程序相比,开发此类应用程序是否有任何显着的缺点或限制?

Liferay似乎要求所有内容都作为portlet添加。我考虑的另一种选择是将Liferay仅用于应用程序的某些部分,并将外部链接添加到其他自行开发的内容中,这些内容是作为普通的Web应用程序开发的。然而,这将产生对多个用户身份验证机制的需求,以及在Liferay和其他Web应用程序之间进行某种跨站点身份验证。

哪一个是最好的方法?


答案 1

(免责声明:我是Liferay的开发者之一)

我认为这两种选择都很好,具体取决于您的需求。如果您以前有开发独立 Web 应用程序的经验,但没有开发 Portlet 的经验,那么选择前者将加快入门速度。缺点是您必须实现自己的用户和权限系统,并且无法利用Liferay提供的门户服务。如果您决定使用此替代方案,请注意,您可以将常规WAR文件部署到Liferay,它将自动创建一个简单的portlet,该portlet使用iframe来显示您的应用程序。这将允许您将独立应用程序与Portlet一起放在Liferay的页面中。

当您开始利用Liferay提供的门户服务时,为Liferay开发Portlet将开始获得回报。首先,通过开发一个 Portlet,您可以忘记开发自己的用户系统,而是使用 Liferay 提供的(功能非常强大)的系统。您还可以使用其他服务,例如权限,注释,标记,分类,数据范围等,这将允许您在更短的时间内开发非常完整的应用程序。缺点是,第一次这样做时,你必须学习一些新东西,但第二次你会走得更快。

我希望这有帮助。


答案 2

我已经使用Liferay大约2年了,现在用于内部应用程序。在首次发布之前,我们在开发周期中多次进行过相同的讨论。我们不得不与Liferay战斗几次,有时是因为我们自己的知识不足,有时是因为Portlet环境,有时是因为Liferay。

如果您想要可以从门户获得的多个应用程序的布局选项,那么您当然应该使用Liferay。如果您正在编写单个应用程序,那么我可能不会使用Liferay。我认为一些Liferay和一些没有的混合是迄今为止最糟糕的选择。

我们可能没有充分利用Liferay的功能,但如果这是您的第一个Liferay应用程序,那么由于学习曲线,您也可能不会这样做。我们最初希望为应用程序的不同方面提供许多不同的 Portlet,但由于在开发过程中缺乏良好的 Portlet 间通信机制(JSR-286 之前),我们最终编写了一个应用程序。现在我们最终在那条船上,我希望我们没有Liferay,因为我们真正使用的只是一些用户管理功能。

我们使用JSF和facelets(对我们来说都是新技术,所以疼痛可能是自我引起的),虽然我们在这方面做得更好,但似乎有一些箍我们必须跳过才能让它在Portlet中正常工作;在常规的Web应用程序环境中不必发生的事情。对于许多框架来说,Portlet 支持似乎是事后才想到的。这显然不是 Liferay 特有的,它只是在 Portlet 环境中工作的副产品。

在使用Spring MVC,Struts,Faces,Wicket等的Web应用程序中,您将对所有内容拥有更多的控制权,但也要负责实现更多的东西。

在 Portlet 中,您将受到 JSR-168 和/或 JSR-286 条款的约束。门户容器将为您提供一些功能,例如用户身份验证,但 IMO,用于用户身份验证的整个门户太重了。我看到门户的强大功能是允许用户自定义多个应用程序的视图,而不是呈现单个应用程序。

您应该查看与 Portlet 相关的规范,看看它是否符合您的需要。

http://developers.sun.com/portalserver/reference/techart/jsr168/


推荐