從去年的Tech-ED到現在,陸陸續續地講過多次有關 Expression Blend 的課程,也在部落格裡發表了一些相關文章。近期有不少朋友詢問關於 Expression Blend 的問題,將其中比較常見的一些挑出來,與大家分享一下個人的一些觀點。
問1:Expression Blend 是什麼?
【答】Expression Blend 是開發 Windows Phone 7、Windows 8、Silverlight、WPF等基於XAML的應用程式的開發工具。作為開發工具,其與Visual Studio最大的不同,就是它在UX設計方面強大的功能,如編輯UI、動畫、模板等。在實際開發中,Expression Blend與Visual Studio搭配使用,以達到事半功倍之效果。
問2:必須用Expression Blend 才能編寫 Windows Phone 7、Windows 8 的UI嗎?
【答】不是。Windows Phone 7及Windows 8(Metro)的UI 都是基於XAML語言,而XAML語言本質是XML,因此完全可以用“記事本”等工具進行文字編輯。當然,Expression Blend在生成和編輯 XAML 語言方面提供了相當完備而簡介高效的諸多功能,因此已成為事實上的 XAML 程式設計首選工具。
問3:Expression Blend 適合什麼人使用?
【答】Expression Blend並非僅僅用於設計靜態的UI,而更是用來設計動態內容及互動功能的工具。正因如此,我們才稱之為UX設計工具。既然是UX設計工具,自然是UX設計者去用。
什麼樣的人才算是UX設計者呢?這裡僅表個人看法:UX與傳統UI有著巨大差別。前者重點在於使用者體驗,互動過程;而後者儘管也把易用性掛在嘴邊,但實際上UI設計人員的工作常被定格在“把介面弄好看點”上。一個合格的UX設計者,首先應該具備一定的UI功底,懂得常用的設計模式(此設計模式非彼設計模式),並具備一定的繪圖能力(不要求是Photoshop高手,但起碼要能夠利用一種主流繪圖工具準確自如地表達自己的想法),以及有關動畫製作的基礎知識。另一方面,還應該懂得一定的程式設計知識,尤其是與人機互動相關的處理邏輯(如資料繫結、依賴屬性、委託事件、自定義控制元件的宣告與繼承等),這些都是充分發揮XAML語言強大功能的前提。
當然,設計與開發兩者兼備的人並非比比皆是,一個更加可行的方法是:程式設計師與設計人員一起協作,共同去學習和掌握Expression Blend,利用各自擅長的技能去相互彌補,逐漸加深對UX設計的理解。而這樣一來的好處是,最終會收穫兩位UX設計高手。
問4:Expression Blend應該如何學習?
【答】相比於網路上有關Visual Studio的豐富資源,Expression Blend相關的教程少得可憐。學好Expression Blend的關鍵是熟練掌握該開發工具的各種操作,因此,本人傾向於推薦一些視訊資源,如:
Total Training Microsoft Expression Blend 4 Essentials (國內某著名電驢網站有相關資源)
上面提到的這套視訊教程非常系統、全面地講述了Expression Blend的基礎知識,建議每一位勵志開發微軟平臺程式介面的朋友看一看。另外,有推薦兩個好去處,可以經常光顧,以獲得具有針對性的、最新的內容:
http://www.microsoft.com/expression/
http://expression.microsoft.com/
(明明都是微軟自己的,看這蛋疼的網址搞的,在這裡小小吐槽一下)
問5:Expression Blend裡很多功能都是拖拖拽拽來搞定的,這是否意味著我不必學編寫程式碼了?
【答】不是。Expression Blend 為我們提供“拖拽式”的設計功能,意在提高設計者的工作效率,並非教唆大家對“寫程式碼”視而不見。我的建議是,在學習過程中,邊練習使用Expression Blend編輯介面,邊分析生成的XAML程式碼,從逐步加深對XAML程式設計的瞭解,最終達到能夠自如地用手工編寫XAML程式碼的程度。而在實際專案當中,強烈建議使用Expression Blend,畢竟它的工作效率要比手工寫程式碼高出很多。再次強調,使用Expression Blend的前提是:你必須清楚拖拖拽拽的背後,都發生了哪些事情。工具畢竟是工具,它亦有侷限,偶爾也會遇到它無法完成的功能,此時,我們的手工編寫XAML程式碼的功底就派上用場了。另外,通過工具自動生成的程式碼,往往會有冗餘,需要我們手工去剔除和矯正,以提高程式的執行效率及程式碼的簡潔度。
OK,以上就是我總結出的一些針對Expression Blend常見問題的看法,希望能夠對各位有所幫助。有關Expression Blend的一些疑問,也歡迎一起溝通討論。
作者: 李靖南 出處:http://elecpiano.blog.51cto.com/ Email: elecpiano@gmail.com 新浪微博: http://weibo.com/zengnami MSN: zengnami@hotmail.com QQ: 52717278
關於作者: 從事微軟平臺解決方案的設計與實現。主要專注於 Windows 8 及 Windows Phone 7 應用開發,及前者與微軟雲端計算平臺(Azure)的結合。
本文版權歸作者和51CTO共有,歡迎轉載,但未經作者同意則必須保留此段宣告,並在文章較明顯位置給出原文連線。非常感謝! |