AppArch(一):User Interface

User Interface Component Functionality

User interface components
1.不参与数据处理。
2.如果需要在界面上显示数据或改变状态,你就肯定有一个对应的界面信息处理组件。
3.能和控制器、视图功能一起被封装。

When accepting user input, user interface components
1.取得用户的输入,在此过程中对用户进行辅助,包括可视化的提醒(tool tips)、数据验证、适当的控制(数据范围)等。
2.捕获用户的输入事件并且通知控制器去呼叫接口组件去改变显示的数据,同时在当前用户处理进程上发起一个活动,或者是改变当前用户进程的数据状态
3.根据上下文限定用户输入(例如:数量字段只能输入数字)。
4.数据实体验证。
5.对信息进行映射和转换,将用户控件的值转换成底层组件能够使用的信息。(for example, a user interface component may display a product name but pass the product ID to underlying components).
6.解读用户动作(例如:一个拖放操作或按钮点击)并呼叫控制器。
7.使用缓存。
8.用通用的分页组件。

When rendering data, user interface components
1.从业务组件或数据访问组件获取数据并描述数据。
2.格式化数据为用户可理解的方式。
3.解决应用程序本地化的问题。
4.对业务实体对象进行包装。
5.为用户提供状态信息。
6.可以根据给用户习惯和使用的设备的不同自定义。
7.提供撤销操作的功能。
8.提供复制粘贴功能。

Windows Desktop User Interfaces
1.Window From控件。
2.嵌入式的HTML。
3.其它应用程序插件。

When creating a Windows Forms-based application, consider the following recommendations
1.在多窗体应用程序中,依靠数据绑定可以避免写复杂的数据同步代码。
2.窗体之间应该避免硬编码式的数据同步,而应该借助处理组件来进行数据同步,这样利于窗体复用。
3.实现自定义错误句柄,为用户展现有好的异常界面。
4.验证用户输入。
5.自定义的控件,仅仅将需要的属性设置为公共。
6.实现控制器,封装相关逻辑,提高维护性。
 例如:
 private void addItem_Click(object sender, System.EventArgs e)
 {
  AddItemToBasket(selectedProduct, selectedQuantity)
 }
 public void AddItemToBasket(int ProductID, int Quantity)
 {
  // code to add the item to the basket
 }


Internet Browser User Interfaces
1.实现自定义的显示错误页,在 Global.asax实现一个自定义的全局异常句柄。
2.在提交数据前进行验证(不依赖JavaScript)。
3.自定义的控件,仅仅将需要的属性设置为公共。
4.实现控制器,封装相关逻辑,提高维护性。

posted @ 2007-12-19 19:52  I'm CY  阅读(355)  评论(0编辑  收藏  举报