2011-01-20 6 views
12

2 preguntas:Windows Phone 7 el apoyo de código nativo

  • Puede alguien decirme si no administrado código C++ se ser apoyado en futuras versiones del sistema operativo Phone 7 para todos los desarrolladores?
  • ¿Cuáles son los motivos de MS para no que admiten el código de C++ no administrado?
+2

"¿Alguien puede decirme si el código C++ no administrado será compatible en versiones futuras de Phone 7 OS?" Espere un minuto hasta que active mi bola de cristal ... En realidad, ahora se admite el código nativo en Win Phone 7, solo tiene que ser un OEM. –

+0

Casi duplicado de http://stackoverflow.com/questions/4539876/is-it-possible-to-program-for-windows-phone-7-in-standard-c-only/4540330#4540330 –

+2

@David, pregunta actualización para ti. Supongo que si miras mejor a tu bola de cristal verás que no soy Samsung. – watbywbarif

Respuesta

10

Esta respuesta es puramente especulativa, pero creo que la mayoría de los que han respondido a esta pregunta no entienden el punto por una posibilidad remota. Supongamos por un momento que esta no es una decisión vengativa de Microsoft, sino una decisión de ingeniería muy bien pensada que no tiene absolutamente nada que ver con restricciones de contenido o de otro modo. Esos problemas son solo una ventaja para MS

Microsoft ingresa al mercado de los dispositivos móviles, esta vez realmente parece. Muy pronto habrá decenas de millones de teléfonos Nokia que se enviarán con Windows Phone y lo que sea que obtengan además de eso, será una ganga. Windows Phone aún no ha encontrado su hogar.

En el próximo año o dos, los teléfonos, las tabletas y las computadoras portátiles finalmente comenzarán a converger en un solo dispositivo. La gente llevará su teléfono en sus bolsillos, pero ese teléfono también será la unidad de la CPU de su PC. Eso significa que simplemente sentándose cerca de un monitor HDMI inalámbrico y conectando un teclado y mouse a través de USB inalámbrico (o bluetooth si no tenemos mala suerte), el usuario tendrá su PC completa con ellos en todo momento. Las tabletas se convertirán solo en una pantalla táctil alimentada por batería que se conecta a la PC en su bolsillo.

Por lo tanto, todo el software escrito para Windows Phone debe poder ejecutarse sin modificaciones en una PC, una tableta y/o un teléfono. Esto se debe a que existe una gran posibilidad de que la PC que esté ejecutando sea x86 o ARM que ejecute Windows 8. Cuando la PC esté en su bolsillo, la interfaz de usuario que verá será la GUI de Windows Phone. Cuando esté conectado a un monitor, verá la interfaz de cinta. Pero lo más probable es que el SO subyacente sea Windows 8, no el Windows CE que se usa actualmente.

Sobre la base de todo esto, la única forma en que Microsoft puede asegurar que los desarrolladores que invierten en la producción de aplicaciones para el mercado de Windows Mobile no será atornillada y que no haya un cortocircuito entre los usuarios de dispositivos Windows Mobile cuando la plataforma más reciente viene alrededor es para garantizar que haya un sistema estándar para ejecutar aplicaciones en todos estos procesadores.

Incluso ahora, escribir para Honeycomb es una pesadilla ya que si desarrolla código nativo, debe admitir tanto ARM como x86 y no hay un mecanismo de soporte real para ello. La única solución es desarrollar, empaquetar y enviar dos versiones. Escribir aplicaciones para iDevices es un poco más fácil ya que no hay superposición. x86 en el escritorio, ARM en el dispositivo. Si tiene que usar un código nativo en el dispositivo, ARM es todo lo que necesita. Incluso entonces, hay un gran soporte binario tanto en el dispositivo como en el escritorio, así que esto no será un problema, excepto cuando se optimice.

Al final, la decisión de Microsoft de apegarse estrictamente a .NET es probablemente una buena decisión. Una vez que tengan un montón de teléfonos Nokia en el mercado y las cosas se hayan solucionado un poco, el código nativo podría ser una posibilidad real.

+7

Su afirmación sobre el soporte del código nativo para honeycomb es una pesadilla es completamente incorrecta. Escribo código C++ y el estándar NDK de Android te permite compilar para ARM y x86 en el mismo APK e implementación. Lo hacemos todos los días, ¡es muy fácil, de hecho! – rbgrn

+0

¿Cómo puede ser una pesadilla? El sistema de compilación construye ambos binarios para usted y ambos van en un solo paquete que usted libera. Ni siquiera tienes que pensar en eso. – olafure

+0

Wel dijo. Simplemente no estoy de acuerdo con la tableta como dispositivo de entrada/salida. Seguro habrá combinaciones como esa, pero espero sinceramente que la PC mantenga su lugar como una plataforma de desarrollo y siempre tendrá más potencia y menos restricciones. – Zibri

9

Estas respuestas son para la perspectiva del desarrollo de aplicaciones. Los OEM pueden escribir código nativo hoy, ya que así es como crean los controladores, pero eso no está abierto o no está disponible para la mayoría de los desarrolladores y, por lo tanto, no sirve para la mayoría.

