这个问题已经问了很多遍了,我经历了大多数。这些问题大多数都是旧问题,并且不包含任何用于开发桌面应用程序的新平台。我曾经使用过Java(Swing),但是Swing JSR已经撤消,Netbeans放弃了Swing应用程序框架。

我需要学习一种新技术来开发桌面应用程序(最好是独立于平台的应用程序)。到目前为止,我已经研究了以下技术。

Titanium Desktop(现在称为TideSDK):很好,但是不支持某些高级PHP功能,并且其中包含许多错误。

QT:它看起来很有前途,并且功能强大,但是我找不到最新版本的QT 5上的任何书籍。所有有关QT的书籍都有4-5年的历史,是为QT 4编写的。

我还可以使用其他技术来开发桌面应用程序吗?并将其添加到我的技能中吗?

如果这个问题太笼统,谢谢您的帮助。

评论

欢迎使用软件建议书堆栈交换!尽管您的描述中包含推荐匹配软件所需的几个条件,但仍存在一些格式问题,以使其清晰可见。请查看包含“足够信息”的问题需要什么?然后,请编辑您的问题,看看是否可以纳入其中一些改进。这将大大提高您获得良好答案的机会!

QT可能很好,GTK也是跨平台的。

@Linuxios我同意这很好。但是问题是缺少书籍。联机文档很好,它显示了有关每个类的详细信息,但没有显示如何连接所有这些类以构建系统。为了演示,我可能需要一本书。到目前为止,我发现的所有书籍都有4-5年的历史,因此打算用于QT 4,因此已经过时了。

您能详细说明一下Java / Swing的问题吗?

@NicolasRaoul Java删除了此项目,并且不再维护。您可以在他们的网站上找到更多详细信息。

#1 楼

新趋势是使用Web技术(HTML5 / javascript框架)创建桌面应用程序。看看Chromium嵌入式框架(CEF),您可以将Chromium引擎嵌入到桌面应用程序中。请参阅维基百科上使用CEF的应用程序列表。有许多语言的可用绑定,例如C,C ++,Java,Python,C#,Delphi,Go lang。关于Titanium桌面和TideSDK,它们不再开发。 TideSDK的最后一次提交是在一年前。而且看起来这个项目在整个时间里都没有超出beta。其背后的公司正在开发其新产品TideKit。但是您不能保证它不会像Titanium和TideSDK那样被放弃,或者它永远不会出现在beta版本中。

Titanium和TideSDK可以让您用PHP开发,但这有点像新平台,它的工作原理有所不同,PHP就像JavaScript到HTML。如果要以与开发网站相同的方式在PHP中开发桌面应用程序,请查看PHP Desktop项目。它嵌入了一个内部Web服务器,一个Web浏览器(IE或Chrome)和一个php解释器。创建PHP网站时惯用的工作流程几乎相同,只是将脚本复制到www /目录。您不应该偶然发现PHP中尚不存在的任何新错误,它还支持所有PHP功能,更新PHP版本就像将新二进制文件复制到php /目录一样容易。目前,PHP桌面仅在Windows上受支持,尽管已经计划了Linux和Mac。

还有Node-Webkit项目,可让您使用Node.js在Javascript中进行开发。不管它的名字如何,它都嵌入了Chromium引擎。它使您可以使用JavaScript,HTML和CSS编写跨平台的桌面应用程序。它基于node.js和Chromium,并在Atom编辑器中使用。

披露:我是Python和Go lang的CEF绑定的作者。还是PHP Desktop的作者。

#2 楼

您还可以将C#/ mono与XWT结合使用(只要您的GUI不太复杂。根据个人经验:只要您想要具有ComboBox列的DataGrid,就不要使用它。)

https://github.com/mono/xwt

关于XWT的简短说明:您可以根据XWT lib编写代码。部署应用程序时,需要将XWT.GTK,XWT.WPF或XWT.Cocoa库与其一起分发。

XWT将检查这3个库中的哪个可用,并(尝试)对其进行初始化。它的功能不完整,也不是没有错误。从好的方面来说,它在git上。因此,您可以查看方法内部到底发生了什么,有时甚至自己进行修复。

没有GUI编辑器,但是使用它很容易,并且包装起来很丑(我认为)不用GTK了。

对于数据库连接,我建议将LINQConnect与DevArt的EntityDeveloper结合使用。如果您没有在每个数据库中使用太多表,那是免费的!同样,您只需很少的工作量就可以连接到几乎所有类型的数据库(至少将数据库层封装起来)。

更新Q2 2018

好吧,第4页几年后,发生了一些变化。将XWT替换为Xamarin.Forms,因为它具有或将具有GTK2“包装器”。 Xamarin的优点是它基本上可以在所有内容上运行。 iOS,Android,Windows,Linux(一旦完成GTK 2包装器),MacOS。

关于数据库访问。我不确定对LinqConnect的感觉。对于较大的项目,它缺少一些功能。我已经迷恋llblgen了,但除了试用版许可证外,没有免费版本。有利的是,购买许可证后,人们可以访问其代码甚至进行更改。但是,我还没有任何真正的经验。

#3 楼


具有CRUD功能的桌面应用程序


它非常适合Delphi或其免费(和具有Linux功能的)Lazarus替代产品。

它们具有特殊的功能一种形式的控件(数据控件),可以轻松地显示和修改数据库数据。

#4 楼

Wikipedia上有与平台无关的GUI库的列表。

其中一些是相当现代且相对流行的:



Xamarin.Forms以C#作为默认编程语言。我假设您基于IIS注释熟悉C#。

OpenJFX(基于Java和JVM的语言)

Qt(C ++)


也有Electron目前不在列表中,但值得一看。它使用通常与Web相关联的技术(JavaScript,HTML,CSS)用于桌面应用程序。