2014-09-27 55 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我最近为了演示这样的设置而构建的。