XulRunner / Gecko对于开发GUI密集型应用程序(通过使用广泛使用的技术,如HTML / CSS / SVG / XUL / Javascript)似乎非常有趣。但是内置的C ++ APIS(XPCOM,NECKO,......)看起来如此古老而复杂。此外,普遍缺乏文档/开发工具真的很可怕。
另一方面,QT有一个非常好的平台,并且有很好的文档和支持。 UI部分实际上是“传统的”。
您对XULRUNNER有什么经验,特别是与其他C ++桌面应用程序框架(如QT / GTK / MFC ......)相比?缺什么?什么是真棒?
附带问题:如果我想将现有的MFC应用程序迁移到跨平台C ++桌面应用程序框架,那么使用XULRUNNER而不是QT或GTK是明智的吗?
答案 0 :(得分:7)
老实说,我只是不同意那里没有很多XULRunner应用程序...有负载,这些只是Mozilla所知道的几个:
https://developer.mozilla.org/en/xulrunner_hall_of_fame
developer.mozilla.org/en/List_of_Mozilla-Based_Applications
这当然不包括Firefox和Thunderbird!
我们自己列在那里www.redbacksystems.com/liaison /
自2003年左右以来,我一直在这个平台上开发,我很喜欢它,因为我现在不会在任何其他平台上编程。
当您可以使用简单的标准兼容的JavaScript / ECMA(包括E4X)编写时,为什么要用QT或GTK编写,具有出色的CSS和XML支持 - 包括XBL(尽管是1.0),RDF,XML模板,远程更新,插件和扩展支持等等,甚至没有启动我的地理位置或本机SQL支持。
如果您无法在几天内引导相当完整的XULRunner应用程序,那么您可能会遇到严重错误。无论您的部署平台如何,都需要进行任何其他编码工作。
对我来说,Mozilla工具包是没有选择的平台。
BTW,据我所知,Joost在撰写/实施他们自己的视频渲染和尝试DRM内容时遇到了特定的挑战。答案 1 :(得分:6)
据我所知,实际上并没有使用XulRunner构建的许多应用程序。我应该知道,因为我是其中一位的技术主管,我们试图聘请有经验的人。事后来看,这并不让我感到惊讶。我们决定使用XulRunner是由非开发人员根据我的建议做出的。许多事情花费了两倍于我们之前使用的wxWidgets所花费的时间。现在我也在其他项目中使用过Qt,我不得不说它甚至比wxWidgets更好。所以我可以相当可靠地说Qt的效率是XulRunner的两倍以上,而且你会有更多的 更容易找到经验丰富的开发人员。
当然,XulRunner中的Javascript很不错。但Qt还附带了QtScript,它包含了JavaScriptCore。当涉及到构建真正丰富的UI时 - 即不仅仅是一堆图像 - 那么HTML + SVG + CSS + JS就不会削减它。它们的开发是为了简化事情,而不是使复杂的事情成为可能。只需看看最新的功能,视频。 HTML5的解决方案:一个标签,让幕后的一些C ++代码完成真正的工作。即使视频只是一次显示一大堆图像。
所以,问题不在于缺少一些东西。这只是发展缓慢,结果很慢。
在令人敬畏的一面,插件机制实际上运行得很好。
现在,如果你从头开始,这一切都适用。如果您已经有很多MFC / C ++代码,请坚持使用C ++并仅删除MFC部分。这意味着Qt或者wxWidgets显然是赢家。
答案 2 :(得分:2)
我认为您不想在C ++中实际编写XUL代码。 XPCOM等API的目的是使您可以与现有的C库进行交互,或者如果您需要编写需要调用javascript引擎外部API的平台特定内容。
如果您想在 javascript 中编写跨平台的GUI应用程序,尽管它可能正是您所寻找的。 p>
答案 3 :(得分:1)
我不在那个团队,但是joost桌面应用程序正在使用XULRUNNER用于UI。虽然这是一个选项,但我个人不会用棍子来触摸跨平台的GUI。事实上,我的经验表明,拥有一个单一的跨平台应用程序将始终不足。
我的建议:拆分您的核心应用功能,并为您需要的任何平台构建本机用户界面。您将获得更好的用户体验。
答案 4 :(得分:0)
有没有人试过这个?
XUL Viewer http://code.google.com/p/xulwin/
这是非常了不起的项目。干净的代码,很少的依赖(只是poco-basic和boost)活泉!