¿Admitirá Google Android alguna vez .NET?

Ahora que el G1 con el sistema operativo Android de Google ya está disponible (pronto), ¿la plataforma Android alguna vez admitirá .Net?

Actualización : Desde que escribí esta respuesta hace dos años, producimos Mono para que se ejecute en Android. El trabajo incluyó algunos pasos: trasladar Mono a Android, integrarlo con Visual Studio, crear complementos para MonoDevelop en Mac y Windows y exponer las API de Android de Java a lenguajes .NET. Esto ahora está disponible en http://monodroid.net

Mono en Android se basa en el tiempo de ejecución de Mono 2.10 y su perfil predeterminado es 4.0 con el comstackdor C # 4.0 y utiliza el nuevo motor de recolección de basura SGen de Mono, así como nuestro nuevo sistema de recolección de basura distribuido que realiza GC en Java y Mono.


Los enlaces a continuación reflejan Mono en Android desde enero de 2009, los he guardado para el contexto histórico

Mono ahora funciona en Android gracias al trabajo de Koushik Dutta y Marc Crichton.

Puede ver un video que se ejecuta aquí: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html

Y puede obtener las instrucciones para construir Mono usted mismo aquí: http://www.koushikdutta.com/2009/01/building-mono-for-android.html

Puede obtener un punto de referencia comparando el JIT de Mono con el intérprete de Dalvik aquí: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html

Y, por supuesto, puede obtener una imagen preconfigurada con Mono aquí (vaya a la parte inferior de la publicación para obtener detalles sobre cómo usarla): http://www.koushikdutta.com/2009/01/building-mono-for- android.html

Sí, será posible y no será tan difícil. Para empezar, todo lo que se necesita en este punto es algún tipo de convertidor que convierta a MSIL en un bytecode de Dalvik . Como ambos formatos son de código abierto y están bien documentados, no habrá ningún problema.

Entonces, escribir aplicaciones de Android en C # o VB.NET será posible, la pregunta es cuánto de las bibliotecas estándar de .NET Framework serán compatibles. Pero ese es otro problema.

Oscar Reyes escribió:

Estoy bastante seguro de que si google le da CUALQUIER interés en .net, ellos habrían diseñado algo mientras Android estaba en las primeras etapas, no ahora cuando están en etapas de producción. No me refiero a que no sea posible, lo que estoy diciendo es que no están interesados. Tal vez en mmm hhhh 10 años.

En realidad, lo que ya han diseñado es muy compatible con Java y .NET

No pueden hacer todo a la vez, pero si observa Android SDK, hay una herramienta llamada dx . Esta herramienta convierte el bytecode de Java en bytecode de Dalvik, es decir, puede ejecutar progtwigs escritos en Java en Android sin esfuerzo hoy en día. Ahora se necesita la misma herramienta para .NET.

Teniendo en cuenta lo similares que son .NET y Java, es realmente una cuestión de tiempo.

ddimitrov escribió:

