Maintenant que le G1 avec le système d'exploitation Android de Google est maintenant disponible (bientôt), la plate-forme Android prendra-t-elle jamais en charge .Net?
Maintenant que le G1 avec le système d'exploitation Android de Google est maintenant disponible (bientôt), la plate-forme Android prendra-t-elle jamais en charge .Net?
Réponses:
Mise à jour : depuis que j'ai écrit cette réponse il y a deux ans, nous avons produit Mono pour fonctionner sur Android. Le travail comprenait quelques étapes: porter Mono sur Android, l'intégrer à Visual Studio, créer des plugins pour MonoDevelop sur Mac et Windows et exposer les API Java Android aux langages .NET. Ceci est maintenant disponible sur http://monodroid.net
Mono sur Android est basé sur le runtime Mono 2.10 et utilise par défaut le profil 4.0 avec le compilateur C # 4.0 et utilise le nouveau moteur de collecte de déchets SGen de Mono, ainsi que notre nouveau système de collecte de déchets distribué qui exécute le GC sur Java et Mono.
Les liens ci-dessous reflètent Mono sur Android depuis janvier 2009, je les ai conservés pour le contexte historique
Mono fonctionne désormais sur Android grâce au travail de Koushik Dutta et Marc Crichton.
Vous pouvez voir une vidéo de celui-ci en cours d'exécution ici: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html
Et vous pouvez obtenir les instructions pour construire Mono vous-même ici: http://www.koushikdutta.com/2009/01/building-mono-for-android.html
Vous pouvez obtenir une référence comparant le JIT de Mono à l'interprète de Dalvik ici: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
Et bien sûr, vous pouvez obtenir une image préconfigurée avec Mono ici (allez au bas de l'article pour plus de détails sur son utilisation): http://www.koushikdutta.com/2009/01/building-mono-for- android.html
Oui, ce sera possible et ce ne sera pas si difficile. Tout ce qui est nécessaire à ce stade pour commencer, c'est une sorte de convertisseur qui transformera MSIL en bytecode Dalvik . Étant donné que les deux formats sont open source et bien documentés, il n'y aura aucun problème avec lui.
Ainsi, l'écriture d'applications Android en C # ou VB.NET sera possible, la question est de savoir combien de bibliothèques standard du framework .NET seront prises en charge. Mais c'est un autre problème.
Oscar Reyes a écrit:
Je suis à peu près sûr que si Google avait un intérêt pour .net, il aurait conçu quelque chose pendant qu'Android en était aux premières étapes, pas maintenant quand ils sont en phase de production. Je ne veux pas dire que ce n'est pas possible, ce que je dis, c'est qu'ils ne sont pas intéressés. Peut-être en mmm hhhh 10 ans.
En fait, ce qu'ils ont déjà conçu est très compatible avec Java et .NET
Ils ne peuvent pas tout faire en même temps, mais si vous regardez dans le SDK Android, il existe un outil appelé dx . Cet outil convertit le bytecode Java en bytecode Dalvik, donc en d'autres termes, vous pouvez exécuter des programmes écrits en Java sur Android sans effort aujourd'hui. Maintenant, le même outil est nécessaire pour .NET.
Compte tenu de la similitude de .NET et Java, c'est vraiment une question de temps.
ddimitrov a écrit:
La traduction .Net-> Java-> Dalvik peut être effectuée même maintenant ( http://dev.mainsoft.com/ ), mais je pense que vous sous-estimez le manque de bibliothèques .Net. Bien sûr, quelqu'un peut porter Mono, mais c'est certainement un effort non trivial.
Pas besoin de porter Mono. Android a déjà une VM et une API de base. Tout ce dont vous avez besoin est un convertisseur CIL-> Dalvik et un minuscule wrapper .NET pour l'API Android (et peut-être une implémentation de base de certaines classes .NET standard). C'est tout.
Mise à jour: .NET fonctionne déjà sur Android - vous aurez besoin d'un produit appelé Monodroid ( http://monodroid.net ) comme indiqué ci-dessus.
Miguel de Icaza a annoncé sur son blog le 17 février 2010 qu'ils commencent à travailler sur mono pour Android qui s'appellera MonoDroid.
Ce sera similaire à MonoTouch sur l'iphone mais pour Android à la place.
Il fournira une liaison à l'interface utilisateur Android, de sorte que les applications regarderont et se sentiront les applications Android natives en direct. Cela vous obligera à écrire une interface utilisateur spécifique à Android.
Vous pourrez cependant réutiliser vos bibliothèques de niveau inférieur existantes sans avoir besoin de recompiler.
Étant donné qu'il s'agit de l'un des premiers liens sur Google lors de la recherche de support pour Android et .net, il convient de le publier ici.
Le projet mono travaille sur un SDK pour développer des applications Android en utilisant des langages CIL tels que C #. L'inconvénient est que ce sera un produit commercial. monodroid
MonoDroid est disponible pour un aperçu. Je pense que cela comblera l'écart. Cependant, MonoDroid pourrait être une option coûteuse pour le développement. Leurs autres outils de développement coûtent entre 199 $ et 4000 $ (l'outil de développement iPhone MonoTouch .. est proposé entre 399 $ et 3999 $). Si les gens développent des applications avec ces outils, ils ont besoin d'un modèle commercial très solide pour voir des rendements.
Un port modifié de Mono est également tout à fait possible.
Le framework compact .NET a été porté sur Symbian OS ( http://www.redfivelabs.com/ ). Si .NET en tant que plate-forme «fermée» peut être porté sur cette plate-forme, je ne vois aucune raison pour laquelle cela ne peut pas être fait pour Android.
.NET et Mono sont d'excellents environnements, avec de nombreux outils et une excellente base de compétences de personnes qui savent les utiliser.
Je pense que Mono a la possibilité d'être l'environnement de développement multiplateforme mobile de choix, car ils sont la seule alternative à Objective-C sur iPhone et devraient être portables sur Android, et .NET est déjà sur Windows Mobile.
J'espère vraiment voir une implémentation solide de Mono sur Android, avec des wrappers pour l'API Android comme avec Monotouch, et je serais prêt à payer pour cela car je ne suis pas en mesure de le faire moi-même.
Vous êtes plus susceptible de voir une implémentation Android de Silverlight. Le représentant de Microsoft a confirmé que c'était possible, contre l'iPhone où le représentant a dit que c'était problématique.
Mais une version du framework .Net est possible. J'ai juste besoin que quelqu'un s'en soucie autant :)
Mais vraiment, passer de C # à Java n'est pas si grave et compte tenu des différences drastiques entre les deux plates-formes (PC vs G1), il semble peu probable que vous puissiez vous débrouiller avec une seule base de code pour une application qui vous vouliez courir sur les deux.
À mon avis, il serait techniquement possible de convertir le Bytecode CLI en Dalvik, et d'écrire des classes wrapper pour certaines fonctionnalités de base telles que les collections, l'accès aux fichiers, etc., même ce serait un travail difficile.
Mais une application de bureau .NET exécutée sur Android se sentirait étrangère, car elle aurait une interface graphique similaire à Windows qui n'est pas très utilisable sur un appareil tactile. Si, d'autre part, vous deviez coder une interface graphique de type Android dans .NET, vous auriez besoin d'un autre ensemble de wrappers (notez que le wrapping est juste l'inverse des wrappers mentionnés ci-dessus).
Je ne sais pas si une application mobile .NET se sentirait native sur Android, mais je suppose que non.
Peut-être que vous êtes intéressé par une autre approche: vous pouvez écrire votre application en langage Java. Vous pouvez ensuite le compiler en .NET via Microsoft J # (je sais qu'il est interrompu mais vous pouvez toujours le télécharger et l'utiliser) et utiliser le même code Java sur Android. Encore une fois, c'est pour les classes de base aka la logique métier et encore une fois, vous devrez écrire des interfaces graphiques de remorquage. Peut-être que vous pouvez également utiliser J2ME, ce que vous ne pourrez pas faire si vous utilisez .NET.
.NET pour Android me semble une réelle possibilité. Il y a des nouvelles que Microsoft publiera la bonne Silverlight pour Android - Ne sous-estimez jamais les avantages pour Microsoft de mettre le démarrage dans Apple. Un smartphone plus rapide, plus riche en fonctionnalités, un cycle de vie de développement plus rapide, un matériel impressionnant, Flash et Silverlight en tant qu'installable standard.
Microsoft a tout intérêt à améliorer Android, et en même temps, les applications seront développées pour Silverlight sur Android fonctionnera également sur Windows Phone 7 OS avec multi-touch, GPS, etc., etc.