如果您计划将 Windows Mobile 6.5 与 .NET Compact Framework 3.5 SP1(在 Visual Studio 2008 中)一起使用,最常见的方法是使用 Windows 窗体(Compact)。如果您打算使用 C++,则可以忽略此答案的其余部分,因为我不确定 C++ 的最佳实践是什么。
.NET CF 的 Windows 窗体类似于完整的框架 Windows 窗体,但在功能和开箱即用工具方面受到更多限制。对于旧版 Windows Mobile 平台,确实没有现成的 WPF/Silverlight/MVVM 选项,但如果你有勇气的话,你可以尝试推出自己的 MVVM 类型框架,但我可能不建议这样,因为 MVVM 与 WPF 配合得更好或 Silverlight,并且可能无法映射到 Windows 窗体以及其他选项。
有几个 MVC 或 MVP 示例或 .NET CF Windows 窗体的基本框架,但我还没有看到一个功能齐全的。您可以尝试 Microsoft 的模式与实践团队为 Windows Mobile 提供的“智能客户端软件工厂”,但我不确定我是否会走这条路,因为它可能过于复杂。在 Google 上搜索“Windows Mobile MVC 或 MVP”。很多时候,MVC/MVP 示例只显示单个屏幕,这并没有让您了解作者打算如何处理应用程序屏幕转换、全局事件等。
我可能会建议在 MVC 上使用 MVP 模式,因为 MVP 与 Windows 窗体配合得很好。MVC 使用 Forms 可能会有点尴尬,除非你非常小心。这是我在 .NET CF 中使用 MVP 在 Compact Framework 上找到的多屏应用程序的最佳示例:
https://github.com/derickbailey/appcontroller.cf
这是一个很好的例子,因为它使用了现代最佳实践,如 IoC 和 UI 事件聚合。这个例子的另一个好处是它为良好的单元测试和 UI 开发的良好实践奠定了基础。