為什麼需要XAML?

為什麼需要XAML?


原本談到XAML是否容易,還有究竟XAML重不重要的話題..讓我們來看看這是意識型態,或者是選邊站的口號,亦或是技術上的不得不然?!

祭司會叫大家學好XAML不是沒有原因的,是因為XAML就是WPF與Silverlight的核心及心要,沒有XAML就沒有WPF與Silverlight,讓我們來證明到底XAML是喊爽的,還是技術上的不得不然?

以下是一個Silverlight 1.0環境在的Web應用程式,而裡面有一個矩形及文字,透過滑鼠點選矩形後,矩形會進行旋轉,這個技術在Silverlight之中叫做~Interactive Animation,意思是你如何透過滑鼠事件去呼叫JavaScript程式,而JavaScript再和Silverlight DOM中的XAML進行互動,

故在此可以得出幾個程式開發上的要素:
1.XAML Code
2.Mouse事件
3.JavaScript
4.Silverlight DOM


而讓我們來看看這個程式是如何寫的:
XAML Code:

JavaScript:
function RotateObject(sender , eventArgs)
{
sender.findname("animateAngle").begin();
}

以上XAML Code及JavaScript就是可以做出與Silverlight進行互動的一個例子,而JavaScript算是很容易,即使你看不懂它在幹嘛,就是一行程式!它是在呼叫Silverlight DOM裡的XAML Storyboard定義,裡面就是讓Canvas矩形旋轉360度的動畫定義.

上面的XAML Code說難不難,說容易不容易...若你看得懂的話,表示你有一定XAML基礎了,可以看出XAML Code的脈絡,若你看不懂的話,還是得老實學..否則就做不出動態的Silverlight動畫效果,這才是問題的核心呀!用Blend簡單的也許能做,但你要做出複雜的動畫效果,沒有XAML觀念,你根本做不出,再來各位也別小看JavaScript,若要寫出很複雜的Silverlight RIA程式,JavaScript變化性就很大的,你還是得搞懂Silverlight DOM,才能透過JavaScript去改變XAML物件的行為模式!什麼是Silverlight DOM?就是像W3C的Document Object Model,沒有Silverlight DOM,就沒法去操控XAML!

有的人也許會想Silverlight 1.1不是支援C#或VB嗎?但我要講的是ASP.NET支援C#和VB,連最古老的HTML,DOM,JavaScript都丟不掉,AJAX出來後,所有人都又要將JavaScript拿出來強化與溫習溫習,憑什麼Silverlight 1.1能丟掉什麼,更別談想丟掉XAML了...沒有XAML就沒有Silverlight與WPF了!一如沒有HTML的話,當今的Web也可以丟掉了...因為並沒有普及而公認的簡單替代方案,而不是說HTML有什麼無可取代的技術性...

最後Silverlight 1.0只支援XAML與JavaScript程式開發,不會XAML,那就不用想開發Silverlight RIA程式,用Blend做做Silverlight動畫倒是可以,到Silverlight 1.1時,有C#和VB之後,XAML重要性仍然不會改變,祭司輕輕點出XAML重要性,至於各位想不想學XAML我沒什麼意見了...一切技術都是自修自得,對技術的熟稔強與弱最後仍會回歸反應到你身上,就看諸位如何衡量取捨了...

註:
若還是有人懷疑XAML功能與正確定位的話,可以參考MSDN Magazine的2007年6月號,題目為~SILVERLIGHT在網路上建置更深入的使用經驗,網址如下:
http://msdn.microsoft.com/msdnmag/issues/07/06/Silverlight/default.aspx?loc=zx

(微軟MSDN Magazine 2007-06)

祭司實在不想搬國外月亮比較圓這種東西來印證我對XAML的評價,因為我先前文章有說,我是在2006年下半年就在Study XAML Code了,也知道它的重要性,而這篇MSDN文章只是今天晚上剛好看到,印證我講的理論,Silverlight 1.0就是只支援JavaScript + XAML的程式開發,與我強調的觀念與立場並無二致,祭司也沒有偏離WPF及Silverlight正確精神,而將錯誤的個人觀念傳達給讀者,有MSDN文章一起佐證,各位有空看一看吧.

你可能感兴趣的:(JavaScript,vb,silverlight,Blend,WPF)