UI端编程的22个问题

      接下来我所要讲解的,是一个宏大的主题,结合了我这些年来从事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个,而又不想随便写一个来凑数)。

posted @ 2012-03-12 10:45  包建强  Views(5338)  Comments(15Edit  收藏  举报