Developer 該如何看待 Silverlight 的 Programming Task?
Silverlight 自從 1.0 開始,就和 WPF (Windows Presentation Foundation) 有著相同的概念,將 Designer 和 Developer 分離作業,這一點在 Silverlight 2.0 中做的更成功了,對畫面的設計一定要在 Expression Blend 2.0 with SP1 上才可以做,若想要在 Visual Studio 中設計,只能拖放到 XAML source 並由 Preview 來轉譯顯示(未來 Silverlight 3.0 的 Visual Studio Tools 據說會納入 Designer Support,拭目以待),而設計師可以在 Expression Blend 中建立事件宣告,但卻無法編輯任何一行程式碼,程式碼的編輯需要在 Visual Studio 中做,而這也是 Developer 的工作所在。
那麼在 Silverlight 2.0 的時代,Developer 的角色究竟是什麼?個人認為有:
- 由 Designer 去設計視覺化組件,而由 Developer 來控制 Workflow,像是在畫面中使用程式碼來驅動 StoryBoard 來播放動畫,或是使用程式碼來切換使用者介面,甚至使用 createFromXaml() 以及 Downloader 來動態下載與生成使用者介面。
- 與 WCF 或 ASMX Web Service 來合作,處理通訊與資料存取工作,Designer 可設計 DataGrid 的視覺化元件,而 Developer 可以操作繫結資料。
- 處理使用者介面中所需要的前端程式邏輯,例如元件間的互動以及使用者介面 Designer 無法做的工作。
- 處理 Silverlight 與 ASP.NET 或 HTML 介面間的串接以及協同處理(例如 HtmlAccess 與跨網域處理)。
Silverlight 2.0 是 WPF 的一個子集,因此多數的 WPF Task 都可以適用於 Silverlight,Developer 若有 Windows Forms 或是 ASP.NET Web Form 的開發經驗,那麼對 Silverlight 的應用程式開發相對是有利的,因為 Silverlight 的 Programming Model 和 Windows Forms/ASP.NET Forms 的開發方法其實差異不大,排除 XAML 的概念的話,Silverlight 其實就和 Windows Forms 差不多了。
Silverlight 2.0 也某種程度的加強了 ASP.NET 的能力,不但再也看不到 PostBack,同時也看不到會閃的畫面,非同步的處理的能力也讓介面不會僵住,這些都是以前 ASP.NET 控制項和 ASP.NET AJAX 所做不到的事。
因此,開發人員雖然需要習慣一下 Silverlight 的 XAML 處理,但只要通過了這個陣痛期,其實後面的概念就可以順利和原有的開發經驗結合在一起,並且有效的和 ASP.NET 整合起來,或是建立一個完整的 RIA 應用程式。