我熟悉Web编程,包括客户端和服务器端,我想扩展一点我的知识,以便能够编写一些桌面程序.
我的问题是我并不熟悉管理小部件的桌面方式.据我所知,在一个典型的桌面程序中,小部件有自己的生命,相互发送信号并通过回调对信号做出反应.所以每个小部件都是一个有很多方法的对象.这增加了我现在所知道的复杂性,我不确定我现在想要了解这一点.
在网络上,您可以使用标记语言(通常是某些版本的HTML)在页面上简明地描述元素,并且在触发事件时,您可以使用Javascript修改元素.我试图了解是否有办法在桌面程序中使用Web范例.我希望能够通过标记语言描述小部件(这些将是静态的)并根据事件改变它们.如果我理解正确,基于XUL的应用程序就是这样工作的.
问题是我能找到的关于XUL的文档似乎有点过时了.学习XUL是个好主意吗?我可以期待几年后仍在使用它吗?或者它已成为一项旧技术?
如果XUL不是一个好主意,有哪些替代方案?对于最简单的应用程序,小部件是静态的,或者只是稍作修改,有一些简单的 工具,但是更复杂的程序呢?
编辑:我应该提到我主要使用Ubuntu,所以我需要一个Linux或独立于操作系统的工具.
XUL基本上提供了您所要求的内容.它类似于HTML,因为您使用基于标记的语言来描述界面,您可以使用JavaScript进行编码.它当然用于桌面开发,包括Firefox,Thunderbird,Songbird和Komodo Edit/IDE等产品.
在桌面上运行,您将比作为Web应用程序运行,读取和写入文件以及通过XPCOM运行非JavaScript代码更自由.
Mozilla开发人员中心提供了大量非常新的文档.您正在寻找的是如何创建xulrunner应用程序 - 这个框架可以让您使用XUL创建桌面应用程序.
当然可以使用XUL创建优秀的桌面应用程序.缺点是没有大型开发人员社区(Mozilla,Songbird和扩展开发人员之外),并且最终没有为进入社区构建应用程序的人提供大量支持.有一个邮件列表,还有一个IRC频道.挑战在于,当您使用xulrunner时会出现怪癖,并且在您通过它们时会得到有限的支持.我认为这是一种"鸡与鸡蛋"问题 - 一个多元化的大型开发者社区将提供更多支持 - 更多的支持将促进社区的发展.
我过去两年一直在使用XUL来开发产品,我仍然在争论是否会再次选择相同的路径.
我认为我们没有足够的信息告诉你"你应该学习XUL" - 但如果你需要大型社区的高水平支持,那么你应该看看@其他人提到的其他框架.如果你可以通过它,并且很乐意让你的类型通过它,它可以是一个很好的资源,你的网络背景可能会帮助你开始运作.如果您对Firefox Extensions有任何兴趣,这些技能将直接转移.
没有强大的网络背景,当我尝试切换到HTML应用程序的工作时,我想念在XUL中布局界面是多么容易.如果你想修补一下,请看看XUL Explorer和XUL周期表.
您可能想了解 Adobe 的 AIR 技术。它允许您使用称为 MXML 的标记语言(类似于 HTML,语法更严格)来描述 UI,并使用 ActionScript(一种类似于 JavaScript 的脚本语言)定义功能。AIR 应用程序是独立于平台的,因为它们在 AIR 平台上运行,为您抽象操作系统特定的事物。出于同样的原因,它们可能比本机应用程序相对慢 - 但这对于小型应用程序来说可能不是问题。这取决于什么对你来说更重要——运行速度还是开发速度。
AIR 的主要缺点是用户需要在其计算机上安装 AIR 平台才能安装和运行 AIR 应用程序,就像需要安装 Java 才能运行任何用 Java 编写的应用程序一样。如今,大多数平台都附带了开箱即用的 Java,但 AIR 还没有那么普遍。
关于 XUL,如果我错了,请有人纠正我,但显然它是用于描述 Mozilla 的应用程序(如 Firefox、Thunderbird 等)中的 UI 的标记语言,并用于为其应用程序开发扩展。我无法获得任何有关 XUL 用于实际桌面应用程序的参考。
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |