在开发人员使用 microsoft? embedded visual basic? (evb) 之前,这种方法一直很有效.使用 microsoft? embedded visual basic? (evb) 后,如果应用程序中包含很多窗体,则很快会将宝贵的内存资源用尽;如果在所有窗体中都需要使用菜单,则最终不得不复制大段代码以保持行为的一致性.
为解决这一问题,许多 evb 开发人员选择在单个窗体中使用多个框架.开发人员要使用 microsoft? .net framework 精简版,应再次检查生成有效用户界面 (ui) 引擎(未与使用此引擎的应用程序紧密耦合)的方法.
限制资源的使用
使用现今的计算机,桌面应用程序开发人员几乎无须顾虑内存的使用情况.而智能设备开发人员则不得不考虑这个问题.要尽量减少内存的使用,方法之一是尽可能重复使用类,尤其是 forms 类.例如,让我们来看看可以在当地录像带出租商店找到的电影查询应用程序.我们假设此应用程序启动时将显示所有电影的列表.不可否认,这将是一个庞大的列表,而且是一个很糟糕的应用程序设计,但出于演示目的我们假设它是合理的.
现在,如果某位用户选择了一部电影的名称,应用程序将显示另一个窗体,其中显示这部电影的详细信息(包括演员)与另一个类似的推荐电影列表(“如果您喜欢这部电影,那么可能也会喜欢 . . . ”).
图 1:屏幕流程图在流程图中,我们假设用户既可以从新列表中选择电影,仅将有关这部电影的新信息重新填充到当前窗体中;也可以选择演员.如果选择演员,可以立即显示演员的信息,包括合演的明星以及另一个电影列表,这次将显示列出此演员出演的电影列表.
很显然,如果查看的每个窗体都是带有所有关联数据的新窗体实例,则应用程序将很快占用大量内存.而且,windows ce 设备的处理器性能通常都赶不上台式计算机的性能,使用新数据加载每个窗体将生成一个缓慢.响应迟钝且用户不友好的应用程序.
堆栈与缓存 现在,我们将深入了解另一个对用户有益的功能,即查看上一个窗体,它与浏览器中的“后退”按钮功能类似.这就意味着,应用程序必须“记住”用户的位置. 在某些应用程序中实现此操作比较简单,因为窗体的“目标”与“起始”路径很有限,可通过硬编码来实现.对于我们的应用程序,您可以看到这些窗体显示给用户的顺序几乎是随机的(参见图 1).... 下一页