HTML是標記語言,而它的運行容器是IE、FireFox等。其實原理我認為是很簡單的,比如<Button>Save</Button>這個標記,就調用底層介面產生一個Button,並設定其他屬性。再看看其他語言編寫的代碼,如Button btn1 = new Button(),也是調用底層介面產生一個Button。它們在介面上的表現,只是描述形式不一樣而已,歸根結底形式上也是一樣的,你認為程式的二進位代碼跟HTML有什麼本質的差別嗎?唯一的區別,就是它們的格式不一樣,或者說標準不一樣,而運行解析容器就不一樣了。
我對WPF瞭解不深,我認為其本質不過是另外一個標準的HTML罷了。格式描述->.NetFramework的解析運行,並沒有什麼本質的改變。
所以,在UI這個層面,可以設計很多個人化的描述和解析機制,只要他們是一一對應的即可,唯一的問題就是你的解析器需要考慮怎麼才能夠讓使用者願意部署。在企業管理軟體中,可以固化一些介面模版,讓UI設計變得簡單,同時給與使用者充分的調整介面的自由,這就引出了第2個話題,使用者怎麼個人化自己的UI?
實際上,我們現在還不能完全做到,每個人都來定義自己所用軟體的UI和操作方式,只有固定的幾種,你可以換一換,再多就沒有了。而基於文檔的UI方式,則給UI帶來了很大的靈活性,這有點像存在本地的HTMl檔案一樣,你可以用FrontPage來修改他,同理,如果我機器上的一個軟體是基於文檔的,我可以利用設計軟體來重新設計他,這很酷吧。HTML又回到了案頭應用。
再大膽的設想一下,如果Office是基於文檔描述的,那麼電腦上就不是一堆dll了,而是一堆xml,再進一步,如果這些xml可以從網路上某個服務獲得,我開啟office的時候,自動下載或者更新最新的Xml,這是不是更酷呢。那麼其他的所有軟體呢,也是可以這樣做,都是使用時從網上下載下來的,只是下載之後不用安裝,就能直接運行。如果我機器上所有的軟體都是這樣的,作業系統就簡化成了一個解析器,一個網路連接工具即可了。