2014-09-27 57 views
0

我需要爲特定業務的內部用戶構建桌面應用程序。它還需要基於Web的GUI,以供外部用戶使用。我知道,使用網絡圖形用戶界面,內部和外部用戶都可以訪問它,但是有一些因素在我們的控制範圍之外 - 因此,桌面應用程序確實是不可避免的。爲了這個問題的目的,我想專注於支持桌面客戶端(Swing)和瀏覽器客戶端的方式。帶Swing和Web GUI的Java應用程序

是否有任何最佳實踐要遵循?我能想到的如下:

  1. 暴露服務類的Web服務和使用這些來自Swing客戶端和Web客戶端
  2. 暴露服務類作爲EJB(企業是爲Java EE科技股),並使用Swing客戶端作爲EJB客戶。 Web客戶端可以使用控制器類與EJB進行交互

除了Web服務提供的技術不可知性之外,使用這兩種方法是否有任何已知的好處?

另外,對於swing客戶端,我正在考慮使用Java Web Start進行輕鬆分發。我從來沒有使用它,但從我的理解,它可以支持啓動時自動版本檢查,並在需要時更新客戶端 - 這是正確的嗎?

+2

*「它可以在啓動時支持自動版本檢查並在需要時更新客戶端 - 這是否正確?」*是的,閱讀更多[here](http://docs.oracle.com/javase/tutorial/deployment/在webstart /)。 – user1803551 2014-09-27 13:10:41

+1

和[這裏](http://stackoverflow.com/tags/java-web-start/info)。 – trashgod 2014-09-27 18:28:56

+0

感謝JWS鏈接。有人可以提供關於支持服務層上的Swing和Web客戶端的_best實踐的信息嗎?_ – Pat 2014-10-02 15:42:16

回答

0

如果您需要避免依賴於瀏覽器上的Java/JVM(最可能至少需要),那麼您一定要採用Swing-Vaadin混合方法。使用Swing或JavaFX構建內部應用程序,使用Vaadin構建Web部件。 Vaadin中的編程模型與典型的桌面UI庫非常接近,相同的開發人員使用這兩個代碼庫非常容易,並且自然地,您將使用完全相同的後端。

請參閱the example application我最近爲了演示這樣的設置而構建的。