【问题标题】:Choosing Cross-Platform GUI Toolkit for Desktop App With WebServices为具有 WebServices 的桌面应用程序选择跨平台 GUI 工具包
【发布时间】:2011-02-15 14:17:08
【问题描述】:

对于当前的项目,我们正在设计一个客户端桌面应用程序,它可以解析文本文件并与基于 Web 的数据库接口。

到目前为止,我们已将项目拆分为多个部分:

(第三方程序)->(我们的桌面客户端)->(我们的解析库 #1 和 #2)->(我们的 Web 服务器)->(我们的验证库)->(我们的数据库)

在选择正确方法(和最佳语言)以使这些部分协同工作时,我们遇到了困惑。

第三方程序的输出是一个简单的文本文件,我们只是将其解析为SQL-esque格式,在验证数字在一定范围内后插入我们的数据库。

  • 我们的第一个问题是关于客户端语言本身。我们计划用 C++ 编写解析器库,因为它们主要是文本管理。我们的桌面客户端需要是跨平台的 Windows 和 Mac。目前我们倾向于使用 Swing 和 JNI 用 Ja​​va 编写它。然而,我们意识到人们对 Java 有很多仇恨,而且我们不得不担心在 JRE 中捆绑。

    在这种情况下,Java 是一个不错的选择吗?我们的其他选项似乎也在 C++ 中使用 Qt 之类的 GUI 编写,或者特定平台并在 .NET 中编写 Windows 版本,然后是 Mac 特定版本。我们的 Windows 社区是绝大多数用户。

  • 我们的第二个问题是将此客户端与我们的网络服务器连接。最初我们只是要使用 http POST 来上传文件。我们还可以 FTP 文件,这似乎有点过分了。我们开始探索网络服务,但不确定网络服务是否可以处理大量文本数据。

    有没有更简单的方法来做到这一点?一切都是文本,因此以大块或一大串的形式发送它们是没有问题的。如果我们采用 Web 服务路线,这会影响我们对桌面客户端的语言选择吗?

肯定有数百种方法可以处理这样的事情,但其中大多数概念对我们来说都是新的。任何建议将不胜感激。

【问题讨论】:

    标签: web-services user-interface programming-languages cross-platform desktop-application


    【解决方案1】:

    Qt 是一个很好的选择,因为它是原生的 C++,它也很容易与你的解析器集成。当一个 Qt 版本可以在具有原生外观的两个平台上正常运行时,为什么还要编写两个版本?根据您选择的许可证,如果您担心部署复杂性,您甚至可以静态链接 Qt。

    Web 服务在处理大量文本时通常不会出现问题,并且几乎任何语言都可以轻松地与其交互,前提是具有基本的网络 I/O 功能。根据语言的不同,您可能会找到可以为您完成大部分工作的库,假设它本身还不受支持。

    正如您所说,有许多不同的方法可以实现您想要实现的目标。没有对错之分,但显然有些设计比其他设计更适合您的需求。

    【讨论】:

    • 有一个相关的问题。如果我们决定使用 C++/Qt,如何在运行可执行文件时停止“未验证的发布者”错误?似乎 Java 没有遇到这个问题。
    • 这与语言无关,它与代码签名有关。 Java 程序在 JVM 的上下文中执行,这是一个签名的可执行文件。对于您自己的程序,您只需要获取一个受信任的签名证书并在发布之前自己签署您的 exe(请参阅msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx)。
    猜你喜欢
    • 2010-10-05
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 2010-09-07
    • 1970-01-01
    相关资源
    最近更新 更多