2011-01-20 4 views
12

2 вопроса:Windows Phone 7 нативный код поддержки

  • Может кто-нибудь сказать мне, если неуправляемый код с ++ будет поддерживаться в будущих версиях Phone 7 OS для всех разработчиков?
  • Каковы причины MS для не поддержки неуправляемого кода на C++?
+2

«Может кто-нибудь сказать мне, будет ли неуправляемый код C++ поддерживаться в будущих версиях Phone 7 OS?» Пожалуйста, подождите минуту, пока я не запустил свой хрустальный шар. Собственно, теперь на Win Phone 7 поддерживается собственный код, вы просто должны быть OEM. –

+0

Почти дубликат http://stackoverflow.com/questions/4539876/is-it-possible-to-program-for-windows-phone-7-in-standard-c-only/4540330#4540330 –

+2

@David, вопрос обновите для вас. Я предполагаю, что если вы посмотрите лучше на свой хрустальный шар, вы увидите, что я не Samsung. – watbywbarif

ответ

10

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

Microsoft выходит на рынок мобильной связи, на этот раз для реального кажется. Довольно скоро будут отправлены десятки миллионов телефонов Nokia с использованием Windows Phone, и все, что у них получится, будет просто подлито. Windows Phone все еще не нашел своего дома.

В ближайшие год или два, телефоны, планшеты и ноутбуки, наконец, начнут конвертироваться в одно устройство. Люди будут носить свой телефон в карманах, но этот телефон также будет блоком ЦП их ПК. Это означает, что, просто сидя рядом с беспроводным монитором HDMI и подключая клавиатуру и мышь через беспроводной USB (или bluetooth, если нам все не повезло), пользователь будет иметь весь свой ПК с ними в любое время. Таблетки станут просто сенсорным экраном с батарейным питанием, который взаимодействует с ПК в кармане.

Итак, все программное обеспечение, написанное для Windows Phone, должно иметь возможность запускаться без изменений на ПК, планшете и/или телефоне. Это связано с тем, что на компьютере, на котором вы работаете, будет либо x86, либо ARM, работающая под управлением Windows 8. Когда компьютер находится в вашем кармане, пользовательский интерфейс, который вы увидите, будет графическим интерфейсом Windows Phone. Когда вы подключитесь к монитору, вы увидите интерфейс ленты. Но основная ОС, скорее всего, будет Windows 8, а не Windows CE, которая в настоящее время используется.

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

Даже сейчас писать для Honeycomb - это кошмар, поскольку, если вы разрабатываете собственный код, вы должны поддерживать как ARM, так и x86, и для этого нет реального механизма поддержки. Единственным решением является разработка, упаковка и отправка двух версий. Написание приложений для iDevices немного проще, так как нет перекрытия. x86 на рабочем столе, устройство ARM на устройстве. Если вам нужно использовать собственный код на устройстве, вам понадобится ARM. Даже тогда на обоих устройствах и на рабочем столе есть полная двоичная поддержка, поэтому это не будет проблемой, кроме как при оптимизации.

В конце концов, решение Microsoft строго придерживаться .NET, вероятно, является хорошим. Как только у них есть газиллионные телефоны Nokia на рынке, и все немного изменилось, собственный код может быть реальной возможностью.

+7

Ваше утверждение о поддержке родного кода для сотовых кошмаров совершенно неверно. Я пишу код C++, а стандартный Android NDK позволяет создавать ARM и x86 как в одном APK, так и в развертывании. Мы делаем это каждый день - это очень просто, на самом деле! – rbgrn

+0

Как это может быть кошмар? Система сборки создает для вас двоичные файлы, и они оба входят в один пакет, который вы выпускаете. Тебе даже не нужно об этом думать. – olafure

+0

Wel сказал. Я просто не согласен с планшетами в качестве устройства ввода/вывода. Там наверняка будут такие комбинации, но я искренне надеюсь, что ПК сохранит свое место в качестве платформы разработки и всегда будет иметь больше мощности и меньше ограничений. – Zibri

9

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

За # 1 Microsoft не сделала никаких объявлений, поэтому только Microsoft знает ответ, и они не говорят.

Для # 2 это все о безопасности кода и общей стабильности платформы. Очень сложно создавать собственный код песочницы, и они не хотят, чтобы ваше приложение могло влиять на другие приложения или на платформу. Общая идея заключается в том, что вы должны использовать Silverlight или XNA для разработки приложений, так что это то, что они раскрывают.

