Если вы планируете использовать Windows Mobile 6.5 вместе с .NET Compact Framework 3.5 SP1 (в Visual Studio 2008), наиболее распространенным подходом является использование Windows Forms (Compact). Если вы планируете использовать C ++, вы можете проигнорировать остальную часть этого ответа, так как я не уверен, что лучшие практики для C ++.
Windows Forms для .NET CF похожа на полнофункциональную Windows Forms, но гораздо более ограничена по функциональности и готовым инструментам. Для устаревшей платформы Windows Mobile на самом деле нет доступных вариантов WPF / Silverlight / MVVM, но вы можете попробовать развернуть свою собственную структуру типов MVVM, если вы храбры, но, вероятно, я бы не советовал, поскольку MVVM лучше работает с WPF или Silverlight, и могут не отображаться на Windows Forms, а также на другие параметры.
Существует несколько примеров MVC или MVP или базовых фреймворков для .NET CF Windows Forms, но я не видел ни одного, который действительно полнофункциональный. Вы можете попробовать «Фабрику программного обеспечения интеллектуального клиента» для Windows Mobile от команды Patterns & Practices в Microsoft, но я не уверен, что выберу такой путь, поскольку он может быть слишком сложным. Поиск Google для «Windows Mobile MVC или MVP». Часто примеры MVC / MVP показывают только один экран, который не дает вам никакого представления о том, как автор собирается обрабатывать переходы экрана приложения, глобальные события и т. Д.
Я бы, вероятно, предложил шаблон MVP поверх MVC, так как MVP хорошо работает с Windows Forms. MVC может быть немного неудобно с формами, если вы не делаете это очень осторожно. Это лучший пример многоэкранного приложения на Compact Framework, использующего MVP в .NET CF:
https://github.com/derickbailey/appcontroller.cf
Это отличный пример, поскольку он использует современные передовые практики, такие как агрегация событий IoC и UI. Другим преимуществом этого примера является то, что он создает основу для хорошего модульного тестирования и передовых методов разработки пользовательского интерфейса.