对于当前项目,我们正在设计一个客户端桌面应用程序,该应用程序使用基于Web的数据库解析文本文件和接口。
到目前为止,我们已将项目分成几个部分:
(第三方程序) - > (我们的桌面客户端) - > (我们的解析库#1和#2) - > (我们的Web服务器) - > (我们的验证库) - > (我们的数据库)
我们在选择正确的方式(以及最好的语言)以使这些部分协同工作时遇到了困惑。
第三方程序的输出是一个简单的文本文件,我们只需将其解析为SQL格式的格式,以便在验证数字在一定范围内后插入我们的数据库。
我们提出的第一个问题是客户语言本身。我们计划用C ++编写解析器库,因为它们主要是文本管理。我们的桌面客户端需要是Windows和Mac的跨平台。目前我们倾向于使用Swing和JNI在Java中编写它。但是,我们意识到Java有很多仇恨,我们不得不担心捆绑JRE。
在这种情况下,Java是一个不错的选择吗?我们的其他选择似乎也是在C ++中使用类似于Qt的GUI编写,或者特定于平台并在.NET中编写Windows版本,然后是Mac特定版本。我们的Windows社区是绝大多数用户。
我们的第二个问题是将此客户端与我们的Web服务器连接。最初我们只是使用http POST来上传文件。我们也可以FTP文件似乎有点过分。我们开始探索Web服务,但不确定Web服务是否可以处理大量文本数据。
有更简单的方法吗?一切都是文本,因此以块或一个巨大的字符串发送它们没有问题。如果我们进入Web服务路由,这会影响我们对桌面客户端的语言选择吗?
肯定有数百种方法可以处理这样的事情,但大多数这些概念对我们来说都是新的。任何建议都将不胜感激。
答案 0 :(得分:2)
Qt是一个很好的选择,因为它是原生的C ++,它也很容易与你的解析器集成。为什么在单个Qt版本在具有原生外观的两个平台上都能正常运行时会编写两个版本?根据您选择的许可,如果您担心部署复杂性,甚至可以静态链接Qt。
Web服务通常在处理大量文本时没有任何问题,并且几乎任何语言都可以轻松地与其交互,假设基本的网络I / O功能。根据语言,您可能会找到为您完成大部分工作的库,假设它本身不受支持。
正如您所说,有许多不同的方法可以实现您想要实现的目标。没有正确或错误的方法,但显然有些设计比其他设计更适合您的需求。