摘要:学习如何为基于 .NET Framework 精简版的应用程序创建有效的用户界面引擎。
简介
在进行绝大多数应用程序设计时,首先要考虑的设计问题之一是如何实现图形用户界面 (GUI) 导航,即如何向用户显示新的信息屏幕。在传统的 PC 环境中,应用程序只为每个信息屏幕创建一个新窗体(或对话框)。
在开发人员使用 Microsoft? eMbedded Visual Basic? (eVB) 之前,这种方法一直很有效。使用 Microsoft? eMbedded Visual Basic? (eVB) 后,如果应用程序中包含很多窗体,则很快会将宝贵的内存资源用尽;如果在所有窗体中都需要使用菜单,则最终不得不复制大段代码以保持行为的一致性。
为解决这一问题,许多 eVB 开发人员选择在单个窗体中使用多个框架。开发人员要使用 Microsoft? .NET Framework 精简版,应再次检查生成有效用户界面 (UI) 引擎(未与使用此引擎的应用程序紧密耦合)的方法。
限制资源的使用
使用现今的计算机,桌面应用程序开发人员几乎无须顾虑内存的使用情况。而智能设备开发人员则不得不考虑这个问题。要尽量减少内存的使用,方法之一是尽可能重复使用类,尤其是 Forms 类。
例如,让我们来看看可以在当地录像带出租商店找到的电影查询应用程序。我们假设此应用程序启动时将显示所有电影的列表。不可否认,这将是一个庞大的列表,而且是一个很糟糕的应用程序设计,但出于演示目的我们假设它是合理的。
现在,如果某位用户选择了一部电影的名称,应用程序将显示另一个窗体,其中显示这部电影的详细信息(包括演员)和另一个类似的推荐电影列表(“如果您喜欢这部电影,那么可能也会喜欢 . . . ”)。

图 1:屏幕流程图
在流程图中,我们假设用户既可以从新列表中选择电影,仅将有关这部电影的新信息重新填充到当前窗体中;也可以选择演员。如果选择演员,可以立即显示演员的信息,包括合演的明星以及另一个电影列表,这次将显示列出此演员出演的电影列表。
很显然,如果查看的每个窗体都是带有所有关联数据的新窗体实例,则应用程序将很快占用大量内存。而且,Windows CE 设备的处理器性能通常都赶不上台式计算机的性能,使用新数据加载每个窗体将生成一个缓慢、响应迟钝且用户不友好的应用程序。