微軟最近都在狂推廣智能用戶端,smart client 這個技術和概念。我覺得這個所謂得智能用戶端從技術得角度講有以下特性
1. 是一種 windows 用戶端技術,所以可以充分利用本地資源,以及所謂得可以使用多種裝置
2. 具有自動更新
3. 具有離線應用
4. .NET 是一種實現智能用戶端非常好得平台
其實仔細分析一下,可以想一下這些技術和特性,可能是稍微大一點得應用都會具有以上特徵。
大型得應用,一般都會有 Windows Client 和 Browser client ,尤其是一些關鍵得業務。比如訂單track,客戶應該可以通過多重裝置,或者通過專門得windows client,或者 通過web site 去track。當然肯定會包含 windows 用戶端。
自動更新就不用說了,一般頻繁更新得項目都會提供自動更新功能,不過實現起來有很多問題要去考慮,對於.NET 某種意義上講,自動更新顯得更為容易實現。尤其對於只有用戶端更新得情況下更容易,如果用戶端更新不同步,服務端需要維護多個版本得話,就顯得比較麻煩。比如維護不同得資料庫版本
離線應用,這個我覺得倒是一般不會考慮這些特殊情況,對於critical 得業務,離線應用是必須去實現和考慮得。
.NET 本省得特徵,是我們很容易去實現以上特徵,這個我比較贊同。比如asp.net 得 shadow copy,程式集得線上更新,不存在 dll hell 等問題。
另外,我覺得微軟推廣智能用戶端得同時,有幾個是他得潛意識得市場行為
1.理想得應用,一般情況下希望使用 windows client,或者說 windows form,應為windows form 得特性跟 作業系統緊密耦合,這樣使用者才有必要不斷得update 作業系統。試想,如果 大家都用b/s 結構得話,你還有必要裝什麼 windows 2k,xp ,2003,longhorn 嗎? 可能你只需要一個 windows 95 或者 linux ,能夠運行一個 瀏覽器 足以
2. .NET 的推廣,這個是顯而易見的。微軟現在已經有很多產品都開始基於.NET, 包括下一代的 OS,WinFX
前天參加 BEA 大會的時候,有幸跟 Macromedia 的工程師瞭解到 Rich Internet Application,也就是所謂的富用戶端。
自己比較慚愧的是,到前幾天才知道 Flex 已經推出1年多了。
Macromedia Flex 是 macromedia 提出的新的一套使用者展現層的解決方案,也可以是說是只用用戶端,不過這種用戶端目前是Browser 的用戶端,也就是我們常說b/s 應用中的用戶端。目前這個版本是 1.5,我下載了一個使用版。總體感覺有一下幾個技術特徵
1. 應用與典型的N層架構中,側重與用戶端展現。最後對於用戶端的使用者而言就是一個 Flash,這個Flash 類似我們常用的asp.net 請求相應的一個結果集一樣,是動態產生的。
2. 相對於HTML + JavaScript ,他提出了自己的一套 MXML + ActionScript,這個MXML跟 Avalon 中的Axml 定位比較一直。
3. 用戶端其實可以做很多的事情,比如調用 webservice,幫定資料集,甚至調用 remoting , java ejb,他還提出自己的一套二進位remoting 規範,amf,所以這個用戶端就不想傳統意義的flash了
4.對於用戶端要求很低,只需要 Flash Player 7.0 就可以了,不需 java vm 和 CLR 環境
5. 未來的版本會提供用戶端直接對 服務端 .NET 程式集,remoting 的調用。以及提供用戶端緩衝,Caching 離線應用
體驗下載發現,Flash 確實有自己獨特的優勢。比如 我們講一個 datagrid, 用html 去展現的話,只能是一個flat 的模型,而 Flash 可以類似 360 都的一個展示,確實在用戶端表現方面可以增強很多。
這個相對於 smart client,好像優點似乎更多,更有前途。而且本質上跟 Avalon 的AXML有點像,你寫一個 基於browser 的應用可能跟 windows 應用是一樣的寫法,只是不同的解釋而已
最後提供一個overview
http://www.macromedia.com/software/flex/productinfo/brz_overview/