深入淺出WPF——什麼是XAML

小序:
還記得周星馳那句話嗎?“人如果沒有理想,那跟鹹魚有什麼區別”。當自己一步踏上追求理想的征途,才發現爲了理想要放棄很多、很多……只有這時候才能切身地明白到什麼叫“捨得”。
向所有關注我的朋友們彙報一聲,我開始動筆寫《深入淺出WPF》了。現在大概已經完成了兩三章的樣子,我會把一些片斷陸續發佈到blog裏,請大家多提寶貴意見。
我知道,當我最疲憊、最沒有激情的時候,唯一能激勵我走下去的,就是朋友們和編輯們的鼓勵!
我需要你們!
 
正文:(似乎今天的正文最簡單不過了——直接Copy再Paste就搞定了!)
 
 
1. XAML是什麼?
 自人類社會誕生,社會分工就在不斷地進行着。從原始社會畜牧業與農業分離到當 今社會成千上萬行業的彼此協作,無不是社會分工的傑作。社會分工的意義在於它能使從事固定工作的人羣更加專業化,並通過合作的形式提高生產效率。換句話 說,在合作不是問題的情況下,若干羣專業人士配合工作要比同等數量的一羣“大而全”人士的工作效率高。
這種分工與合作的關係不僅存在於行業之間,也存在於行業內部。軟件開發中最典型的分工合作就是設計師(Designer)與程序員(Programmer)之間的協作了。在WPF出現之前,協作的場景一般是這樣:
1. 需求分析結束後,程序員對照需求設計一個用戶界面(User Interface,UI)的草圖,然後把精力主要放在實現軟件的功能上
2. 與此同時,設計師們對照需求、考慮用戶的使用體驗(User Experience,UE)、使用專門的設計工具(比如PhotoShop)設計出優美而實用的UI
3. 最後,程序員按照設計師繪製的效果圖,使用編程語言實現軟件的UI
經驗告訴我們,即便是優秀的設計師團隊和優秀的開發團隊合作,花費在溝通和最終整合上的精力也是巨大的。經常出現的問題有:
• 設計師的設計跟不上程序邏輯的變化
• 程序員未能完全實現設計師提供的效果圖
• 效果圖與程序功能不能完全匹配
• 從效果圖到軟件UI的轉化耗費很多時間
這些並不是誰對誰錯的問題——只要存在分工,那麼合作的成本就不可能爲零。問題的核心在於,上述的合作是“串行”的,也就是先由設計師完成效果圖、再由程序員通過編程實現。如果設計師能與程序員“並行”工作、直接參與到程序的開發中來,上述的問題就迎刃而解了。
解決方案是什麼呢?是讓設計師們使用編程語言來設計UI效果圖,還是讓程序員們使用PhotoShop來開發程序?顯然都行不通。
網 絡程序開發團隊的經驗倒是很值得借鑑:草圖產生後,設計師們可以使用HTML、CSS、JavaScript直接生成UI,程序員則在這個UI產生的同時 實現它背後的功能邏輯。在這個並行的合作中,設計師們可以使用Dreamweaver等設計工具,程序員使用Visual Studio來進行後臺編程。有經驗的設計師和程序員往往還具備互換工具的能力,這使得他們能基於HTML+CSS+JavaScript這個平臺進行有 效的溝通。
爲了把這種開發模式從網絡開發移植到桌面開發和富媒體網絡程序的開發上,微軟創造了一種新的開發語言——XAML。XAML的全稱是 Extensible Application Markup Language,即“可擴展應用程序標記語言”。它在桌面開發及富媒體網絡程序的開發中扮演了HTML+CSS+JavaScript的角色、成爲設計 師與程序員之間溝通的樞紐。
 現在,設計師和程序員們一起工作、共同維護軟件的版本,只是他們使用的工具不同——設計師們使用Blend(微軟 Expression設計工具套件中的一個)來設計UI,程序員則使用Visual Studio開發後臺邏輯代碼。Blend使用起來很像PhotoShop等設計工具,因此可以最大限度地發揮出設計師的特長。使用它,設計師不但可以制 作出絢麗多彩的靜態UI,還可以讓UI包含動畫——雖然程序員們也能做出這些東西,但從專業性、時間開銷以及技術要求上顯然是划不來的。更重要的是,這些 絢麗的UI和動畫都會以XAML的形式直接保存進項目,無需轉化就可以直接編譯,節省了大量的時間和成本。
 下次,當你在面試被問到“什麼是XAML”時,你可以回答:XAML是WPF技術中專門用於設計UI的語言。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章