本來一直以為.NET 3.0離我們還很遠,.NET 2.0都還沒破台,想什麼.NET 3.0?但看到聖殿祭司的WPF Now?這篇文章後,讓我非常的震驚也非常的興奮,為什麼呢?
因為看到了RIA和向量技術字眼後,我大概知道WPF想要強調的是什麼了。假如我猜的沒錯,這次的變革將如同COM到.NET一樣,又是微軟技術的大變革,且是大改。
我們看看Flash技術,不只炫,而且檔案很小,不需PostBack的使用經驗,而且Flash程式可同時在桌上型平台和Web平台使用,也就是說,程式只要寫一次,就可同時在各種平台上跑,包括桌上型系統和Web,甚至手機、Linux和Mac。
目前的.NET呢?.NET技術目前分成兩塊,ASP.NET和WinForm,雖然說目前兩種程式的開發方式很類似,但不可否認的,程式仍需重寫,並無法同時跑兩種平台。而且ASP.NET技術需要大量的PostBack,不只看起來不舒服,並且也是頻寬殺手,雖然有AJAX、Atalas Framwork等技術做加持,但HTML Based的技術本質仍然沒變,HTML雜亂,程式碼外露,且不容易排版的特性依舊存在,其實我長久以來就不喜歡HTML,且HTML本來就不是設計拿來當程式介面使用,原本只希望做靜態展示而已,但就這樣趕鴨子上架成了動態網頁技術的前端了,我一直希望有個新的技術能取代HTML,而微軟也曾努力過,在COM時代,VB6,Visual C++,VFP6,Delphi等都可以開發ActiveDocument,它本質上仍是個Windows程式,卻可以在IE上執行,而原本Windows的程式只要稍加修改即可,但很可惜最後ActiveDocument並沒有成功,我覺得其最大的敗筆在於ActiveDocument程式檔案很大,隨便編譯後都超過1MB,這對於屬於慢速網路的Internet極具殺傷力,固實用性不高。反觀Flash,由於向量技術的成功,Flash的檔案就小很多,所以當然會成功。
在幾年前,網路上就曾經謠傳微軟將開發一種新的向量技術,號稱Flash Killer,可惜只聞樓梯響,一直沒看到具體的產品,而Adobe/Macromedia剛剛發表的Flex 2.0,我猜也對微軟有相當的壓力,畢竟這種Server Side的Flash,對於程式設計師有相當大的誘惑,只要能Server Side,資料庫端就容易解決,加上RIA多采多姿的使用者介面,我猜很多程式設計師應該會跳槽過去。
所以我覺得微軟提出WPF,也代表微軟長時間深耕向量技術的成果,也是迫於Flex的RIA技術壓力下不得不提出的回應技術。很多人抱怨.NET 2.0出來沒多久,都還沒學好,.NET 3.0又要出來,不過我猜WPF本來應該不在.NET的計畫當中,會讓WPF變成.NET 3.0,應該是Marketing的決定,突顯這是微軟重視這項技術。
WPF對程式設計師有什麼影響呢?簡單的說,有70%要重學。資料存取部份,分散式元件部分應該不變,但跟UI有關的部分應該都要重學,畢竟是一個全新的向量技術,和ASP.NET和WinForm完全不同,不過,用WPF寫的程式就真的只要寫一次就同時可以在桌上型平台和Web跑,不須寫兩次。
記得以前TechEd時,孫三才說,NET技術應該可以撐10年,哈,現在看起來,完全被這個向量技術給打亂了,雖然名稱還是.NET,但已經跟原來的.NET差很多,固然沒有如同COM變.NET那樣陡峭的學習曲線,但也幾乎是大改。
所以我震驚的是,.NET 2.0都還沒學好,.NET 3.0就要來,而且還是大改;興奮的是,期待已久的向量技術終於能取代HTML技術,這天我等很久了。