是ZK开源版“一次编写,随处运行”吗?

时间:2013-05-11 01:04:33

标签: java cordova web-applications zk

我一直在考虑将zk用于我即将推出的Java Web项目,但我有点怀疑,因为它看起来很棒,它有一个昂贵的许可版本以及一个免费的开源版本。 / p>

我只能使用ZK开源版,但需要“一次编写,随处运行”功能(否则我可能会使用GWT / Phonegap)。

在他们的feature comparison page上,他们没有提到写一次/在任何地方跑,所以我想知道是否有任何战斗疲惫的ZK老兵可以权衡这个功能是否在免费版本上运行,以及如何。

我需要支持所有网络浏览器,移动网络,所有Android设备(包括Nook / Kindle),所有iOS设备,Microsoft设备(Surface等)和Blackberry。

,如果免费/开源版 支持此功能,它是如何工作的?除了WAR ...

之外,教程中的任何内容似乎都没有表明它如何为各种平台生成本机可执行文件

1 个答案:

答案 0 :(得分:5)

没有

ZK只构建Java Web归档文件(war),它不构建Android,iOS,Nook,Kindle的本机应用程序,甚至不构建桌面的独立应用程序。

ZK Web应用程序仅在Java应用程序服务器中运行,如Tomcat,JBoss,Jetty,Glassfish等。

从这个意义上讲,ZK与GWT非常相似,与PhoneGap非常不同。

  • 使用PhoneGap,您可以使用HTML,CSS和JavaScript构建手机应用程序。然后,您的应用程序将显示在为每个电话平台编译的本机包装器中。这不适用于网络本身
  • 使用GWT,您可以在Java代码中构建 Web应用程序。这些Java代码中的一些实际上被编译成JavaScript,因此它可以在适当的时候在客户端运行,如果使用得当可以提供性能优势。将JavaScript代码编写为Java具有通过Java编译器进行类型安全等的优势。
  • 使用ZK,您可以在Java代码中构建 Web应用程序。与GWT不同,它永远不会成为JavaScript - 所有Java代码都在服务器上运行。 ZK处理设置AJAX调用。

ZK中的编程感觉好像你有一个DOM副本作为Java对象。 ZK处理初始化特定Controller的{​​{1}},您可以要求它从视图中连接任何View。然后,您将Component作为对象,并且您所做的任何更改都会立即(或多或少)反映在客户端上。

现在,ZK放在一边..

如果您想编写一次代码以在所有Web浏览器和所有手机上运行,​​唯一的选择是编写Web应用程序。在技​​术尚未成熟的状态下,您将无法获得所有手机的本机可执行文件从同一代码库获取Web应用程序。如果您开发一个Web应用程序(使用ZK,GWT,IceFaces,Lift,Grails等),您可以期望最大程度地渗透到市场中,因为几乎所有设备都有Web浏览器。

最后,关于ZK的一些个人意见..

  • 开发周期太棒了,我喜欢用ZK编程。
  • 团队和社区也很棒,很有动力。
  • 该框架一直在积极发展,新的核心功能和改进。
  • 我不确定在重负荷下它会如何与其他人对抗。
    • 他们生成的DOM非常重
    • 客户端与服务器之间存在很多争议

修改
PS:我发现这个旧的引用称为ZK Mobile,我认为它现在已经死了。我的印象是,它可能旨在成为类似于PhoneGap的东西,因为它只是将您的ZK网站包装在原生Android应用程序中。一切仍然可以在互联网上工作,但用户手机上会有一个图标。您将无法访问任何本机功能,如闹钟等 无论如何,我只是想把它放在这里是为了完整。