.NET Framework的普及率牽動Smart Client的發展

無獨有偶,針對IBM Workplace 用戶端技術及Macromedia的RIA(Rich Internet Application)的概念,微軟去年推出Visual Studio Tools for Office時,也提出類似的構想,稱為「Smart Client」。微軟對於Smart Client的定義,包括Smart Client會利用用戶端的記憶體、處理器等資源、運用Web Services、可離線處理及智慧型的部署及更新機制。

未來Longhorn作業系統上市時,微軟也將搭配推出全新的程式開發架構,以XML語言為基礎的XAML,是HTML的進階版,可開發互動性更強的網站應用程式,搭配Visual Studio .NET撰寫背後的系統行為及商業邏輯元件,即可實現MVC設計模式,運用使用者介面與邏輯分離的架構,避免過去HTML與JavaScript、VBScript或ASP混雜,而難以維護的問題。

Thick與Thin都不夠理想

微軟的主從架構用戶端程式開發(Client-Side Programming)技術,包括C++、ActiveX、MFC或VB等,稱為「Thick Client」。雖可以提供良好的使用經驗,但是,不僅部署麻煩,更有惡名昭彰的「DLL Hell」問題,系統會因為DLL(Dynamic Link Library;動態連結檔)版本的不同發生衝突。

這樣的問題不只發生在自行開發的應用程式,Office 95、Office 97及Office 2000的檔案,也有相同的困擾,如果在Excel中透過VBA呼叫函式,也會因為Office版本的不同而發生問題。

而ASP及ASP.NET則屬於網頁應用程式的技術,微軟稱之為「Thin Client」,顧名思義用戶端程式較主從架構輕薄短小許多,僅包含使用者介面及基本的驗證程式碼,大部分的商業邏輯程式都在伺服器端,用戶端僅顯示伺服器處理後的結果,沒有部署的問題,更讓應用程式透過網際網路的傳播,可以服務更廣泛的人群,帶動電子商務的興起。

不過伺服器端應用程式太依賴網路,一旦網路斷線便無法正常作業。再者使用經驗也比較不友善,不像主從架構用戶端的應用程式,可以運用F1、F2等功能鍵,節省鍵盤輸入切換滑鼠點選的麻煩。此外程式的防呆機制也不夠聰明,在網頁送出後才顯示錯誤訊息,使用者必須回到上一頁才能重新輸入。Smart Client解決DLL Hell的問題

為提升使用者的體驗,微軟結合主從架構及網頁應用程式的好處,提出Smart Client的概念。Smart Client應用範圍較為廣泛,只要能搭載.NET Framework,就可以應用Smart Client。在桌上型及筆記型電腦方面運用.NET Windows Form,PDA及Smart Form可搭配.NET Compact Framework,甚至利用Visual Studio Tools for Office,Office 2003即可運用.NET程式及Web Services,成為Smart Client的平臺。相較於ASP應用程式,Smart Client提供更好的使用者經驗,又可解決過去主從架構應用程式管理上的問題。微軟在.NET有了許多的改善,使得Smart Client可避免過去部署及維護的問題。

透過DLL檔可共享資源,節省記憶體空間,不過受惠於硬體設備不斷的推陳出新,現今已不需要太在意資源浪費的問題,.NET在部署元件上也調整設計理念,編輯器在產生執行碼時,同時產生具自我描述能力的Assembly檔,其中包含應用程式的元資料。

開發人員可透過HTTP下載,無需親力親為地逐臺安裝,Xcopy的部署方式,只要將DLL元件及程式複製到資料夾即可,不需要額外登錄資料庫(Registry),簡化了程式部署的工作。

不過,應用程式共享元件也有存在的必要性,開發人員仍可將DLL檔案註冊到gacutili(Global Access Cache Utility;公域組件快取),透過SN(Strong Name;強式名稱),以內部命名系統,讓同一DLL檔可有多種版本同時存在,即避免落入DLL Hell的陷阱。Managed Code安全性較高

首次部署Smart Client,用戶端的瀏覽器需是IE 5.5 SP2以上的版本,並包含.NET Framework,企業也可將CLR與應用程式部署檔封裝在一起,一併下載安裝。至於版本的更新,Smart Client具備自動更新的能力,偵測比對出版本不同,即自動下載更新差異的部分。

