公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2007年11月11日 星期日

Bye Bye Thin-client !!!

.NET Framework 3.0推出已經一年多了,其中包括了WPF、WF跟WCF三項主要的技術。WPF主要是用來設計使用者操作介面的,搭配XAML的標籤,除了可以產生GDI+沒有的3D效果之外,更重要是透過XAML的標準,將來使用Visual Studio開發出來的使用者操作介面,就有機會可以直接跨平台使用了。然而,世界並非永遠這樣的美好,WPF的理想一遇到現實,就不得不妥協。一般GUI應用程式主要分成兩種:Windows跟Web,而Web應用程式是透過Browser顯示執行結果的,因此無論在安全性、執行方式、環境設定等等,都有比較多的限制。使用WPF開發視窗應用程是基本上一定是可行的(雖然一般的MIS系統不一定需要3D表單),但是若是要移植到Web應用程式中,一堆問題就發生了。首先,目前的Browser預設只支援HTML (DOM)+Script+CSS,因此若是要使用XAML的標籤,就需要寫一堆的Javascript,以及安裝支援XAML的執行環境(Silverlight)。

然而,雖然說Silverlight只是WPF(XAML)的子集,但是裡面的XAML標籤還有一堆的物件成員,都不是目前的MIS或是網頁開發人員所熟悉的;而且你必須要使用Javascript才可以控制這些物件在用戶端的行為(天啊!!)。雖然在可預見的未來,微軟會提供一些新的開發工具(Expression Blend、Visual Studio 2008),簡化(?)開發的痛苦,但是從開發人員的角度來看,既然WPF也支援視窗應用程式的開發,那我何不直接開發視窗板的程式就好了?

沒錯,這正是我要說的。基本上,目前已經很少真正"Thin-Client"的程式了,就算是Web應用程式,也是需要在Browser中增加許多物件或是新的執行環境,再透過AJAX架構跟Sever端溝通。一般廣義的Thin-Client應用程式指的是不需要透過特定的安裝動作,使用很少的用戶端資源就可以執行的應用程式。然而程式開發,就像"天下大勢,合久必分,分久必合"一樣,Server端的技術發展到極致,就會轉到Client端繼續發展。以目前AJAX與Silverlight的發展來看,應該也是會符合這樣的一個趨勢 -- 既然我的程式需要下載一堆東西到用戶端執行,讓處理速度變慢,那我何不直接開發Windows程式就好? 所以,Javascript bye bye,Thin-client bye bye。

因此很多學員問我,微軟.NET Framework 3.0的這些技術要用在哪些地方? 我都會這樣說:
  1. WPF:建立視窗應用程式(如果你需要3D效果的話)。
  2. WF:建立應用程式中的Controller(MVC Pattern),以及設計網路元件中的流程。
  3. WCF:繫結視窗應用程式與網路元件。
Web應用程式還是會繼續存在,但是就像Google網路相簿與Picasa的關係一樣,使用者先使用視窗應用程式編輯處理好資料,上載後再透過Web應用程式開放或是顯示分析後的報表。

沒有留言:

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)