企业Web应用程序中的JavaFX – 经典网页的良好替代品?

我们为不同的客户开发了几个Web应用程序,从那些看起来很简单的CRUD风格的GUI到那些糟糕的管理员,再到那些互联网用户的花式schmancy AJAX增强的GUI。 所有这些都基于JSF 1.2与JBoss Seam 2的结合,使用Facelets和RichFaces作为表示层。

我们知道JSF 1.2的局限性(我感到很难过)我们还没有完成向Java EE 6的过渡,但是将这个设置定义为我们的技术堆栈,我们获得了一些使用该技术的经验,感觉能够为我们的客户可靠地开发Web应用程序。

那么,为什么我告诉你呢? 因为我们越来越多地听到“Web 2.0”的客户希望拥有丰富的客户端function,而只接受浏览器作为所有应用程序的大门。 尽管我们知道可以用我们使用的技术做到这一点,但我们认为,在客户端使用不同的东西来支持这些需求可能是个好主意。 而且由于我们大多是Java程序员而且我们不断追赶这个让他们用他的Adobe Flex烦恼的家伙,我们认为,新版本中的JavaFX可能是一件好事。

我尽力挖掘我能找到的JavaFX资源的深度 – 但我常常想到的一件事是,JavaFX本身就是一种能够做一些漂亮的图形效果的技术,但是在弹跳的同时彩色阴影气泡可能看起来很酷,它们在商业应用中基本没用。

好吧,长话短说 – 我们喜欢在后端使用Java EE 6,同时在客户端上拥有丰富而美观的function。 在开发商业Web应用程序时,JavaFX是经典网页甚至是即将推出的现代HTML 5网页的一个很好的选择吗?在哪里可以找到这样的示例?

感谢您抽出时间阅读本文以及希望得到的答案。

您可能需要查看来自JavaFX Samples bundle的DataApp示例, url为http://www.oracle.com/technetwork/java/javafx/downloads/index.html

这是使用浏览器中的JavaFX UI的企业应用程序的示例。 它将为您提供一个很好的示例,可以在JavaFX上为企业客户端进行。

您可能需要花一些时间来安装MySQL,EE以及此示例的内容(非常简单,只需遵循提供的README),但您将看到如何从DB到客户端UI处理完整堆栈。

第一个屏幕的小屏幕截图:

DataApp示例

我会选择HTML 5,除非我有一些Web应用程序无法满足的需求。

我确信你可以用JavaFX构建出色的应用程序,但除了标准的Java东西之外,工具很少。 而且由于它没有被广泛使用,你很难找到支持,并雇用擅长它的人。 它也总是存在与它的.Net对应Silverlight相同的风险 – 垃圾桶(甲骨文不是多愁善感)。 至于Flex, Adobe刚刚向Apache捐赠了Flex,其解释是HTML 5是“企业应用程序开发的最佳技术” 。

将其与HTML 5进行比较。它不仅使用得更广泛(这意味着您将能够找到支持并且更容易招募人员),但它也会不断获得更多支持,更好的工具和新function。 我认为这是更明确的未来certificate。

您将找到JavaFX的“企业方”的大多数示例将是一个JavaFX客户端,通过RESTful Web服务与后端通信。

但是,Java Web Start是一项很酷的技术。 有了它,您将通过您的网站启动一个应用程序客户端,自动更新到最新版本,并从服务器自动下载所有新的依赖项。 您甚至可以执行dependency injection并将客户端本地代理注入服务器端资源; Enterprise JavaBeans,JMS管理对象等。

这是一项非常有用的技术,可让您的客户端以多种方式与服务器通信,而不仅仅使用HTTP有线Web服务。 但是,JavaFX制动那种模式。 没有一种直接的方法可以将JavaFX应用程序客户端嵌入到EAR包中并让它使用dependency injection。 但我发现了一种非常直观且易于复制的解决方案。 那么为了给您另一个JavaFX应用程序作为后端远程GUI的示例,请查看我的教程:

http://blog.martinandersson.com/the-enterprise-side-of-javafx-the-missing-part/