Насколько просто перенести приложение Windows Phone 7 в Metro на планшете с Windows 8? - PullRequest
10 голосов
/ 15 сентября 2011

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

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

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

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

Ответы [ 6 ]

20 голосов
/ 15 сентября 2011

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

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

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

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

  • оба используют XAML
  • оба могут использовать одно и то же программированиеязык для кода (вероятно, C #)
  • дизайн приложений в стиле "metro" на Win8 был вдохновлен Metro (язык разработки WP7)

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

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

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

4 голосов
/ 15 сентября 2011

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

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

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

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

1 голос
/ 16 сентября 2011

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

1 голос
/ 15 сентября 2011

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

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

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

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

0 голосов
/ 18 октября 2012

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

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

WinRT, к сожалению, не является фреймворком .Net.И это WP7 & SL.

Сказав, что, если WP7 <-> W8 - 7, WP8 <-> - 9,9!

Кстати, вы НИКОГДА не получите 100%,Разные форм-факторы требуют, как минимум, разные XAML.

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

...