前幾天為了Silverlight特地裝了Microsoft Expression Blend 2 September Preview,與上一個版本的差別在於原先只支援WPF,第二版開始支援Silverlight的開發。
Microsoft Expression Studio推出的意義在於可以讓專案的開發得到更明確的分工,除了原本可以仰賴Visual Studio Team System來進行專案的管理、系統規劃、開發、測試、整合等動作之外,現在可以藉由Microsoft Expression Studio將視覺、使用者介面的部分另外獨立出來(不過我不曉得Expression Blend可否使用Team Foundation Server),視覺設計無須擔心頁面中有一堆看不懂的程式碼,XAML與處理邏輯的程式碼可以完全分開。倘若分工沒這麼專業,只有一人苦力,最起碼你可以同時開啟兩套軟體,一邊負責寫邏輯、一邊負責拉畫面,Blend可以自動替你把對應的XAML搞定。
(改天應該要摸索一下使用Expression Blend開發WPF程式,我看我同學在玩,只能說是驚艷,完全有別於過去開發Windows Form的體驗!)
我曾經有短暫接觸過Flex與ActionScript的開發,印象中在MXML中不可避免地會有許多處理邏輯的程式出現,或許也有可以完全分離的作法,只是我不清楚,不過相較於微軟現在所搞出來的開發方式,對於我這個.NET developer來說是非常快速就可以理解並且上手的。
今天看到「Adobe MAX 2007 - Astro, Hydra, Thermo, and Flash on C++」這篇文章談了幾個Adobe MAX 2007上發表的有趣玩意兒,最讓我感興趣的就是Thermo,稍微Google了一下又找到d.CAT有稍微介紹了Thermo。
Adobe Thermo的任務將會是讓美工人員可以更輕易地專注在自己的角色上,未來藉由Thermo與Flex Builder的整合,設計師與工程師合作過程中所遇到的問題相信會減少許多,對於Flex developer來說應該是個好消息吧:D至少不用擔心微軟的銀色衝浪手短期內造成太大的威脅:D
Posted by (1) Comment
由於明天要向老師報告微軟最近吵得相當火熱的技術:Silverlight,今天晚上便臨時抱佛腳找了點資料準備明天報告。(不過事實上這門課我很認真的,只不過最近專題、工作、練功等諸事纏身,不得已只好最後一天犧牲睡眠來做事orz)
首先要說明的是,Silverlight是個「純client端」的技術,你可以把他想像成跟Flash的.swf一樣,放在任何的Web Server上讓使用者取得後,才依賴client端的Runtime Component render出畫面來。
初次接觸Silverlight,除了我的小黑上已經裝有.NET Framework 3.0之外,我還另外裝了Expression Blend 2 Preview(Blend不支援Silverlight開發,必須是Blend2才有)。
稍微翻了點資料之後,目前大概看到Silverlight有以下幾點特色:
之前曾經有短短幾天使用Flex開發Web Application的經驗,當時發現要使用JavaScript來跟Flash互動並不難,透過External Interface似乎就可以讓ActionScript與JavaScript溝通,但是我們當時好像光看到這樣的運作機制就懶得繼續寫下去了XD
沒想到現在Silverlight居然可以讓developer直接使用JavaScript去操控元素,換句話說使用JavaScript就可以同時操控HTML本身的DOM結構,也可以操控Silverlight的DOM,實在是太酷啦!尤其是可以動態新增元素,這一點對開發Silverlight的彈性來說還滿棒的!試想,透過Ajax的機制,從後端動態產生"我想在Silverlight上出現的畫面",傳回來其實是一串XML(應該說XAML比較精確:P),但他卻會變成在Silverlight上精美的畫面,光想到這樣的運作方式就覺得很興奮,再加上Silverlight是純Client端的技術,改天應該來玩玩看Silverlight on Rails (言下之意是我可能要放棄Flex on Rails了orz)。
不過目前所看到的,如果要在Silverlight畫面上呈現大量資料,好像沒有現成的DataGrid?Third-party開發的應該是有,不過就不像Flex Builder裡面內建一堆可用的controls。Anyway,過幾天有空再以實例來分享使用JavaScript操控Silverlight的程式。
註:目前我都只有看到從Silverlight主動呼叫某個js function的範例,要是可以直接從js去抓到silverlight的element就更有趣了:D是我手殘,雙向互動完全是沒有問題的。