WPF 開發流程:
使用者體驗是成功的關鍵因素:過去,我們開發一套軟體主要在於儘可能滿足客戶的功能性需求。使用者體驗則放在開發完成後才考慮。而現在,客戶需要的不再僅僅是一個能工作的產品。能夠提供正確的功能仍然是一個好產品的先決條件,但把它轉向正式產品,那你不得不提供一個良好的客戶體驗。提供豐富的客戶體驗不是虛無縹緲的。必須對它計劃和設計,然後再把他整合在產品的開發中。設計豐富的客戶體驗不僅僅是用一些圖片、漸層等效果來裝飾你的使用者介面。它應該在軟體和使用者之間建立一種情感,應該使使用者感覺舒適,以至於他喜歡繼續使用你的產品。
新的設計工具:微軟認識到,要給Team Dev強大的能力去創造豐富的使用者體驗,我們需要支援比今天的VS可以提供更多的圖形工具,所以他們決定開發一套新的工具,專為設計者使用。
這個工具套裝被稱為Microsoft Expression。他包括四種產品:
Expression Blend ----建立WPF和Silverlight的使用者介面,它在開發人員和設計者之間架起了橋樑。它能開啟VS解決方案。
Expression Design----輕量級的Adobe Illustrator, 用於建立和編輯向量圖型
Expression Media----編碼,剪下和修飾媒體檔案,並為Sliverlight流最佳化它們。
Expression Web----微軟的下一代HTML和JS編輯器,它是Frontpage的替代品。它們一起組成一個強大的包。體現了將圖形設計者用Adobe Illustrator 建立的向量圖整合到VS解決方案中WPF工程中的簡單流程。
WPF項目的開發流程:開發一個有豐富客戶體驗的WPF項目需要比指定需求分析和開發軟體更多的技術能力。應為你必須找出哪些是使用者真正需要的。這可以通過以下使用者為中心的方式進行。
1. 提取需求跟所有軟體工程一樣,瞭解和關注開發意圖是很重要的。你應當和使用者及相關人員溝通,以瞭解其真正的需求。他們應該完善所有功能,並適當的用使用者方案和情景來描述。優先處理哪些有風險的,重複的和重要的工作。這些工作則是由需求工程師的角色來完成的。
2. 驗證使用者介面原型 建立一個使用者介面原型是使用者和工程師之間建立一個互動設計的共識,交流思想的重要步驟。這個主要由互動設計者實現。有用的僅僅是一張粗略的使用者介面草圖,以免過早的討論實際細節。對此,這裡有一些技術和工具:
- 紙上原形:使用紙和筆來粗略的描畫使用者介面。不需要任何工具和結構。每個人都可以在紙上描述它的意願。
- 線框圖:線框圖經常用來描述頁面的布局。之所以叫線框圖,是因為它描畫得是空間或映像的輪廓。這個可以藉助PowerPoint或Visio完成。
- Expression Blend 3 - Sketch Flow SketchFlow是Blend 的可直接在WPF中建立互動原形的新的很酷得功能。使用整合的“Wiggly style”讓映像變成草圖。該原型可以在一個獨立的整合了一個反饋機制的播放器上運行。
- 互動原形:最昂貴的和實際的方法是建立一個(可重複使用)互動工程為原型,但使用的是虛擬資料。
強烈建議在實際情況下測試你的使用者介面原形。這樣有助於找出和定位在開發進程前期暴露出來的設計問題。以下是一些比較流行的評估使用者介面原型的技巧:
- 預演:預演應該在項目的線框圖和紙上原形之前來做。使用者得到一個要處理的任務,它可以在紙上類比控制。測試主管提供一個說明互動狀態的檔案。
- 可用性實驗室:建立可用性實驗室,你需要有一個螢幕捕捉軟體和網路攝影機的電腦。先證者給他一個任務,需求和互動工程師在觀察它的運行情況。甚至不需要說明那裡或者為什麼出問題了。
3. 實現商務邏輯和原始的使用者介面
4. 整合圖形設計
5. 軟體測試
角色:創造豐富的使用者體驗現代使用者介面,則要求您的Team Dev具備更多的技能。這些技能應該分布在你的Team Dev中各個角色中。軟體開發人員:軟體開發人員地指責在於實現應用程式的各個功能,他來建立資料模型,實現商務邏輯並將其顯示在簡單的視圖上。圖形設計者:主要職責在於建立一個映像化概念,創造軟體的映像資源,比如: 圖示(Icon),標誌(logo),3D 模型或色彩配置。如果他對微軟的expression工具相當熟悉,那麼可以直接創造風格和控制模板。互動設計者:主要負責介面的內容和切換。他通過線框或草圖來與客戶或團隊交流思想。他應該通過演練和情境來驗證它的模型。整合編譯者:整合者穿梭於開發人員和設計者之間的藝術家。他主要把設計者映像資源整合到開發人員的簡單介面上。這個角色需要一些稀有的技能以至於往往很難找到合適它的人選。 更多資訊The New Iteration - Microsoft Paper about the Designer/Developer collaboration