2008/10/03

瀏覽器能為你做什麼? What can mozilla do?

要開發應用程式,難免不會想到用 C/C++/Java 來開發,可是愈來愈多的案例證明,應用程式,若沒連上網路則有如垃圾一般,就算是遊戲也是如此。

寫應用程式難免要顧慮到 GUI, 也要顧慮到上網這件事,GUI 不管在 VC++, BCB, Java 等等都有不錯的套件足以因應,就算是上網也都有有辦法用這些語言開發完成。可是在愈來愈多的網路應用出現後,Google, Yahoo, Microsoft 致力推展所謂的雲端運算的目的不外乎把開發者的眼光集中,透過瀏覽器來開發網路應用程式變得愈來愈成熟。

開發 Native Internet Application 必須花大量的心思在 cookie, proxy, user authentication, 或 encryption/decryption 等等議題上,還不止如此,包括應用程式功能如何擴充?外觀如何提供讓使用者自訂的能力?多國語言如何完成?如何提供 3rd party 或 end-user 自行開發新功能?如何共享成果?

不多說廢話,讓我把心力專注在 Mozilla 上面。有興趣的人可以到 發展 Mozilla去讀。

Topic 項下提到:

* Extensions : 利用像 XUL 這種標準來擴充與發展自有應用
* Plugins : 有些瀏覽器尚未提供,或是想要把原始碼隱藏的更好的人,可以利用這項來開發應用
* Themes : 外觀
* Embedding Mozilla: 將瀏覽器嵌入到自己的應用程式中,也就是讓自己的應用程式輕鬆的具有瀏覽器功能,或是開發精簡型的瀏覽器

* Accessibility: 對身體部份功能不良的人可以自訂存取方式,例如聲控什麼的
* Localization: 多國語系
* Web Standards: W3C 標準的支援
* Web Development: 網頁/網站的開發

* Developing Mozilla: 若想投身瀏覽器開發的人,Mozilla 是個很好的切入點
* Quality Assurance: 品質保證
* Security: 安全認證

以上您或許還看不出可以怎樣利用 Mozilla,那讓我們再看看 Technologies 項目:
* AJAX - Asynchronous JavaScript and XML : 最有名的就是 google ajax api 或 GWT 或 Yahoo UI
* CSS - Cascading Style Sheets
* DOM - Document Object Model
* HTML - Hypertext Markup Language
* JavaScript : 這四項應該不必多說,標準瀏覽器應該具備的功能
* NSS - Network Security Services: 用來讓網路存取更加安全
* RDF - Resource Description Framework : 開發 extension 必備
* RSS - Really Simple Syndication : 這項已經變成我每天閱讀新聞的工具
* SVG - Scalable Vector Graphics : 純量畫圖的,個人認為把 papervision3D 移植並非難事,不過目前的發展似乎反過來,在 pv3d 中處理 SVG 比較成熟
* XBL - Extensible Binding Language : 用來 binding 網頁應用程式上的元件到你的程式,也就是你可以自訂元件工作的方式
* XForms - XML Forms : 這個是把 Form 以 XML 的方式傳送,除了資訊的表達更清晰外,還可以有更多的「動作」,兼減輕 CGI/Javascript 並且讓資料庫伺服器自行分析減輕開發者的壓力。
* XML - Extensible Markup Language : 不必我多說
* XML Web Services - SOAP, XML-RPC, etc.: SOAP 叫精簡物件存取協定,顧名思義不難瞭解,就是用來直接傳遞「以 XML 表達的物件」,AJAX 比較傾向於單向的要資料,而這個掛了個 RPC 就不難理解為雙向的交換資料
* XPath - XML Path Language: 用來指定 XML 元件在 XML 文件中的位置,會比 document.getElementById() 還方便有效率。不過個人沒在用這項功能,在允許的情況下會直接以 JSON 或 document.getElementById() 的方式存取 XML
* XSLT - Extensible Stylesheet Language Transformations : 上面 XPath 比較有用的應用是在搭配 XSLT。XSLT 簡單講是用來轉換 XML 成 HTML 或純文字之類的成果以便閱讀。另外因為 XML 允許自訂 tag, 因此彼此間的轉換也成為擾人的議題,這是 XSLT 存在的主要原因。而搭配 XPath 就可以很方便的互相引用。
* XUL - XML User Interface Language : 這是發展瀏覽器 extension 最佳利器,自行發展 web application!

其實 Mozilla 能做的事遠遠無法從上面看出來,我比較喜歡的兩項功能分別是:Server Socket 與 SQLite 的支援,這可以讓我們做不少事,後面抽空再來介紹。

要利用 Mozilla 瀏覽器開發網路應用程式就應該對 XULRunner 及 XUL 參考手冊有所涉略。

後面會再來探討 Mozilla 用來開發 3D web application 的議題。若有人要自行編譯 Mozilla, 請參考 在 Windows 下編譯 Mozilla一文

0 意見: