2012-09-27 3 views
8

Мне нужно разработать приложение стиля Metro, используя C# и XAML, которые должны работать на устройствах Windows RT и полной ОС Windows 8. Поэтому мне разрешено использовать только WinRT без каких-либо сборок .net. Я прочитал этот вопросWindows RT и C#

Microsoft Surface Tablet: Writing Apps for Both Devices?

и это очень полезный пост: http://blogs.msdn.com/b/jasonz/archive/2012/06/12/what-you-need-to-know-about-developing-for-windows-on-arm-woa.aspx, но я стил есть вопрос: Когда я даже создать пустой проект Metro Style Application У меня есть .NET asseblies для стиля метро. Удаляю ли я их самостоятельно или делаю что-то не так? И что мне делать, если нужно использовать что-то вроде Prism fw, перенесенного в WinRT или mvvvm light? Разрешают ли мне разрабатывать приложение для WOA только на родном WinRT? Эти моменты для меня не ясны.

Можете ли вы объяснить мне, какая разница между Windows RT и Windows на ARM Нужно ли использовать только WinRT (без .net) для ОС WindowsRT?

Надеюсь, вы можете мне помочь.

ответ

14

Позвольте мне ответить вам самым непосредственным образом. Если вы откроете проект Blank XAML/C# Windows Store. Этот проект будет работать в Windows RT (ARM) и Windows 8 (x86/x64). Это потому, что он создан для этого. Просто потому, что у вас есть то, что похоже на .NET Framework, не волнуйтесь - вы пишете кросс-платформенное приложение.

Теперь, для оговорок. Вы сделали этот ответ легким из-за C#. Разработчики CPP не имеют такой же гарантии, потому что есть вещи, которые они могут сделать, чтобы нарушить эту совместимость. Не так в C#. Если код, который вы пишете, компилируется в «Любой процессор», то то, что я говорю, является правильным.

Если вы представляете что-то (например, управление Bing Maps), которое требует, чтобы ваша сборка изменилась с «Любой процессор» на что-то еще. В Windows Store вы можете отправить три версии вашего приложения под тем же именем - по одному для каждой платформы - и пользователь никогда не узнает, что их больше одного.

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

+0

Спасибо. Именно этот ответ, который я искал, когда я спросил –

+1

Еще одна вещь, поскольку PINVOKE по-прежнему доступен для управляемых разработчиков в WinRT, разработчикам C# по-прежнему невозможно вызвать несовместимость ARM, но им приходится много работать, чтобы это сделать. –

3

Не совсем правильно говорить, что вы не можете использовать инфраструктуру .net в приложениях стиля Metro. Вернее, есть версия .net framework, которая доступна только для приложений метро. Если ваши сборки не были построены с этой версией .net framework, они не будут работать для метро. Эта версия .net framework будет работать на .86 и в руке. Существует также версия MVVM Light для приложений для метро. Download it here. Подробнее см. В разделе here.

Независимо от того, используете ли вы JavaScript, C++, Visual Basic или C#, если вы создали приложение в стиле Metro, что цели x86/x64, то вы уже знаете, как построить тот, который предназначается для ARM , Вы используете те же шаблоны проектов стиля Metro , которые обеспечивают отправную точку для построения приложения.

Edit: Как Джерри указывает, возможно, придется скомпилировать приложение против различных версий библиотек, если они написаны на C++, но это вопрос наличия отдельной сборки вместо того, чтобы сделать дополнительное развитие.

+0

Спасибо за ответ. Возможно, я ошибся, когда написал «Устройства Windows RT (я имею в виду WOA)». Да, я могу использовать .NET-инфраструктуру в разработке приложений для метро, ​​но как я могу быть уверен, что мое приложение будет работать в ОС Windows RT? Мне нужно не только приложение стиля метро, ​​которое будет работать на .86 и ARM с Windows 8. Будет ли доступна любая версия .net-инфраструктуры в ОС Windows RT? –

+0

Мне нужно не просто приложение стиля метро, ​​которое будет работать на .86 и ARM с Windows 8, но Windows RT. –

+0

@Bogdan Dudnik Современные приложения переносимы, он будет работать как на –

1

Если вы создаете библиотеки библиотек для портативных классов, вы можете использовать их для приложений на рабочем столе, в метро и в телефонах (и xbox тоже). Вы можете выбрать это при запуске библиотеки или в свойствах проекта. Это упрощает создание кросс-платформенных приложений в экосистеме mircrosoft.

Смежные вопросы