Office 2003中的Word及Excel內建精簡型的CLR,所以Office 2003可執行Visual Studio Tools for Office撰寫的.NET程式,也就是過去的VBA角色,只是開發人員不必再學習新的開發技巧,透過.NET單一介面即可與Office結合。

Office 2003轉變成為Smart Client的產品,將不同於過去僅顯示靜態的資訊,除了發揮電腦的運算能力透過Visual Studio Tools for Office及Web Services,也可減少重複輸入資料及批次處理的麻煩,取得即時的資料。利用Web Services的穿透力,Office也可與J2EE異質平臺溝通,例如應用Excel彙整Java平臺及Oracle資料庫的資料,提供企業統計報表。

在.NET平臺下,managed code存取的安全性也比以前的ActiveX更有保障,過去駭客可能植入程式,在網路登入及存取時,同時複製資訊至非法網址;現在可在Smart Client中鎖定存取的網址,安全性較高。目前已有券商與微軟合作以Smart Client開發網路下單系統,不但提供更好的使用經驗,也強化網路交易的安全性。Smart Client於Longhorn的應用

Smart Client的應用未來將延伸到Longhorn平臺,下一代Windows作業系統Longhorn上市時,微軟將推出新的標記語言XAML(Extensible Application Markup Language),以開發友善的使用者介面。Avalon是Longhorn的用戶端應用程式技術,而XAML為Avalon的應用之一。

網頁應用程式利用ASP.NET,已可實現網頁設計與商業邏輯分離的應用,也就是「Code behind」的概念。相較之下,用戶端應用程式使用者介面的修改較為麻煩,必須利用開發工具調整介面配置,再重新編譯才能完成,不能像HTML網頁利用任何文字編輯器修改元件大小,再放回網站的相對路徑即可。

XAML即實踐了用戶端應用程式介面與商業邏輯分離的架構,XAML的語法類似HTML,記載使用者介面中,各元件的大小及位置,及需要呼叫.NET元件。設計人員可利用任何文字編輯器,撰寫XAML檔案,用戶端應用程式介面的修改,也可以像修改HTML一樣簡單。不過手工撰寫仍不如視覺化的拖拉方便,微軟未來也將在Visual Studio .NET中加入XAML的視覺化設計環境,Macromedia也會推出XAML的視覺化設計工具。

XAML即下一代的Windows Form

一般而言,Longhorn的用戶端應用程式,包含XAML檔案及.NET Managed Code。簡單的應用直接在XAML網頁中加入.NET程式碼即可;複雜的架構則可採使用者介面與商業邏輯分離的架構,由XAML呼叫背後的.NET程式庫(codebehind);此外,也可選擇完全以.NET程式開發應用程式。

與ASP.NET不同的是,XAML是用戶端應用程式的應用,ASP.NET的商業邏輯元件存放在伺服器端,網頁提交後,透過伺服器的.NET元件運算再送回結果;而XAML背後的商業邏輯部署在用戶端,也可直接寫在XAML檔案中。事實上目前的.NET Windows Form即支援網頁部署的機制,XAML即下一代的Windows Form。

如果完全以.NET開發Longhorn應用程式,所有.NET相容的程式語言均可適用,不過,截至目前為止,XAML支援的程式語言,僅包括C#、Visual Basic .NET及JScript .NET。因為XAML檔案的程式碼,需在網路上被剖析及編譯,因此編譯器及相關程式需預先支援。預計在Longhorn上市時,其他.NET相容的程式語言,也將可支援開發以XAML為基礎的應用程式。.NET Framework普及,才有助於Smart Client的推廣

相較於IBM Workplace 2.0及Macromedia的Flex,以實際的產品展現Rich Client的概念,微軟並非以單一產品著墨Smart Client,而應該說算是.NET的一種應用。

應用Smart Client需以.NET Framework為基礎,目前新的電腦預設安裝.NET Framework的比例已達60%。未來微軟新的作業系統Longhorn、SQL資料庫Yukon及Office 12,均將內建.NET Framework,屆時將有助於Smart Client應用的推廣。文⊙李延華

熱門新聞

Advertisement