Tôi đã sử dụng Liferay trong khoảng 2 năm nay cho một ứng dụng nội bộ. Chúng tôi đã cùng thảo luận nhiều lần trong suốt chu trình phát triển trước khi phát hành lần đầu tiên. Chúng tôi đã phải chiến đấu Liferay vài lần, đôi khi vì thiếu kiến thức của chúng tôi, đôi khi vì môi trường portlet, và đôi khi vì Liferay.
Nếu bạn muốn tùy chọn bố cục cho nhiều ứng dụng mà bạn có thể nhận được từ một cổng, thì bạn chắc chắn nên sử dụng Liferay. Nếu bạn đang viết một ứng dụng duy nhất, thì có lẽ tôi sẽ không sử dụng Liferay.Tôi nghĩ rằng một lai của một số Liferay và một số không phải là đến nay là lựa chọn tồi tệ nhất.
Có lẽ chúng tôi không tận dụng Liferay với khả năng tối đa của nó, nhưng nếu đây là ứng dụng Liferay đầu tiên của bạn, thì rất có thể bạn sẽ không phải vì đường cong học tập. Ban đầu chúng tôi hy vọng có nhiều portlet khác nhau cho các khía cạnh khác nhau của ứng dụng, nhưng do thiếu các cơ chế giao tiếp giữa các portlet tốt trong quá trình phát triển (trước JSR-286), chúng tôi đã viết một ứng dụng duy nhất. Bây giờ chúng tôi đã kết thúc trong chiếc thuyền đó, tôi ước rằng chúng tôi đã đi mà không có Liferay vì tất cả những gì chúng tôi đang thực sự sử dụng là một số khả năng quản lý người dùng.
Chúng tôi sử dụng JSF và facelets (cả hai công nghệ mới cho chúng tôi, vì vậy nỗi đau có thể là tự phát sinh) và trong khi chúng tôi đã nhận được tốt hơn nó, nó có vẻ như có một vài hoops chúng tôi đã phải nhảy qua theo thứ tự để làm cho nó hoạt động chính xác trong một portlet; Những thứ không phải xảy ra trong một môi trường ứng dụng web thông thường. Đối với nhiều khuôn khổ, có vẻ như hỗ trợ portlet là một suy nghĩ. Điều này rõ ràng không phải là Liferay cụ thể, nó chỉ là một sản phẩm phụ làm việc trong môi trường portlet.
Trong ứng dụng web sử dụng Spring MVC, Struts, Faces, Wicket, bất cứ điều gì, bạn sẽ có nhiều quyền kiểm soát hơn mọi thứ, nhưng cũng chịu trách nhiệm triển khai nhiều nội dung hơn.
Trong một portlet, bạn sẽ tuân theo các điều khoản của JSR-168 và/hoặc JSR-286. Vùng chứa cổng thông tin sẽ cung cấp một số chức năng cho bạn, như xác thực người dùng, nhưng IMO, toàn bộ cổng thông tin để xác thực người dùng là quá nặng. Tôi thấy sức mạnh của cổng thông tin đang cho phép người dùng tùy chỉnh chế độ xem của nhiều ứng dụng, không hiển thị một ứng dụng đơn lẻ.
Bạn nên xem lại thông số kỹ thuật có liên quan đến portlet và xem liệu nó có phù hợp với nhu cầu của bạn hay không.
http://developers.sun.com/portalserver/reference/techart/jsr168/
Tôi hy vọng nếu họ thực sự là các dịch vụ 'chia sẻ', bạn sẽ không phải viết chúng lần thứ hai. Sẽ có một số nỗ lực tích hợp, nhưng nó sẽ nhỏ hơn nhiều so với thực hiện nó lần thứ hai. – digitaljoel