+1

Это швы разумные, но многие сложные приложения очень сложно переписать в Silverlight. Я думаю, что они получат множество легких приложений, но пропустите некоторые важные, которые не являются тривиальными для порта. – watbywbarif

+1

# 2 Я бы пошел с безопасностью и стабильностью как наиболее заметный побочный продукт этого выбора. Это согласуется с сообщением Microsoft по всему CTP о намерении предоставить надежный и надежный продукт. –

4

EDIT, наконец: для неуправляемого кода WP7 никогда не будет поддерживаться, но в Windows Phone 8 - да, это будет! Они только что объявили об этом. Нативные приложения, C/C++, переносимость iOS/Android и совместное использование кода, DirectX. Однако вам понадобится Visual Studio 2012 и Windows 8 для разработки WP8. Похоже, VS2010 не получает необходимый WinRT SDK.

Пользовательский интерфейс nongame, однако, по-прежнему будет основан на XAML. API Win32 не поддерживается. Они подталкивают модель с управляемым слоем пользовательского интерфейса и встроенным промежуточным программным обеспечением под ним.

SDK будет доступен позднее этим летом.

Ради потомства, вот до 06/20/2012 Ответ:


  1. Microsoft, вероятно, может.
  2. Для обеспечения близости платформы, как средства достижения стабильности и согласованности пользовательского интерфейса. Чтобы обеспечить изоляцию приложения. Кроме того, сделать jailbreaking/rooting труднее.

EDIT: если вы хотите родной SDK на WP7, как я, пожалуйста, перейдите подписать this petition и/или that petition. Спасибо!

EDIT: см. this.

EDIT: также this. По-прежнему не официальный, но этот слух еще больше приближает таймфрейм для поддержки родного приложения - к предстоящему выпуску Tango.

+2

Даже MS не может ответить Q1! –

+0

почему так тяжело джейлбрейк телефон таким образом? Я не имею опыта в этих методах. – watbywbarif

+0

Использование уязвимостей в системном коде намного проще, чем в собственном мире кода. Управляемый код называется «управляемым» по какой-либо причине. –

4

Телефоны с ОС Windows в никуда не будут иметь встроенную поддержку. Игры и другие более интенсивные приложения управляют продажами. Android была вынуждена снять крышку с NDK для поддержки игровой индустрии. Что касается поддержки нескольких процессоров и т. Д., Те из нас, кто делает такую ​​работу, делают это в течение долгого времени, поэтому ее не проблема. Уже работа с Intel и ARM без проблем с нашими системами.

+0

Полностью согласен. Мы играем на 4 человека, и поддержка x64/ARM/PPC/MIPS не является проблемой - вы просто перекомпилируете свой код на C/C++ с помощью соответствующего компилятора. – montonero

+2

Итак, Грег, ты имел в виду «... никуда не годишь БЕЗ отечественной поддержки»? В этом случае я согласен с вами, существует множество кросс-платформенных игровых фреймворков C++, но они не могут нацелиться на WP7 в настоящее время. – Zmaster

1

Я считаю, что MS будет поддерживать родное развитие, такое как C/C++. В самом деле. Шутки в сторону.

Потому что для конечных пользователей одним из приложений-убийцами является игра. И большинство кодов игр основаны на C/C++. Коды на основе JS или C# существуют, но не имеют смысла с точки зрения промышленности. Рассмотрим крупных игроков в игровом поле, таких как Unreal или EA. Они сделали огромные инвестиции на C/C++ codebase. Они не откажутся. Другими словами, MS не имеет силы заставить их тратить деньги на .NET. Даже разработка Xbox360 предлагает разработку C/C++. Из-за этого.

И ведущие платформы, такие как iOS/Android, поддерживают родную разработку. WP не может справиться с ситуацией без какой-либо игры от крупных игроков. MS действительно хочет игры третьего пути, и предлагать собственный код - единственный способ получить их.

Конечно, это может быть применено к другим приложениям, которые не являются игрой, но игры самые большие. Когда C#/XNA только что вышел, нет библиотеки. Люди должны были сделать все сами. Теперь есть еще немного, но все же бессмысленно для профессиональных игр.

Если MS не предложит родную среду, просто не ходите туда. MS хочет заставить разработчиков использовать управляемый код .NET, но .NET имеет слишком много ограничений, которые могут быть решены только с неуправляемым кодом.

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