Лично я считаю, что Фабрика мобильного программного обеспечения не очень радует CF.
Мы по-прежнему используем одну его часть (EventBroker) на работе, и я хотел бы даже удалить эту часть, если это возможно (поскольку она не поддерживает универсальные события, и вам необходимо преобразовать аргументы в их строгие типы из EventArgs). Родственный проект на работе использовал его для части своего пользовательского интерфейса, но пришлось его удалить из-за проблем с производительностью (еще один большой проект, хотя у него также есть и дополнительные проблемы с производительностью).
Проблема, которую я нахожу с платформой MVP, которую предлагает библиотека P & P, состоит в том, что формы и контролирует собственные докладчики вместо контролеров, владеющих формами (которые не читали «Это просто представление»: прагматичный программист?).
Это прекрасно согласуется с мантрой быстрой разработки приложений MS «Form First», но это отстой, если учесть, насколько дорогими могут быть дескрипторы окон в CE (если их много).
Мы запускаем очень большое CF-приложение на работе и развернули собственную MVC-инфраструктуру. Нетрудно свернуть свой собственный, просто убедитесь, что вы разделяете все на контроллеры, представления, бизнес-объекты и сервисы и имеете UIController, который контролирует взаимодействия между контроллерами.
На самом деле мы делаем еще один шаг и повторно используем формы / элементы управления, используя шаблон Controller-> View-> Layout.
Контроллер такой же, как обычно, представление - это объект, который настраивает макет в конкретное представление, а макет - это фактический UserControl. Затем мы поменяем их в одной форме. Это значительно уменьшает количество элементов управления Windows, которые мы используем.
Эта + инициализация всех форм при запуске означает, что мы устраняем заметную паузу, возникающую при создании новых элементов управления Windows «по требованию».
Очевидно, что делать подобные вещи действительно выгодно, только если вы запускаете большое приложение. У нас есть около 20 + различных типов просмотра, которые в общей сложности используют около 7 различных макетов. Это вредит нашей процедуре инициализации (когда мы загружаем формы при запуске) примерно на 10 секунд, но психологически большинство пользователей готовы принять такой удар при запуске, а не заметные паузы во время выполнения.
Основная проблема с библиотекой P & P в моих книгах заключается в том, что это порт FF -> CF, и из-за определенных несовместимостей и различий в производительности между двумя платформами вы теряете много полезных функций.
Кстати, эта , безусловно, самая полная статья, которую я когда-либо читал о MVC / MVP.
Для приложений Windows (для настольных ПК или CE) я бы рекомендовал использовать версию Taligent Model-View-Presenter без взаимодействий, команд и выборов (например, контроллер / докладчик выполняет всю работу).