接下來我所要講解的,是一個宏大的主題,結合了我這些年來從事UI端編程的經驗,我將用一系列文章來搭建用戶界面(UI)的底層框架,這里我使用的技術實現是Silverlight,但是,你將會發現,我所介紹的都是UI端的設計思想,所以是超越於語言,是不局限於技術實現的,所以,它將適用於Windows Form, WPF, FLEX, HTML5,以及所有手機編程領域Phone7, IOS, Android。
分類如下:
框架級別:
1) Wait Cursor
在調用Service端方法的時候,如何能鎖住當前的UI,直到Service返回結果,用戶才能繼續操作。
2) Chain of Async methods
如何將異步方法轉化為同步方法,這將使我們的代碼更加清晰。
3) Domain Cache
如何在客戶端緩存一些數據,比如說國家列表,學校列表,等等。
4) Code Injection
如何巧妙的注入一些代碼,使UI端的代碼更優雅。
5) UI Logger
如何記錄UI端的日志。
6) Exception
如何設計Service端的異常的處理機制,就是有Exception,也要友好的顯示給UI端。
7) Abstraction
如何設計用戶界面的接口和基類。
功能設計:
8) View Split
如何更加有效的將一個復雜的頁面拆分成多個小頁面。
9) Navigation
如何設計導航,包括菜單,導航樹,導航器。
10) On-Site Edit
如果設計在線編輯(On-Site Edit),也就是通常所謂的CRUD,一攬子解決方案。
11) Popup
如何統一彈出框。
12) Server paging/filter/sorting
如何處理大量數據的顯示,比如分頁,排序和過濾,可以是UI端來做,也可以是Service端來做。
MVVM設計:
13) MVVM
如何將數據從界面邏輯中剝離出來。
14) Event
如何建立我們自己的事件機制
15) Command
如何建立我們自己的命令機制,以及如何將事件轉化為命令
16) UI Unit Test
如何設計UI端的單元測試。
綜合設計:
17) Validation
如何設計客戶端的驗證體制,從而讓用戶總是提交有效的數據。
18) Concurrency
如何處理並發操作,當然,這也是從UI、Service和DB層同時考慮的。
19) Mock data
如何Mock一些數據,使UI端的開發不依賴於Service
20) Print/Export
如何打印和導出數據
21) Performance Tuning
如何調試性能,當然,不止局限於UI端。
22) Work with UX team
如何組織UI端項目的結構,以及如何與美工協作。
總而言之,這都是一些經驗的匯總,是一些通用的模式,出於對GOF的Design Pattern的尊敬,我在上面只列出了22個場景(其實是我實在想不出第23個,而又不想隨便寫一個來湊數)。
