2013-08-10 2 views
1

Я только начинаю разрабатывать приложения для Windows Phone 8, и у меня есть несколько вопросов о различных средах выполнения, работающих на таком устройстве. Я, вероятно, не правильно ищу веб-сайт, так как не могу найти ответы, которые я полностью понимаю или даю детали, которые мне нужны (если у вас есть какие-либо ссылки, любой обмен очень ценен!).Windows Phone 8 - Rational и CLR Runtime

1) Исходя из рабочего стола C++ и C#, мне бы очень хотелось узнать, какие «родные» среды исполнения и CLR на самом деле работают на ОС Windows Phone 8. Например, наиболее распространенная среда выполнения C++ на настольных компьютерах - это MSVCR, связанная с компилятором Visual C++, или полномасштабная реализация CLR .NET framework, многие из которых ссылаются на приложения C#. В системе Windows CE есть mscorlib или. .NET Compact Framework. Для меня это абсолютно ясно.

Но, насколько я понял, ОС Windows Phone 8 работает на WinRT и CoreCLR (о чем я только что слышал, когда дело доходит до Silverlight). Правильно ли это утверждение?

2) Если мое первое предположение верно: у меня есть приложение C#, которое P/вызывает родную C++ DLL - код для обоих из них переносим между Dekstop-Windows и WindowsCE (где C++ DLL скомпилируется для x86/x64/ARM, в зависимости от целевой системы). Смогу ли я как-то просто «нацелить» WP8 и запустить это приложение на таком устройстве без серьезных изменений кода? Или должен быть дополнительный порт для WP8? Не зная больше о среде выполнения системы, я действительно не могу ответить на этот вопрос :(

Я не могу полностью понять совпадения и различия между всеми этими мирами, тем более, что я действительно мало знаю о WinRT/CoreCLR и действительно ли они играют роль в Windows Phone 8 или нет. Я знаю, что это все совершенно разные технологии, не волнуйтесь, но я хотел бы знать, где они все подходят для всей картины. Иногда я чувствую себя разбитым всех различных механизмов и технологий Microsoft бросает там, я надеюсь, что это понятно.

Спасибо за любые ответы!

ответ

4

Microsoft показывает, ве Несколько сведений о самой ОС. Помимо того, что это был торговый секрет, это было бы скорее самопровозглашением, поскольку это быстро развивается на мобильных платформах. Вы должны сосредоточиться только на api, который предоставляется, это гарантирует, что вы получите сертификацию магазина и надеетесь, что ваше приложение все еще работает на более поздних телефонных выпусках.

WinRT - это api, а также небольшой, но короткий список собственных функций api. Вы действительно получите CoreCLR, полученный от Silverlight, обрезанной версии рабочей среды CLR. Он включает в себя проекцию языка, которая упрощает использование WinRT из управляемого приложения.

P/Invoke is не поддерживается. На практике это не проблема, помимо переносимости, Phone8 поддерживает разработку собственных библиотек C++, которые выставляют свои классы через WinRT. Используется на любом языке, который можно использовать в среде WinRT, например, на C#, VB.NET, C++ и Javascript. Вы можете запустить такую ​​библиотеку, используя шаблон проекта компонента C++, Windows Phone, Windows Phone Runtime. В противном случае вы должны соблюдать те же ограничения на api.

+0

Спасибо за этот ответ, это действительно помогло! Я также получил некоторую другую информацию (но в основном то, что вы уже сказали нам), что WinRT является основным программным api для WP8 (который использует особый вкус COM), что он находится непосредственно поверх NT api, например WinAPI, для для которого разработчику доступно только небольшое подмножество. Кроме того, для пользовательского интерфейса используется своего рода преемник WPF, «Windows Runtime XAML Framework». C++/CX рекомендуется MS, но CoreCLR также может использовать эти фреймворки. – PuerNoctis