选择跨平台GUI工具包来开发带有Web服务的桌面应用程序

3
对于当前的项目,我们正在设计一个客户端桌面应用程序,该程序解析文本文件并与基于Web的数据库进行交互。
到目前为止,我们已将项目分成以下几个部分:
(第三方程序) -> (我们的桌面客户端) -> (我们的解析库#1和#2) -> (我们的Web服务器) -> (我们的验证库) -> (我们的数据库)
当涉及到选择正确的方式(以及最好的语言)使这些部分一起工作时,我们遇到了困惑。
第三方程序的输出是一个简单的文本文件,我们只需将其解析成类似SQL的格式,然后在验证数字处于某个范围后插入到我们的数据库中。
我们有两个问题:
第一个问题是关于客户端语言本身。我们计划使用C++编写解析器库,因为它们只是大多数文本管理。我们的桌面客户端需要跨Windows和Mac平台。目前,我们倾向于使用Java编写此客户端,使用Swing和JNI。然而,我们意识到Java存在很多厌恶,并且我们必须担心捆绑JRE。
在这种情况下,Java是一个好选择吗?我们的其他选择似乎也可以使用Qt来编写GUI,或者针对特定平台编写Windows版本的.NET,然后是Mac特定版本。我们的Windows社区是绝大多数用户。
我们的第二个问题是将此客户端与我们的Web服务器连接起来。最初,我们只打算使用http POST上传文件。我们也可以FTP文件,但这似乎有些过度。我们开始探索Web服务,但不确定Web服务是否能够处理大量文本数据。
有没有更简单的方法?一切都是文本,所以发送它们分块或一个巨大的字符串都没有问题。如果我们选择Web服务路线,那么会影响我们桌面客户端的语言选择吗?
肯定有数百种处理这种情况的方法,但大多数概念对我们来说都是新的。任何建议都将不胜感激。
1个回答

2

Qt是一个优秀的选择,由于它是本地C++编写的,因此将其与您的解析器集成也将变得容易。使用单个Qt版本即可在两个平台上以本机外观和感觉运行良好,何必写两个版本呢?根据您选择的许可证,如果您担心部署复杂性,甚至可以静态链接Qt。

网络服务通常不会有处理大量文本的问题,基本的网络I/O功能假定任何语言都可以轻松互操作。根据所选语言,您可能能够找到为您完成大部分工作的库,假定尚未本地支持它。

正如您所说,有许多不同的方法可以实现您想要达到的目标。没有正确或错误的方式,但显然某些设计将更适合您的需求。


有一个相关的问题。如果我们决定使用C++/Qt,当您运行可执行文件时,如何停止“未经验证的发布者”错误?似乎Java不会遇到这个问题。 - Tony Trozzo
这与编程语言无关,而是与代码签名有关。Java程序在JVM的上下文中执行,这是一个已签名的可执行文件。对于您自己的程序,您只需要获取一个可信的签名证书,并在发布之前自行签署exe即可(请参见http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx)。 - Stu Mackellar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接