WPF 開發技術將繼續維持 webForm 與 winForm 兩個架構

.NET 推出時, Visual Studio 同時介紹了 webForm (ASP.NET) 與 winForm (Windows Client), 前者是在 web 上執行的程式, 後者則維持 Client/Server 的架構。雖然, 兩邊都有許多同名的元件, 但彼此無法交互運用, 視覺化程式元件不能兩邊共享。大家都在想: 能不能兩邊合而為一, 至少做到大部份程式碼共享, ActiveX 控制項就曾經被視為一種可能的方向, 但是它一直不被 IE 以外的瀏覽器支援, 而且在每次更新 ActiveX, 還得通過使用者的認證, 使得 ActiveX 在網頁上被使用的接收度越來越低。

SmartClient 是一種進化的 winForm, 本質上它還是 winForm, 只是在架構、設計與安裝上, 利用到 web 與網路的優點, 以排除安裝維護的麻煩, 也提供了更好的使用者互動。但它還是有平台的限制, 使得 web 的支持者不認同它不能跨平台的限制。

AJAX 則是一種進化的 webForm, 藉由 JavaScript 和 XML 的幫助, 它能夠提供更好的互動性, 但又能繼續維持跨平台、跨瀏覽器的 web 優勢。但是它仍然無法擺脫網路的牽拌, 一旦網路離線時, 什麼程式都無法運, 而 AJAX 的呈現能力也受到 DHTML 的限制, 處理文件或表格都還好, 但是處理多媒體影音就只能借重其他支術的幫忙。

Windows Vista 的 WPF 又是一個 SmartClient 的再進化, 它是 .NET 3.0 的一部份, 主要是把 Win32 的 GDI、DirectX 與 MediaPlayer 的 streaming三種技術, 用新的 XAML 語言整合起來, 以減化應用程式使用互動介面的開發成本。WPF 也有 web 的版本 (XBAP), 真正做到單一程式碼元件, 橫跨 winForm 與 webForm 兩邊的應用。但是因為技術限制在 .NET 3.0 與 IE7 上, 並不符合 web 傳統上對跨平台的期待。因為 WPF 在 web 上還有很長的路要走。

今年中, 即將推出一種跨平台的 WPF , 暫時稱作 WPF/E (E 為 Everywhere 的意思), 為了跨平台也能跨瀏覽器, AJAX 取代了 .NET, 變成一種整合 AJAX + DHTML + XAML 的網頁架構, 可以說是 AJAX 技術的再進化。

webForm 與 winForm 的技術越來越靠近了, 但是看起來兩邊仍然有一段平行的路要走。