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

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

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

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

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


person Ian Ringrose    schedule 15.09.2011    source источник


Ответы (6)


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

Единственный возможный ответ на вопрос, насколько сложно будет перенести приложение, — ЭТО ЗАВИСИТ!

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

Параллели таковы:

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

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

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

Обновление.
Корпорация Майкрософт предоставила несколько ранних версий руководство по созданию такого порта. Он включает в себя некоторые сопоставления пространств имен и API.

person Matt Lacey    schedule 15.09.2011
comment
Отличный ответ. Вы также можете найти полезной мою недавнюю публикацию в блоге, в которой подробно описывается разработка кросс-платформенного приложения Silverlight/WinRT: platform-metro-ui-winrt-and-silverlight-application/" rel="nofollow noreferrer">scottlogic.co.uk/blog/colin/2011/09/ - person ColinE; 16.09.2011

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

  • Большинство элементов управления WP/Silverlight (за исключением сводной/панорамной) существуют, но они существуют в формате другое пространство имен
  • Другие функции, такие как взаимодействие между приложениями и управление состоянием, работают совершенно по-другому.
person Richard Szalay    schedule 15.09.2011
comment
Я думаю, что переход от WPF к Silverlight на самом деле отличается. Было много других функций WPF, которые полностью не поддерживались в Silverlight (например, расширяемые расширения разметки) — по сравнению с этим корректировка имен пространств имен и методов является тривиальным обходным решением. - person Pavel Minaev; 15.09.2011
comment
Я не говорю, что для переноса не требуется никаких усилий или что набор функций соответствует 100%. Я только говорю, что скачок от WPF к Silverlight был намного большим с точки зрения того, сколько отсутствующих функций нужно было найти обходными путями. - person Pavel Minaev; 15.09.2011

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

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

person RobCurr    schedule 18.10.2012

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

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

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

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

person Murven    schedule 15.09.2011

Вы можете проверить http://msdn.microsoft.com/en-us/library/windows/apps/br229571(v=VS.85).aspx и посмотрите, поможет ли это.

person Jay Shrestha    schedule 16.09.2011

Этот ответ одинаков для WP7 и SL.

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

К сожалению, WinRT — это не среда .Net. И это WP7 и SL.

При этом, если WP7 ‹-> W8 — это 7, то WP8 ‹-> — это 9,9!

Вы НИКОГДА не получите 100%, кстати. Для разных форм-факторов нужен как минимум разный XAML.

Просто помните, проектируйте с MVVM!

person Jerry Nixon    schedule 18.10.2012