2010-06-20 117 views
8

我熟悉web编程,包括客户端和服务器端,为了能够编写一些桌面程序,我想扩展一下我的知识。我应该学习XUL吗?

我的问题是,我不是很熟悉桌面管理小部件的方式。据我所知,在一个典型的桌面程序中,小部件有自己的生活,互相发送信号并用回调对信号作出反应。所以每个小部件都是有很多方法的对象。这增加了我现在知道的更多复杂性,而且我不确定我现在想要了解这一点。

在Web上,您通过标记语言(通常是HTML的某个版本)最终描述页面上的元素,并且在触发事件时使用Javascript修改元素。我试图了解是否有办法在桌面程序中使用Web范例。我希望能够通过标记语言来描述小部件(这些将是静态的),并根据事件来修改它们。如果我理解正确,基于XUL的应用程序就是这样工作的。

问题是,我可以找到有关XUL的文档看起来有点过时。学习XUL是一个好主意吗?我可以期望从现在开始几年仍在使用它吗?或者它已经成为一项老技术?

如果XUL不是一个好主意,有什么选择?对于最简单的应用程序,其中的部件是静态的,或者只是稍作修改,有一些easytools,但更复杂的程序呢?

编辑:我应该提到我主要使用Ubuntu,所以我需要一个Linux或独立于操作系统的工具。

+0

这个问题应该转移到programmers.stackexchange.com吗? – 2011-01-21 12:45:04

回答

1

您可能想查看Adobe的AIR技术。它允许您使用称为MXML的标记语言(类似于HTML,更严格的语法)描述UI,并使用ActionScript(一种类似于JavaScript的脚本语言)定义函数。 AIR应用在AIR平台上运行时独立于平台,可为您抽象操作系统特定的事物。出于同样的原因,它们可能比本机应用程序相对更慢 - 但这对于小型应用程序可能不是问题。这取决于对你来说哪些更重要 - 运行速度或开发速度。

AIR的主要缺点是用户需要在他们的机器上安装AIR平台才能安装和运行AIR应用程序,就像在运行用Java编写的应用程序之前需要安装Java一样。现在大多数平台都带有Java,但是AIR并不是那种无处不在的。

关于XUL,有人请纠正我,如果我错了,但显然它是标记语言,用于在Firefox,Thunderbird等Mozilla应用程序中描述UI,并用于为其应用程序开发扩展。我无法获得任何对用于真实桌面应用程序的XUL的引用。

+0

谢谢,Adobe Air看起来很有趣。至于为真正的程序使用XUL,你可能想看看这个页面:https://developer.mozilla.org/en/XULRunner_Hall_of_Fame – Andrea 2010-06-20 03:19:45

+0

谢谢@Andrea! – Amarghosh 2010-06-20 03:40:19

+5

不知道为什么这是被接受的答案,因为问题是你是否应该学习XUL,并且这个响应甚至没有在他没有被误删的部分引用XUL。 – pc1oad1etter 2010-08-19 13:35:34

1

如果您反对学习类似C#的东西,您可以使用Flex编写AIR应用程序。它有一个标记语言,但也使用一些真正的ActionScript编程。对我而言,这是编写桌面应用程序的一个很好的介绍。

0

研究WPF,它利用XAML,这对您来说可能会是一个不太高的学习曲线。

如果您使用的是Ubuntu,您可能需要查看Mono框架,这是Linux系统上的C#。存在一种称为Moonlight的XAML形式,可能对您有用。至少可以检查一个选项!

+0

你的意思是Window Presentation Foundation?我应该在实际问题中提到它,但我主要使用Ubuntu,所以这不是一个真正的选择。对不起,我不是很确切。 – Andrea 2010-06-20 03:17:57

+0

啊... WPF不是一个选项,然后... – code4life 2010-06-20 03:33:54

0

我和你一样。到目前为止,我已经看过

,并错过了XUL ...嗯... 1个优势XUL的是,我可以用它为Firefox插件:)打开了可能性。

我发现对于钛和空气来说,文件是缺乏的,所以我觉得难以开始。我真的开始silverlight,但我做了WPF。空气我发现它的WebKit是modified to disable some css3 features我会喜欢使用像@font-face和阴影:(失望

还有如果我使用“本机”桌面编程语言

  • WPF/C#提供有吸引力的优势与Windows 7(如跳转列表,任务栏缩略图等)有很大的集成,可以提高用户的生产力
8

XUL an提供了基本上你所要求的内容,它类似于HTML,用于描述界面,并且可以使用JavaScrip你的编码。它当然用于桌面开发,包括Firefox,Thunderbird,Songbird和Komodo Edit/IDE等产品。

在桌面上运行,您将拥有比作为Web应用程序运行,读写文件以及通过XPCOM甚至运行非JavaScript代码更多的自由。

Mozilla Developer Center上有大量漂亮的最新文档。您正在寻找的是如何创建一个xulrunner应用程序 - 这是允许您使用XUL创建桌面应用程序的框架。

一个肯定可以使用XUL创建好的桌面应用程序。缺点是没有大型开发者社区(Mozilla,Songbird和扩展开发者之外),最终没有对进入社区构建应用程序的人提供很多支持。有一个邮件列表,并且有一个IRC频道。挑战在于,当你使用xulrunner时会出现怪癖,并且在你完成它们时会受到有限的支持。我认为这是一种“鸡与鸡”的问题 - 一个多元化的大型开发者社区会提供更多的支持 - 并且更多的支持将会促进社区的发展。

我一直在使用XUL开发过去两年的产品,我仍然在辩论是否会再次选择相同的路径。

我认为我们没有足够的信息告诉你“你应该学习XUL” - 但是如果你需要来自大型社区的高层支持,那么你应该看看@其他框架其他人已经提到。如果你能够通过并且很乐意让你的类型通过它,它可以是一个很好的资源,并且你的网页背景可能会帮助你实现目标。如果您对Firefox扩展程序有任何兴趣,这些技能将直接传输。

没有强大的网页背景,当我尝试切换到HTML应用程序时,我想念在XUL中布置接口的容易程度。如果你想修改一下,看看XUL ExplorerXUL Periodic Table

相关问题