Flex 2.0
在這次的public alpha鐵三角中,已經介紹過 Flash Player, AS3兩項,接下來該看看 Flex代表的意義。
在過去一年中,大部份人聽到 Flex的反應都是: 白癡才會用這玩藝兒、貴的完全不知所云莫名其妙直接笑笑揮揮手不帶走一片雲彩轉身就閃人去。
但許多事情在 FB2出來後發生了根本性的改變。
首先,這次的 flex 2.0 release包含下列幾項:
1、Flex Builder 2.0
2、Flex Framework
3、Charting Component
我們一項項的看過。
*flex builder 2.0 (FB2)
如同大家所知,FB2是以 eclips 3.1為底改寫而來,或者應該說是 eclipse的一個外掛,因此它自然繼承了 eclipse的所有優點(完整的編輯功能、可擴充性…),而且也如同之前所料,它將原本 dreamweaver 的 design view整合進去,變成一個視窗寫 mxml code,另一個視窗設計form。
那採用 eclipse有什麼好處呢?很多啊~
例如eclipse 上一狗票的外掛都可以立刻拿來用,我裝好 FB2的第一天就順手裝了 SubClipse,這是一個 SVN 的 plugin,從此直接在 FB2就可同步程式碼,實在很快樂;其它如 Database Connector可以直接在 eclipse裏連線 mysql然後測試 sql也是很方便,不用再開一個 mysql control center 或 navicat之類的client。
此外更別提如果你用 MTASC的話,必然會裝 ASDT或 FDT(感謝該公司熱情免費提供了一份給我測試),這時就可與 FB2 並存,看心情切換到需要的 Editor, 如果要編複雜的 XML文件,也可以裝 Oxygen xml editor,這是一個比美 XML Spy的 xml 編輯工具,效果好到沒話說。
當然,如果這一切還沒辦法滿足你的編輯需求的話,最後一招是可以裝上MyEclipse後再裝FB2,這樣就可以同時享受 MyEclipse帶來的豐富功能,同時又能編輯mxml。
*Flex Framework
這是另一個重要的 milestone。
Flex Framework代表的意思是從此 flex不再需求server,只要有這個 framework就可以撰寫並編譯 swf程式,並且可以免費發佈,就跟用 Flash 8編譯是一樣的意義,唯一的不同在於因為這是一個 framework,因此自然可以享受許多額外的好處。
(好吧,有人留言說看完上面這段還是不懂,那試試換個角度這樣想:用 .net framework時,不是只要抓一份 .net sdk 回來,就可以自已用記事本寫C#,存好後用 sdk裏的compiler編譯,之後就會得到一支 exe嗎?同樣的,以後只要下載一份 flex framework, 然後用[記事本/UltraEdit/any other text editors you like....]編輯好 mxml並存檔,然後用 mxmlc.exe 這支 compiler編譯就可以得到一支 swf檔囉!在flash的世界裏,可以將 swf 看成等同於 .net 的 exe)
有那些呢?
-完整的底層服務: 我指的是像 double click, data binding與 app initialization等 house-cleaning routines都有人自動完成。
-豐富的 UI controls: flex的元件很讚是大家早就知道的是,而這次它變的更棒了。首先是完全用AS3重新改寫過,因此速度變快就是一定的事,在這之外則是多了一個 Rich Text Editor,功能完整而且非常robust,再配合原本就表現良好的 Container系元件,這使得 Flex Framework有者接近 Visual Studio 的表現。
另外,Flex Framework 也有 server端的配套措施,名稱叫 Enterprise Service,目前還沒release,但簡單講就是把 Jrun 跟 Flashcom(Flash media server)送做堆,同時提供 data(remoting) + audio + video的服務;根據更早之前的白皮書指出,應該還會俱備某種 Persistant Layer可自動做 OR Mapping的事,但這也是不是太稀奇的事,現在只要透過 VO把flash object傳回 server 並轉回 Java VO後,接者就可用 Hibernate來做 persist的工作,所以並不難啊~
在這些功能面的因素之外,FB2還有一個更令人心動的消息,它的售價將會低於三萬元,也就是說像我們這樣的開發商只要買一套,就可以用來做無數的專案,完全不會有 deploy license的困擾(更別提以前 per 2 cpu 40萬台幣的鳥事),因此這讓 FB2 真的成為一個非常值得考慮的開發工具。
對我而言,評估與選擇一個工具或方案時,必需要同時考量到許多層面,例如速度、功能完整性、未來發展性、客製化彈性等等,如果簡單的以 Flash 8 VS FB2來看的話,光FB2裏完善的元件就已經把 flash 打的要死,如果再加上 framework裏其它的底層功能與 eclipse方便的編輯環境,孰優孰劣已非常明顯不需多言。
這也是為何早在今年第二季時我們即已決定未來將會放在 Flex 這條線上的主要原因。
*charting component
呃 這個說實在沒怎麼在玩,從內附的範例來看其實效果普普,大概就是長那個樣子並提供那些功能,Chafic他們寫的 BLine charting components在某些層面上可能還勝過這組,不過看在它不要錢的份上,就別挑了吧。
當然一個值得觀察的重點是:charting component是用外掛的方式安裝進去,只要將 swc檔丟到資料夾內,然後再更新一下 config.xml,就可以加入這些元件,這代表者將來如果有 3rd party 廠商要為 Flex framework寫元件的話,也只要循同樣模式就可輕易達成,前景非常可期啊,至少我就已經想寫一兩組元件了。
edit: 另外FB2還多了一個 state 面板,這真是讚到不可思議的設計,這個 state面板是用來切換與控制程式進行中的狀態,在不同的狀態下顯示不同的介面元素,例如login時只顯示 login面板,其它東西都隱藏起來,而不同身份權限的人進到程式後,也可以用它來切換不同的操作畫面,彈性非常大,當初玩過後心中感覺是:這恐怕是 Movieclip之後最偉大的發明了…
偉大的地方在於:
1、舊時代的coder往往會用 timeline做為程式 state的區分,例如第1格是 login, 第5格是主畫面,第10格是xxxx畫面。這種 frame-based 的設計缺點非常多其中最大的麻煩就是安全性不佳。
2、在AS2.0時代,我們則是自已寫了framework來控制程式的 state的切換與卸載,主要就是透過 attachMovie()與 removeMovie()兩支 method,但可能包裝成 dispose()之類的高一階 API。
但flex2採用的 state 設計則是直接將這種問題完全解決,同時兼容 movieclip的彈性與程式流程的順暢,實在是很棒的設計。
不過alpha1中這個功能還有許多bug,例如有時切換state時會導致 IE當掉…所以使用上要小心。


Trackback this post | Subscribe to the comments via RSS Feed