Para # 1 Microsoft no ha hecho ningún anuncio, por lo que solo Microsoft sabe la respuesta y no lo dicen.

Para # 2 se trata de la seguridad del código y la estabilidad general de la plataforma Es muy difícil descifrar el código nativo y no desean que su aplicación afecte a otras aplicaciones o a la plataforma en sí. La idea general es que debe usar Silverlight o XNA para el desarrollo de aplicaciones, así que eso es lo que exponen.

+1

Eso suena razonable, pero muchas aplicaciones complejas son muy difíciles de reescribir en Silverlight. Creo que terminarán con muchas aplicaciones livianas, pero omitirán algunas importantes que no son triviales para el puerto. – watbywbarif

+1

# 2 Me gustaría ir con Seguridad y estabilidad como el subproducto más notable de esta opción. Esto es coherente con el mensaje de Microsoft a través de CTP de la intención de ofrecer un producto robusto y confiable. –

4

EDITAR, finalmente: para WP7 el código no administrado nunca será compatible, pero en Windows Phone 8 - sí lo hará! Ellos lo acaban de anunciar. Aplicaciones nativas, C/C++, portabilidad iOS/Android y uso compartido de código, DirectX. Sin embargo, necesitará Visual Studio 2012 y Windows 8 para el desarrollo de WP8. Parece que VS2010 no está obteniendo el WinRT SDK requerido.

La interfaz de usuario no de juego, sin embargo, seguirá basándose en XAML. Win32 API no será compatible. Están impulsando un modelo con capa de interfaz de usuario administrada y un middleware nativo debajo.

SDK estará disponible a finales de este verano.

Por el bien de la posteridad, aquí está la respuesta pre-06/20/2012:


  1. Microsoft probablemente pueda.
  2. Para garantizar la cercanía de la plataforma, como medio para lograr la estabilidad y la consistencia de la interfaz de usuario. Para hacer cumplir el aislamiento de la aplicación. Además, para hacer jailbreak/rooting más difícil.

EDIT: si quieres un SDK nativo en WP7, como yo, por favor vaya firmar this petition y/o that petition. ¡Gracias!

EDITAR: vea this.

EDITAR: también this. Todavía no es oficial, pero este rumor mueve aún más el marco de tiempo para el soporte de aplicaciones nativas, al próximo lanzamiento de Tango.

+2

¡Incluso MS puede no ser capaz de responder Q1! –

+0

¿por qué sería mucho más difícil hacer jailbreak del teléfono de esta manera? No tengo experiencia en estas técnicas. – watbywbarif

+0

La explotación de vulnerabilidades en el código del sistema es mucho, mucho más fácil desde el mundo del código nativo. El código administrado se llama "administrado" por un motivo. –

4

Los teléfonos Windows no llevarán a ninguna parte con soporte nativo. Los juegos y otras aplicaciones más intensivas impulsan las ventas. Android se vio obligado a volar la tapa de su NDK para apoyar a la industria de los juegos. En cuanto a soportar procesadores múltiples, etc., aquellos de nosotros que hacemos este tipo de trabajo lo hemos estado haciendo durante mucho tiempo, así que no hay problema. Ya manejando Intel y ARM sin problemas con nuestros sistemas.

+0

Totalmente de acuerdo. Somos una empresa de juegos para 4 personas y no es un problema dar soporte a x64/ARM/PPC/MIPS. Simplemente recompila tu código C/C++ con un compilador adecuado. – montonero

+2

Entonces Greg, ¿quisiste decir "... ir a ninguna parte SIN soporte nativo"? En ese caso, estoy de acuerdo con usted, hay muchos frameworks de juegos multiplataforma en C++, pero actualmente no pueden apuntar al WP7. – Zmaster

1

Creo que MS admitirá el desarrollo nativo como C/C++. De Verdad. Seriamente.

Porque, para los usuarios finales, una de las aplicaciones más populares es el juego. Y la mayoría de los códigos de juegos se basan en C/C++. Los códigos basados ​​en JS o C# existen, pero son insignificantes desde la perspectiva industrial. Considera a los grandes jugadores en el campo de juego como Unreal o EA. Hicieron una gran inversión en la base de código C/C++. No lo abandonarán. En otras palabras, MS no tiene poder para obligarlos a gastar dinero para .NET. Incluso el desarrollo de Xbox360 ofrece desarrollo C/C++. Por eso.

Y las plataformas líderes como iOS/Android son compatibles con el desarrollo nativo. WP no puede soportar la situación sin ningún juego de grandes jugadores. MS realmente quiere juegos 3rd Path, y ofrecer código nativo es la única forma de obtenerlos.

Por supuesto, esto se puede aplicar a otras aplicaciones que no son juegos, pero los juegos son los más importantes. Cuando C#/XNA acaba de salir, no hay biblioteca. La gente tenía que hacer todo por sí misma. Ahora hay un poco más, pero aún sin sentido para los juegos profesionales.

Si MS no ofrece un entorno nativo, simplemente no vaya allí. MS quiere hacer que los desarrolladores usen el código .NET administrado, pero .NET tiene demasiadas limitaciones que se pueden resolver solo con código no administrado.

La única pregunta es solo cuando apoyará el desarrollo nativo de MS.