小序:
還記得周星馳那句話嗎?“人如果沒有理想,那跟鹹魚有什麼區別”。當自己一步踏上追求理想的征途,才發現為了理想要放棄很多、很多……只有這時候才能切身地明白到什麼叫“捨得”。
向所有關注我的朋友們彙報一聲,我開始動筆寫《深入淺出WPF》了。現在大概已經完成了兩三章的樣子,我會把一些片斷陸續發布到blog裡,請大家多提寶貴意見。
我知道,當我最疲憊、最沒有激情的時候,唯一能激勵我走下去的,就是朋友們和編輯們的鼓勵!
我需要你們!
本文:(似乎今天的本文最簡單不過了——直接Copy再Paste就搞定了!)
1. XAML是什嗎?
自人類社會誕生,社會分工就在不斷地進行著。從原始社會畜牧業與農業分離到當今社會成千上萬行業的彼此協作,無不是社會分工的傑作。社會分工的意義在於它能使從事固定工作的人群更加專業化,並通過合作的形式提高生產效率。換句話說,在合作不是問題的情況下,若干群專業人士配合工作要比同等數量的一群“大而全”人士的工作效率高。
這種分工與合作的關係不僅存在於行業之間,也存在於行業內部。軟體開發中最典型的分工合作就是設計師(Designer)與程式員(Programmer)之間的協作了。在WPF出現之前,協作的情境一般是這樣:
1. 需求分析結束後,程式員對照需求設計一個使用者介面(User Interface,UI)的草圖,然後把精力主要放在實現軟體的功能上
2. 與此同時,設計師們對照需求、考慮使用者的使用體驗(User Experience,UE)、使用專門的設計工具(比如PhotoShop)設計出優美而實用的UI
3. 最後,程式員按照設計師繪製的,使用程式設計語言實現軟體的UI
經驗告訴我們,即便是優秀的設計師團隊和優秀的Team Dev合作,花費在溝通和最終整合上的精力也是巨大的。經常出現的問題有:
• 設計師的設計跟不上程式邏輯的變化
• 程式員未能完全實現設計師提供的
• 與程式功能不能完全符合
• 從到軟體UI的轉化耗費很多時間
這些並不是誰對誰錯的問題——只要存在分工,那麼合作的成本就不可能為零。問題的核心在於,上述的合作是“串列”的,也就是先由設計師完成、再由程式員通過編程實現。如果設計師能與程式員“並行”工作、直接參与到程式的開發中來,上述的問題就迎刃而解了。
解決方案是什麼呢?是讓設計師們使用程式設計語言來設計UI,還是讓程式員們使用PhotoShop來開發程式?顯然都行不通。
網路程式Team Dev的經驗倒是很值得借鑒:草圖產生後,設計師們可以使用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的語言。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/FantasiaX/archive/2008/12/25/3599807.aspx