2011-02-25 57 views
1

我開始挖掘到的Liferay 6.x的ServiceBuilder框架,真正喜歡它的代碼生成方法。一個簡單的service.xml文件可以生成即可使用強大的服務,甚至無需編寫單行代碼。Comaprison的Liferay ServiceBuilder與其他代碼生成工具,比如AndroMDA的

我也試着調查AndroMDA,它可以從UML模型生成類似的服務,這聽起來更有趣,因爲它會直接鏈接我的業務模型,而不需要學習service.xml的新xml配置Liferay的ServiceBuilder)

現在我決定我應該使用哪種工具的過程。根據對任何這些工具的經驗,請讓我知道什麼是優點/缺點使用任何這個庫的,

我很想知道這些方面,有自己的想法沿

  1. 哪個更好地保持我的發展長遠而言更高效。
  2. 如果我使用ServiceBuilder,我將能夠使用門戶env以外的服務(可以說運行來自非門戶應用服務器的相同服務
  3. UML驅動方法總是好還是有一些實際的缺點/挑戰它。
  4. 你知道任何其他代碼生成庫比這兩個對的Liferay 6.x的發展更好的?我還檢查了這些所謂的線程

回答

2

有一個重要的事實,你應該知道。 ServiceBuilder一直用於幫助構建門戶網站,並將其緊密集成到其中。你不能用它的Liferay之外......我的意思是,它可能可以採取修改和普遍使用,但我懷疑這將是有意義的。

最重要的,因爲門戶網站和您正在開發在一個servlet容器自己的Web應用程序上下文中的每個插件 - 每個人都有自己的類加載器。插件是使用門戶類加載器和門戶服務,等等,等等

簡而言之,ServiceBuilder生成的代碼和Spring上下文只能如果有一個Web應用程序/ ROOT /這是Liferay門戶與門戶類加載器等存在

AndroMDA是一個通用的MDA框架。我不太瞭解,所以我不打算進行比較。 ServiceBuilder的強大之處在於它不是一般使用的框架 - 更強大的它是Liferay的插件開發。

+0

感謝您的迴應,這有幫助。 – Kzvi 2011-02-25 21:40:21

4

繼我有Servicebuilder經歷的幾個問題(我用的Liferay 5.2.3):

  1. 不能使用ORM框架。沒有辦法在對象之間生成關係。正因爲如此,我有效地開展工作 只是對象映射器。它不產生一對多那種關係
  2. 不能使用基本的面向對象的東西就像域或服務
  3. 這是相當難寫單元測試用例
  4. 我仍然不明白什麼是需要繼承複雜的域結構
  5. 我覺得這是可以產生使用IDE

進行快速讀寫但可以肯定它有它自己的好處就像Egar說,這是專門爲Liferay的取得的代碼。因此它可以快速生成liferay所需的一切。我聽說在liferay的最新版本中很少有上述問題被修復。

總體上它取決於您的要求。如果你需要更多的控制你的ORM層,並且你有複雜的業務邏輯,需要進行大量的單元測試,那麼去普通的spring服務,這些服務可以作爲Web服務或REST服務公開給你的portlet。

否則,服務構建器也適用於簡單的portlet。其他方法可以使用兩者。所有複雜的服務都作爲一個獨立的項目,而簡單的項目則包含服務構建器

+0

嗨加內西,你說得對。我建議每個人使用SB僅適用於簡單的portlet,沒有什麼複雜的。絕對不適用於需要基礎結構測試的portlet。另外還有一點要注意你的5. ajax和web服務的遠程接口,它們負責許可......你也需要親自處理。 – lisak 2011-10-25 11:10:10

+0

但是如果我考慮一下,遠程/本地服務範例確實對Portal本身有意義,以保持可維護性。但是對於一個單獨的portlet,沒有必要誠實地使用遠程服務接口 – lisak 2011-10-25 13:21:37