当前位置: 老葡京网站娱乐 > 网页设计 > XML教程 > 正文

XML用户界面语言(XUL)开发入门

时间:2009-11-08 ibm Michael Galpin

老葡京网站娱乐 www.sdguanhua.com 本文配套源码

开始之前

本教程适用于对桌面开发感兴趣又不想学习太多新技术的有经验的Web开发人员。XUL(发音与cool类似)使运用Web开发技能构建桌面应用程序变得很容易。它提供了丰富的UI部件集,这些工具使用的是所有Web开发人员都很熟悉的语法。使用XUL,可以直接与HTML混合使用并可大量使用JavaScript。

XUL是一种基于XML的语言,因此需要对XML(特别是XML名称空间)很熟悉。XUL建立在我们熟悉和喜欢的Web技术之上:HTML、JavaScript 和 CSS。如果想有效地使用XUL,需要对这些技术非常熟悉。使用 XPCOM 可以在很大程度上提高XUL应用程序的功能。这是一种跟分布式计算技术(例如 CORBA/IDL 和 COM)类似的技术。如果熟悉这些技术,在学习XPCOM时将会有所帮助,但并不做硬性要求。

关于本教程

在本教程中,您将了解以下内容:

了解XUL的起源和它在 Mozilla 项目中的应用。

了解XUL的主要优点及其架构设计,以及如何使用现有的Web应用程序技术构建桌面应用程序。

发现 Firefox 3.0 向XUL开发人员呈现的机会。

深入了解XUL并编写一个简单的应用程序来创建、保存和发布博客条目。这个基于XUL的博客编辑器提供了大量基础的文本编辑功能,并允许您在本地保存草稿以便随后重新加载并进行编辑。这个编辑器还加入了XUL的绘制功能,它允许用户使用博客电子签名。

先决条件

XUL 完全是开源的。为了使用XUL进行开发以及实践本教程的示例,您需要下载:

XUL SDK

XULRunner

Firefox 3.0(或更高版本)

XUL 是什么?

XUL 表示XML用户界面语言(XML User Interface Language)。因为是XML,所以XUL是一种声明性语言。XUL 提供了丰富的 UI 部件集合,这些部件可以加速开发进程。它是一种跨平台的语言,可以在 Linux™ 上构建自己的XUL应用程序,然后在 Windows® 上运行该程序。XUL 大量使用了Web技术,例如 JavaScript 和 Cascading StyleSheets(CSS)。甚至可以将HTML直接集成到XUL应用程序中。深入了解XUL以及它为何成为备受关注的开发平台。

XUL 历史回放

XUL 与 Netscape 和 Mozilla Foundation 是同义词。Netscape 浏览器最初的意图是作为一个跨平台浏览器。这需要将 UI 框架从特定于操作系统的布局和控制部件中分离出来?;剐枰恢址椒ㄈ谜庑┓掷氤龅脑睾捅镜亟蹋ㄓ糜谕缌?、文件 I/O 等)进行通信。要构建跨平台且能够和HTML和Web元素协作的应用程序,所有这些元素都非常必要。这个框架被叫做 XPFE(跨平台前端),用于构建 Netscape Communicator 以及该系列的其他产品,如它的电子邮件和聊天客户端。

您可能对 Netscape 公司的发展历程比较熟悉。该公司在 1995 年的 IPO 标志着 dot-com 辉煌的开始。直到 1998 年,公司虽然在财政上不太顺利,但是取得了一些重要的技术成就。这些成就的核心就是 Mozilla 项目。这是从 Netscape Communicator 4.0 的代码在获得开源许可之后公开发行开始的。事实证明这个代码库难于开发和维护,但是幸运的是,在他们的计划中也有好的方面。Netscape 不但让现有的 Communicator 开放源代码,他们的下一代布局引擎代码也是开源的。这个布局引擎将会成为 Gecko。它的一个重要功能是支持声明性的、基于XML的 UI 语言,也就是XUL。

XUL:XML、JavaScript 和 CSS

XUL 是为 Gecko 引擎构建的私有 UI 语言。它受到基于 Gecko 的Web浏览器开发人员的青睐。这是因为它是构建在标准技术(例如XML、JavaScript 和 CSS)之上的。

XUL 是一种XML语言。这使得它的语法很简单,并且容易阅读(和解析)!XUL 跟HTML有很多相似之处,因此Web开发人员对它很熟悉。它甚至允许 XHTML 元素与XUL部件混合使用。XUL 通过许多方式证明了XML非常适合于创建 UI 语言,由一些类似语言的出现也能看出这一点。例如,来自 Adobe™ 的 MXML(Adobe Flex 框架中的 UI 语言)和来自 Microsoft® 的 XAML(.NET 3.0 和 Windows Presentation Foundation 中的 UI 语言)。

当然,声明性编程存在固有的局限性。它不可避免地需要一些强制性编程。XUL 直接支持 JavaScript,而不是发明一种新语言或者创建一些基于XML的语法。现在 JavaScript 作为一种编程语言经常受到负面的评价。JavaScript 被认为是一种适合于非编程人员的语言,并且充满了特定于浏览器的扩展和特性。然而,JavaScript 是一种强大的语言,它是Web应用程序开发的中坚力量。毕竟,JavaScript 是 Ajax 中的 “J”。它是一种函数性编程语言,但很容易以过程或面向对象的方式使用它。XUL 把 JavaScript 当作一种桌面编程语言,并将其放在最前面的位置。XUL 也非常依赖 JavaScript 中的 DOM 实现 — 毕竟,XUL 是基于XML的。

XUL 中用于Web开发的另一个重要方面是 CSS。CSS 已经成为向Web页面添加样式的事实标准。它的层叠特性具有强大的功能和灵活性,这种特性允许将样式应用于对象和子对象,同时也允许这些子对象根据需要重写样式。XUL 将这种功能和灵活性应用到桌面应用程序中。

JavaScript 和 CSS 的另一个共同之处是,其行为都会根据浏览器的不同而变化。浏览器嗅探在 JavaScript 中非常常见,因此程序员可以在基于用户使用的浏览器类型和版本的多个实现中编写相同的函数。在 CSS 中条件样式的使用也具有相同的特性。如果做过许多Web开发,就可能遭遇过这些浏览器怪僻。如果属于这种情况,您将会喜欢上使用XUL编程。为什么呢?因为使用XUL时只需要考虑一个浏览器。就像在全世界都使用 Firefox 的情况下开发Web应用程序。