转自:http://www.cnblogs.com/Jax/archive/2012/03/12/2391410.html 接下来我所要讲解的,是一个宏大的主题,结合了我这些年来从事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个,而又不想随便写一个来凑数)。 |
|