Я также занимаюсь кросс-платформенной разработкой с использованием моно и, как и вы, и многие другие сталкиваются с проблемой того, что делать с пользовательским интерфейсом и другой базовой аппаратной интеграцией.
Я решил, что не хочу быть во власти еще одной сторонней структуры (моно достаточно) и исследовал решение, которое я мог бы построить и поддерживать. Новый шаблон MVVM вместе с Expression Blend действительно классный, но вскоре вы оказались застрявшим, когда дело дошло до кросс-платформенной разработки. Модели MVC an MVP также, похоже, не соответствовали мне. Наконец, выстроились по шаблону PM и расширили его до PMH, где H для аппаратного обеспечения. Для достижения того, что мне было нужно, я должен был абстрагировать основные виджеты (кнопки, панели, текстовые поля) на базовый уровень платформы для каждого типа устройства. Мой уровень платформы составляет около 1% от моей базы кода и позволяет мне скрыть приложение для каждого устройства, на которое я нацелен.
Для моего решения WP7 я использую почти любой HTML только около 25 строк, что достаточно для инициализации приложения и главной страницы. Остальная часть пользовательского интерфейса объединена программно так же, как и в WinForms. На WP7 я все еще использую элемент управления Pivot, поскольку он действительно хорош и моделирует аналогичный элемент управления для использования на Android/iPhone. Хотя он не будет на 100% одинаковым, он будет очень похожим и по-прежнему будет использовать один и тот же движок навигации в моем основном коде.
Я еще не готов к разработке, но до сих пор я очень доволен своим прогрессом. Я разрабатываю пользовательский интерфейс для приложения Windows в течение примерно 20 лет, и я никогда не использую инструменты построения интерфейса, поскольку я считаю, что они никогда не дают мне то, что я хочу, и действительно тратят свое время (Blend довольно круто, хотя), а также создают потрясающий код bloat особенно в Blend.