一种新的移动N层体系结构(第4部分)
这次,我们更密切的关注用户界面侧的变化。我想说的是运用MVC模式(或其变体,MVP模式),尽管这个变化远非最近才发生(所提到的两个模式均已经存在很长一段时间),但其重要性却大大增加了。原因是自动测试,TDD,以及持续集成(continous integration)伴随着敏捷开发的理念得到了越来越多的关注。通过应用MVC模式,用户界面逻辑的测试可以独立于实际的用户界面。这个以及更为传统意义上的益处,也就是你可以用不同的“视图”(用户界面或更一般的,通道)来展示相同的用户界面逻辑,使得MVC模式成为任何现代移动软件架构中公共的部分。
如果在网络在做一些浏览,你可以很快发现很多MVC模式的实现,不过没有多少是面向Windows Mobile开发者的(尽管大多数.NET实现的迁移并不费事)。一个很好的作品是微软模式和实践团队所开发的MCSF,它包含了MVC模式的一个强壮的实现(在众多其他模式中),该实现把各种应用模块迁移到整体的.Net框架中。然而,MCSF过于强壮,它需要花费相当多的时间来学习而后才能见到成效。而且,MCSF也有点过时了,从缺少新的消息和内容更新上判断,我不怀有多大期望。
社区(我也一样)期待更简单的东西,而且在某些项目中,我已经使用了由我前任研究员MVP,Alex Yakhnin(现在已经是微软雇员) 的一个简洁明了的实现,他为此在去年秋天发表过一系列短小的博客。在这些帖子中,Alex还展示了一个解决一个非常普遍的关于构造Windows Mobile完美用户体验的问题的简单方案,也就是Form缓存处理。加载一个Form对于性能而言是一件代价昂贵的事情,因此很有必要缓存Form在内存里。
在接下来的帖子中,我将更多的讨论关于现代移动架构上变化的想法,当然会有一些代码示例,以在实践中阐明理论。