Можно ли разработать одно и то же приложение для Windows Phone 7 и Windows Mobile 6.x без особых дополнительных усилий? - PullRequest
1 голос
/ 22 декабря 2011

Мне нужно разработать приложение для Windows Mobile 6.x и версии 7, и мой набор навыков .net и веб-интерфейс. Поскольку версия 7 не имеет обратной совместимости, я думаю, что у меня будет много дубликатов.

Я взглянул на Rhomobile и Phonegap, но последний не поддерживает Windows Mobile 6.x, а первый потребует знания рубина.

Я подумал, что мог бы иметь как можно больше логики в библиотеках классов, а затем «включать в качестве ссылки» классы в проекты, чтобы их можно было компилировать для конкретной платформы. Я чувствую, что в этом случае у меня может быть много логики стиля #if PHONE7, а также код пользовательского интерфейса должен быть реализован для каждой платформы.

Какой самый эффективный способ решить эту проблему?

1 Ответ

2 голосов
/ 22 декабря 2011

Если вы можете отделить пользовательский интерфейс от логики, вы можете начать многоцелевой. Другое соображение - это время работы телефона (Silverlight 4?) И «песочница» телефона, дающая вам ограничения.

MVVM Light многоцелевой и с открытым исходным кодом, вы можете использовать это, чтобы посмотреть, как они справились с этим:

http://mvvmlight.codeplex.com/SourceControl/changeset/view/d546dc69fffd

Короче говоря, ваша идея "добавить как ссылку" в значительной степени является ее основой.

Другой вопрос, который нужно задать: подойдет ли приложение на обе платформы? Стиль использования от мобильного до метро - большое изменение. Люди ожидают, что вещи ведут себя определенным образом и выглядят определенным образом в метро. Если вы можете ограничить это пользовательским интерфейсом и использовать как можно больше логики, тогда все будет в порядке. Но наступит момент, когда делиться не стоит, его просто будет проще скопировать.

Извините за отсутствие подробностей в этом ответе, если честно, он сильно зависит от приложения. Лично я бы начал с отдельных приложений и рефакторинга по мере появления общностей, используя комбинацию связанных файлов кода и хэш-определений.

Милый трюк ... вы всегда можете сделать классы частичными и иметь частичный кодовый файл для каждого хеша:

MyBusinessClass.CF.cs
MyBusinessClass.Silverlight.cs
...