UI 開發雜談 (2)

July 8th, 2007

由於老年痴呆的關係,詳細時間有點記不得了,但大約是在 VB 5.0 的時代,UI 的開發有一股新興的潮流崛起,我們稱它為「內嵌式 HTML」技術。顧名思義,就是利用 HTML 來當成 desktop application 的 UI。會促使人們這麼做的理由,我個人可以想到的是

  • It feels cool!
  • i18n 的問題,用 HTML 來做的話容易的多
  • 可以做出非常豐富的 look-and-feel,不再受制於 Windows Control
  • 可以有限度地將 presentation 與 business logic 分開

一般最流行的做法是在程式中內嵌 Internet Explorer (利用 IWebBrowser2 COM interface),這個做法有額外的好處

  • 可以利用現成的 HTTP/HTTPS 來穿過防火牆對 backend 傳輸資料
  • 可以克服純 web client 無法做到的事 (e.g. drag-n-drop,printer control)

不過呢,眾所周知,IE 有許多缺點,比如說安全性漏洞 (有沒有上千不清楚,絕對有三位數字)、記憶體用量、javascript engine 的錯誤處理很難搞等等,但它的優點往往會讓程式開發商不得不選擇它。除此之外,IE (或我該說,Microsoft) 對於 CSS 的支援興趣缺缺 (因為它不是 XML-based),導致許多 UI 效果都必須使用 javascript 或直接 manipulate DOM 來完成 (例如最簡單的 menu 或 context menu),這會讓程式的複雜度增加,相對地維護的成本也會增加。除此之外,javascript 的難以除錯與慢吞吞的執行效率也是讓人日子難過的東西。

現在對於內嵌式 HTML,還有其他的選擇,例如 Gecko (Firefox 的 engine),或是 HTMLayout,這兩個引擎對於 CSS 的支援較好,可玩許多東西,不過目前市面上仍是以內嵌 IE 為大宗就是了,也許在未來我們會看到更多內嵌 Gecko 引擎的應用程式也說不定。

Windows, 技術文章, 無責任評論 | Comments Jump to the top of this page

Comments are closed.

隨便寫寫大家隨便看看的不出名小格子

舊文索引

站內管理