La traducción .Net-> Java-> Dalvik se puede hacer incluso ahora ( http://dev.mainsoft.com/ ), pero creo que subestiman la falta de bibliotecas .Net. Por supuesto, alguien puede cambiar a Mono, pero definitivamente es un esfuerzo no trivial.

No es necesario usar el puerto Mono. Android ya tiene VM y algunas API básicas. Todo lo que se necesita es el convertidor CIL-> Dalvik y el pequeño contenedor .NET para la API de Android (y tal vez alguna implementación básica de algunas clases .NET estándar). Eso es.

Actualización: .NET ya funciona en Android: necesitará un producto llamado Monodroid ( http://monodroid.net ) como se indicó anteriormente.

Miguel de Icaza anunció en su blog el 17 de febrero de 2010 que están comenzando a trabajar en mono para Android, que se llamará MonoDroid.

Esto será similar a MonoTouch en el iPhone, pero para Android en su lugar.

Proporcionará enlace a la interfaz de usuario de Android, por lo que las aplicaciones se verán y se sentirán en vivo con las aplicaciones nativas de Android. Esto requerirá que escribas una IU específica de Android.

Sin embargo, podrá reutilizar las bibliotecas existentes de nivel inferior sin la necesidad de recomstackr.

Hay Mono para Android, el framework .NET portado para Android. Y está MonoDroid, una stack de desarrollo para usar C # y las API .NET principales para desarrollar aplicaciones basadas en Android. MonoDroid Preview 1 ha sido lanzado hace un par de días.

Dado que este es uno de los primeros enlaces en Google cuando se busca soporte para Android y .net, es apropiado publicarlo aquí.

El proyecto mono está trabajando en un SDK para desarrollar aplicaciones de Android utilizando lenguajes CIL como C #. El lado negativo es que será un producto comercial. monodroid

MonoDroid está disponible para la vista previa. Creo que eso cerrará la brecha. Sin embargo, MonoDroid podría ser una opción costosa para el desarrollo. Sus otras herramientas de desarrollo cuestan entre $ 199 y $ 4000 (la herramienta de desarrollo de iPhone MonoTouch … tiene un precio de entre $ 399 y $ 3999). Si las personas desarrollan aplicaciones con estas herramientas, necesitan un modelo de negocio muy sólido para ver algunas devoluciones.

Mira esto xmlvm , creo que esto es posible. Puede ser también puede ver este video

Un puerto modificado de Mono también es completamente posible.

.NET compact framework ha sido portado al sistema operativo Symbian ( http://www.redfivelabs.com/ ). Si .NET como una plataforma ‘cerrada’ se puede portar a esta plataforma, no veo ninguna razón por la cual no se pueda hacer para Android.

.NET y Mono son excelentes entornos, con muchas herramientas y una excelente base de habilidades de personas que saben cómo usarlas.

Creo que Mono tiene la oportunidad de ser el entorno de desarrollo móvil multiplataforma de elección, ya que son la única alternativa a Objective-C en el iPhone y deberían ser portátiles para Android, y .NET ya está en Windows Mobile.

Realmente espero ver una implementación sólida de Mono en Android, con envoltorios para la API de Android como con Monotouch, y estaría dispuesto a pagar, ya que no estoy en condiciones de hacerlo yo mismo.

Es más probable que veas una implementación Android de Silverlight. El representante de Microsoft ha confirmado que es posible, frente al iPhone donde el representante dijo que era problemático.

Pero es posible una versión del framework .Net. Solo necesito que alguien se preocupe por eso 🙂

Pero, en realidad, pasar de C # a Java no es tan importante, y teniendo en cuenta las drásticas diferencias entre las dos plataformas (PC vs. G1), parece poco probable que puedas salir adelante con una base de código para cualquier aplicación que querías correr en ambos.

En mi opinión, sería técnicamente posible convertir el Bytecode CLI a Dalvik, y escribir clases contenedoras para algunas características básicas como Colecciones, Acceso a archivos, etc., incluso sería un trabajo duro.

Pero una aplicación de escritorio .NET se ejecutó en Android se sentiría extraño, ya que tendría una interfaz gráfica de usuario clásica similar a Windows que no es muy útil en un dispositivo táctil. Si, por otro lado, tuvieras que codificar una GUI similar a Android en .NET, necesitarías otro conjunto de envoltorios (ten en cuenta que el envoltorio es al contrario opuesto a los envoltorios mencionados anteriormente).

No estoy seguro si una aplicación móvil .NET se sentiría nativa en Android, pero supongo que no.

Quizás esté interesado en otro enfoque: puede escribir su aplicación en el lenguaje Java. A continuación, puede comstackrlo en .NET a través de Microsoft J # (sé que está descontinuado, pero aún puede descargarlo y usarlo) y usar el mismo código Java en Android. Una vez más, eso es para las clases centrales, también conocida como lógica de negocios, y de nuevo tendrías que escribir GUIs de remolque. Tal vez también pueda utilizar Jages de Tages, lo que no podrá hacer si usa .NET.

.NET para Android me parece una posibilidad real. Hay noticias de que Microsoft lanzará Silverlight adecuado para Android. Nunca subestimes las ventajas de Microsoft para poner el arranque en Apple. Un teléfono inteligente que es más rápido, más rico en funciones, ciclo de vida de desarrollo más rápido, hardware impresionante, Flash y Silverlight como instalable estándar.

Microsoft tiene un gran interés en mejorar Android, y al mismo tiempo, las aplicaciones que se desarrollarán para Silverlight en Android también funcionarán en Windows Phone 7 OS con multi-touch, GPS, etc., etc.