2010-06-20 115 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