2

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

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

在他们的功能比较页面上,他们没有提到一次编写/在任何地方运行,所以我想知道是否有任何厌战的 ZK 退伍军人可以权衡这个功能是否在免费版本上运行,以及运行情况如何。

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

另外,如果免费/开源版本确实支持此功能,它是如何工作的?除了 WAR 之外,教程中似乎没有任何内容表明它如何为各种平台生成本机可执行文件......

4

1 回答 1

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为特定的初始化你的View,你可以要求它Component从视图中连接任何东西。然后,您将这些Components作为对象,您所做的任何更改都会立即(或多或少)反映在客户端上。

现在,ZK抛开..

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

最后,关于ZK的一些个人看法。。

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

编辑:
PS:我发现这个旧的引用叫做ZK Mobile,我认为它现在是一个死项目。我的印象是,它可能旨在成为类似于 PhoneGap 的东西,因为它将您的 ZK 网站包装在原生 Android 应用程序中。一切仍然可以在互联网上运行,但用户的手机上会有一个图标。您将无法访问任何本机功能,例如警报等。
无论如何,只是为了完整起见,我想把它放在这里。

于 2013-05-11T10:17:13.267 回答