為什麼我們需要Silverlight 2
眾人翹首期盼,Microsoft新一代的Web Application開發平台:Silverlight 2.0終於進入了RTW階段(Release To Web),也就是發佈於網路上供大眾下載的正式版。
我知道,多數開發者及使用者,對這個技術多半抱持著觀望的態度,畢竟Silverlight 1.0的經驗,讓許多開發者吃了不少苦頭,不支援中文、使用JavaScript、不支援文字輸入,
諸多的限制讓Silverlight 1.0停滯在只能用來做動畫的階段,更糟的是,Microsoft所推出的專屬設計工具:Blend又一直處於穩定性、功能性不佳,製作Silverlight 1.0的應用程式對開發者及設計者來說,都不是件容易的事。
常有朋友詢問筆者,在Flash的廣泛佔有率之下,使用一個缺乏強大工具,類似於Flash的Silverlight,究竟有何好處呢?
我的回答多半是:Flash起於圖像概念而發展,Silverlight則起於程式概念而發展,對程式設計師來說,Silverlight會比Flash來的容易上手,未來一旦Silverlight填補了圖像工具及增加中文輸入、網路能力,那麼其將成為新一代的RIA Web Application開發標準
(請注意,此處指的Web Application並不是指所有現行的網站,後文會對此做更精確的切割)。
這段話至今仍然適用,Silverlight 2.0除了如願的增加中文輸入、加強網路能力之外,更添加了.NET Language的支援,放入了一個精巧的CLR(在Silverlight中,這稱為SLR),對開發者而言,我認為Silverlight 2.0必然是撰寫新一代RIA Web Application的不二之選,唯一遺憾的是,Blend這個設計工具仍然不完善。
OK,那麼我們為何需要Silverlight 2.0呢?Flash的成功,在於將圖像、影像等功能帶入Web應用,許多耳熟能詳的網站:YouTube、春水堂(阿貴)都運用Flash強大的能力,將自身由一個小網站推成一個舉止投足都會影響網路世代走向的企業。Flash是這些企業成功的關鍵之一,那Silverlight呢?
是的,我想沒有人可以否認,Flash所創造的王國,不是Silverligh所能輕易憾動的,如果把圖像跟影像做為採用Silverlight的主要理由,那麼你不是一個MS愛好者,就是一個勇於跟市場做對的天才(或是傻蛋,結果論,成則天才、敗則蠢材)!!
對我而言,我會採用Silverlight 2.0的原因只有一個,Flash主導了圖像與影像的市場,但卻一直無法進入商用軟體應用的市場,這是網路世代中,眾多網路公司所企圖打入的市場,Google Application、Google Office,都是嘗試但尚未成功的例子。而Silverlight 2.0正巧提供了符合進入此市場的條件,這個市場有多大?請回想多年前,網路泡沫化前,有多少客戶想使用IE等瀏覽器當做平台,使用商務程式,如會計、進銷存、人事薪資?那這些客戶放棄當初已經完成的類似產品的原因又是什麼?
我最常收到的客戶抱怨是,Web Application用起來很不方便,原本按幾個鍵就能做完的事,就是得經過滑鼠跟一堆跳出視窗才能完成,工作效率因此降低了不少,這使得當初的Web Application成了一個小巧、可有可無的前端,讓出門在外的業務及員工,在沒有完整軟體安裝於NB中的情況下,有一個可以與公司軟體互動的管道。
HTML是為了呈現"文件"而發展出來的一種樣版語言,再怎麼努力,她做出來的成品,要跟Windows GUI專用的C++、Delphi等語言來對比,根本就是一個不平等的比較。
那有了Silverlight 2.0,這些問題就都解決了嗎?讓我們來想一想,Silverlight的UI架構是什麼?其實她是一個WPF的子集,而WPF則是Microsoft期待用來取代原本Windows GUI所開發出來的一種架構,但是WPF有著先天的缺陷,一、她必須在客戶端安裝.NET Framework 3.0,二、她的繪圖能力雖遠超過傳統的Windows Form,但是複雜度也相對偏高,用WPF來撰寫RIA Web Application,那是一個具有爭議的決策,WPF是一個Client Application Architecture!
那以WPF子集做為UI標準的Silverlight呢?Silverlight 2.0不需要.NET Framework 3.0,她內建的SLR約4.6MB,完全提供了.NET Language所需要的功能,
其雖繼承了WPF複雜度偏高的缺點,但可於瀏覽器上直接執行的優點,可以完全Cover掉這個缺陷。
重點是,那Silverlight 2.0能做什麼是Flash做不到,或是AIR做不到的呢?我的回答很簡單,用Silverlight 2.0可以做出一套於IE上執行的進銷存、會計、人事薪資,而且UI介面的方便性可與Windows Forms比擬,而且對.NET(或MS派、Borland派)程式設計師而言,操控Silverlight比起操控AIR來得輕鬆。而且最近的Silverlight Toolkit推出,證明了Silverlight在元件/控件上的架構,足以讓許多3rd Party廠商生產出很多簡單易用的控件。
雖然,MS絕不會在圖像、影像上自貶身價的承認不如Flash,但現實是,如果不是因為客戶指定開發環境,我想大多數的設計者都不會選擇Silverlight,一則因為既有人員的能力,二則因為Flash已發展許久,樣版及範例都很豐富,Silverlight要達到這個境界,還需要很多時間。
自然,AIR也不會在程式面承認不如Silverlight,但是!事實是,如果將重點放在RIA Web Application,那麼AIR要與Silverlight平起平坐,得先解決自身缺乏Windows GUI架構經驗的難題,畢竟這是MS多年的經驗累積。
開發平台市場上,從來未出現獨霸的現象,在Borland DELPHI強勢而MS弱勢的世代中,MS也沒有敗的很難看,反而在MS啟動.NET計劃後,DELPHI就此處於挨打地位。但如果你以為DELPHI已經完蛋,那麼就大錯特錯了,開發工具是用來生產產品,不會因為市場的趨勢而一夕改朝換代,至今使用DELPHI的人及公司仍然不在少數,會受影響的是長遠之計,在一個弱勢的語言上,願意投資的開發者會越來越少,最終公司必定會走向世代交迭的路口,此時,這個路口上會不會再有DELPHI存在,那是一個很大的問題。
所以,Silverlight與Flash、AIR,基本上是個佔有率的問題,不存在於誰取代誰的問題,除非!RIA Web Application的需求大量增加,壓縮到未來使用Flash做為圖像、影像王者的地位,那麼就會因為世代交迭的因素,讓Silverlight幹掉Flash、AIR,不過!我想沒人會認為,這件事會在5~10年內發生,除非Adobe自己不玩了。