为Liferay开发portlet的限制/缺点

sim*_*mon 30 java portal portlet liferay

我正在考虑将应用程序开发为portlet,以便集成到Liferay门户中.开发此类应用程序是否存在任何明显的缺点或限制,而不是使用Spring框架开发普通的Web应用程序?

Liferay似乎要求将所有内容添加为portlet.我想到的另一个选择是将Liferay仅用于应用程序的某些部分,并添加外部链接到其他自行开发的内容,这些内容是作为普通的Web应用程序开发的.但是,这将需要多个用户身份验证机制以及Liferay与其他Web应用程序之间的某种跨站点身份验证.

哪种方式最好?

小智 30

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

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

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

我希望有所帮助.


dig*_*oel 27

我一直在使用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等的webapp中,你将对所有内容有更多的控制权,但也负责实现更多的东西.

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

您应该查看与portlet相关的规范,看看它是否符合您的需求.

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


use*_*471 12

Liferay是一个功能非常强大的系统,有许多现成的服务和应用程序,但最大的缺点是缺乏文档.只看代码就不可能知道所有内容,所以在我看来,如果你没有专业知识,就不要去Liferay.

  • 由于缺少文档而+1,Liferay对于文档来说非常糟糕. (17认同)

小智 8

Liferay和Portlet通常适用于非常特定的应用程序类.如果您正在为IT部门工作并且需要为多个部门组合应用程序,那么portlet将是您的最佳选择.理论上,您可以从不同的供应商处下载portlet,并且它们将在同一环境中和谐地生活.

但是,如果要构建以下任何一种应用程序

1)完全由单个团队创建2)具有单一的需求源3)具有不是portlet容器中可用功能的子集的需求.4)有一个不愿意生活在门户风格应用程序范围内的图形设计师.

然后坚持像春天这样的东西将是要走的路.

Spring及其许多子项目提供了许多由portlet提供的共享服务和基础结构,但它们以开放且更灵活的方式提供.你可以挑选你想要的东西.

Portlet在身份验证和授权,导航和布局方面为您做出了很多设计决策.如果您的应用程序的计划超出了这些决定,那么您将花费大量时间来创建变通方法,以尝试让它做您想做的事情.


Blo*_*ler 6

每个人,请不要把它当作拖钓/燃烧.这是我觉得Liferay社区应该解决的问题,每个想使用Liferay的人都应该知道.

缺点:没有文档.什么都没有,例如,Hibernate的文档.只是一个空的javadock(代码中没有注释),一些在论坛和旧版本的书籍中回答了问题(没用).

  • 即使代码遵循严格的编码标准,任何系统上完全缺乏Javadoc反映了糟糕的管理和架构,或者(或者)代码库根本不被设计为被修改或理解. (4认同)