Насколько легко переносить приложение Windows Phone 7 на Metro на планшет Windows 8?

Я знаю, что Metro на обеих платформах имеет общий "внешний вид" и что WinRt использует XAMLand С# (или VB.NET), например Silverlight на Windows Phone 7.

Однако я также знаю, что WinRT не Silverlight.

Итак, что такое процесс создания приложения, которое будет работать как на планшете Windows 8, так и на Windows 7 (или 7.5)?

Насколько близок WinRt к Silverlight?

Ответ 1

Несмотря на то, что некоторые люди в Microsoft заявляют, что это потребует изменения пары строк кода...

Единственным возможным ответом на то, насколько сложно будет переносить приложение, является IT DEPENDS!

  • Что делает приложение для телефона?
  • Какая часть этих функций также доступна на Win8?
  • Что делать, если на Win8 невозможно сделать то же самое?
  • Что нужно добавить (если угодно) в версию Win8?
  • Что вы собираетесь делать с дополнительной экранной недвижимостью, имеющейся у вас на Win8, по сравнению с телефоном?
  • Используете ли вы элементы управления или элементы интерфейса, которые не существуют на другом?
  • и т.д.,....

Параллельны таковы:

  • оба используют XAML
  • оба могут использовать один и тот же язык программирования для кода (возможно, С#)
  • дизайн приложений "стиля метро" на Win8 был ВДОХНОВЕН Метро (язык проектирования WP7)

кроме того, что это будет зависеть от приложения.

Вы не можете создать приложение, которое будет работать на обоих. По крайней мере, вам нужно будет перекомпилировать, так как для двух платформ потребуется настроить разные версии .NET-инфраструктуры.

Update:
Microsoft предоставила руководство по созданию такого порта на ранней стадии . Он включает в себя некоторые пространства имен и сопоставления API.

Ответ 2

Глядя на API и игнорируя различия в пользовательском опыте, я бы сказал: не сложно, но не тривиально. Или, иначе, сложнее, чем переход от WPF к Silverlight, но менее трудный, чем WinForms для WPF.

  • Большинство элементов управления WP/Silverlight (минус pivot/panorama) существуют, но они существуют другое пространство имен
  • Другие функции, такие как взаимодействие между приложениями и управление состоянием, работают совершенно по-другому.

Ответ 3

Самая большая потенциальная проблема, которую я испытал, - это то, что вы решили разработать с помощью XNA/Silverlight на Windows Phone. В этом случае вам придется либо полностью переписать заявку, либо попробовать замену XNA, такую ​​как MonoGame. Пройдя этот маршрут, я могу с радостью сказать, что, по крайней мере, на этом этапе MonoGame, по-видимому, поддерживает не менее 90% функциональности XNA, и из-за тяжелой работы нескольких групп разработчиков и отдельных лиц сейчас относительно легко порт через приложение без слишком больших фундаментальных изменений.

Вот ссылка на сайт MonoGames http://monogame.codeplex.com/

Ответ 4

Если вы знакомы с архитектурой MVVM, вы можете думать об этом следующим образом:

  • Оба приложения могут использовать одну и ту же модель представления (особенно если вы сделали выбор дизайна, не позволяя модели представления ничего знать о представлении).
  • Вы создаете представление для ОС, которое у вас уже есть для Windows Phone, а другое для Windows 8 и привязывается к той же модели представления.
  • Вы загружаете представления соответствующим образом, используя ваш выбор директив-компиляторов, конфигурацию приложения, отдельные оболочки/загрузочные файлы и т.д.
  • Возможно, вам понадобится ввести некоторые директивы компилятора для вашей модели представлений и других библиотек без просмотра, если вы используете что-то конкретное для платформы.

Следуя этим директивам, у вас может быть очень специфичный для платформы пользовательский интерфейс, но очень унифицированная база кода.

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

Ответ 6

Этот ответ тот же для WP7 и SL.

По шкале от одного до десяти это в лучшем случае шесть или семь.

WinRT - это не инфраструктура .Net, к сожалению. И это WP7 и SL.

Сказав, что если WP7 ↔ W8 вл етс 7, WP8 ↔ вл етс 9.9!

Вы никогда не получите 100%, кстати. Для разных форм-факторов требуется, по меньшей мере, другой XAML.

Просто помните, дизайн с MVVM!