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 en charge .Net?
Mise à jour : Depuis que j'ai écrit cette réponse il y a deux ans, nous avons conçu Mono pour qu'il fonctionne sous 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 l'exécution de Mono 2.10 et utilise le profil 4.0 par défaut avec le compilateur C # 4.0. Il utilise le nouveau moteur de récupération de déchets SGen de Mono, ainsi que notre nouveau système de récupération de déchets distribué qui Java et Mono.
Les liens ci-dessous reflètent Mono sur Android à compter de janvier 2009, je les ai conservés comme contexte historique.
Mono fonctionne maintenant sur Android grâce aux travaux de Koushik Dutta et Marc Crichton.
Vous pouvez voir une vidéo de celle-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 un point de référence comparant l’interprète JIT de Mono par rapport à 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 (pour plus de détails, reportez-vous au bas de l'article): http://www.koushikdutta.com/2009/01/building- mono-pour-Android.html
Oui, ce sera possible et ce ne sera pas si difficile. Tout ce dont nous avons besoin à ce stade pour commencer est une sorte de convertisseur qui transformera MSIL en Daltik bytecode . Étant donné que les deux formats sont à code source ouvert et bien documentés, cela ne posera aucun problème.
Donc, écrire Android applications en C # ou VB.NET sera possible, la question est de savoir combien de bibliothèques standard .NET Framework seront supportées. Mais c'est un autre problème.
Oscar Reyes a écrit:
Je suis à peu près sûr que si Google passait par n'importe quel intérêt pour .net, ils auraient conçu quelque chose alors que Android en était aux premiers stades, pas maintenant au stade de la 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 réalité, 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 Android SDK, il existe un outil appelé dx . Cet outil convertit le bytecode Java en un octet de Dalvik. En d'autres termes, vous pouvez exécuter des programmes écrits en Java sur Android sans effort. Maintenant, le même outil est nécessaire pour .NET.
Étant donné que .NET et Java sont similaires, 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à VM et une API de base. Tout ce dont vous avez besoin est CIL-> convertisseur Dalvik et un très petit wrapper .NET pour Android API (et peut-être une implémentation de base de certaines classes .NET standard). C'est ça.
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'il commençait ses travaux 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 ressemblent à des applications natives Android. Cela nécessitera que vous écriviez une interface utilisateur spécifique à Android.
Vous pourrez cependant réutiliser vos bibliothèques de niveau inférieur existantes sans avoir à recompiler.
Comme il s’agit de l’un des premiers liens sur Google lorsque vous recherchez Android et le support .net, il convient de l’afficher ici.
Le projet mono travaille sur un SDK pour développer Android applications utilisant des langages CIL tels que C #. L'inconvénient est que ce sera un produit commercial. monodroid
Il existe Mono pour Android, le framework .NET porté pour Android. Et il existe MonoDroid, une pile de développement pour l’utilisation de C # et les principales API .NET pour développer des applications basées sur Android. MonoDroid Preview 1 est sorti il y a quelques jours.
MonoDroid est disponible pour la prévisualisation. Je pense que cela va combler le fossé. Cependant, MonoDroid pourrait être une option coûteuse pour le développement. Leurs autres outils de développement coûtent entre 199 et 4 000 dollars (l’outil de développement pour iPhone de MonoTouch .. est vendu entre 399 et 3 999 dollars). Si les utilisateurs développent des applications avec ces outils, ils ont besoin d'un modèle d'entreprise très fort pour générer des rendements.
Un port modifié de Mono est également tout à fait possible.
.NET compact framework a été porté sur un système d’exploitation Symbian ( 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 sachant les utiliser.
Je pense que Mono a l’opportunité de devenir l’environnement de développement mobile multiplate-forme de choix, vu qu’ils constituent la seule alternative à Objective-C sur iPhone et devraient être portables sur Android, et que .NET est déjà sous Windows Mobile.
J'espère vraiment voir une mise en œuvre solide de Mono sur Android, avec des wrappers pour l'API Android comme avec Monotouch, et 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 Android implémentation de Silverlight. Le représentant de Microsoft a confirmé que c’était possible, par rapport à l’iPhone où le représentant a dit que c’était problématique.
Mais une version du framework .Net est possible. Juste besoin de quelqu'un pour s'en soucier autant :)
Mais vraiment, passer de C # à Java n’est pas un si gros problème et compte tenu des différences radicales entre les deux plates-formes (PC et G1), il semble peu probable que vous puissiez vous débrouiller. une base de code pour toute application que vous souhaitez exécuter sur les deux.
À mon avis, il serait techniquement possible de convertir le bytecode de la CLI en Dalvik et d'écrire des classes wrapper pour certaines fonctionnalités essentielles telles que Collections, Accès aux fichiers, etc., même si ce serait un travail difficile.
Mais une application de bureau .NET exécutée sur Android se sentirait étrange, car elle aurait une interface graphique classique semblable à Windows qui n'est pas très utilisable sur un périphérique tactile. Si, en revanche, vous deviez coder une interface graphique de type Android dans .NET, vous auriez besoin d'un autre jeu de wrappers (notez que le wrapping est exactement l'inverse, contrairement aux wrappers mentionnés ci-dessus).
Je ne sais pas si une application mobile .NET se sentirait native sur Android, mais je suppose que ce ne serait pas le cas.
Peut-être êtes-vous intéressé par une autre approche: vous pouvez écrire votre application dans le langage Java. Vous pouvez ensuite le compiler sur .NET via Microsoft J # (je sais que c'est arrêté, mais vous pouvez toujours le télécharger et l'utiliser) et utiliser le même code Java sur Android. Encore une fois, cela concerne les classes principales, c'est-à-dire la logique métier, et encore une fois, vous devez écrire des interfaces graphiques. Peut-être que vous pouvez aussi utiliser J2ME, ce que vous ne pourrez pas faire si vous utilisez .NET.
.NET pour Android me semble une possibilité réelle. On apprend que Microsoft publiera Silverlight pour Android dans des conditions optimales. Ne sous-estimez jamais les avantages que Microsoft offre à Microsoft pour lancer le démarrage. Un smartphone qui est plus rapide, plus riche en fonctionnalités, un cycle de vie de développement plus rapide, un matériel impressionnant, Flash & Silverlight en tant qu’installation standard.
Microsoft a tout intérêt à améliorer Android. Parallèlement, les applications seront développées pour Silverlight sur Android et fonctionneront également sous Windows Phone 7 avec le multi-touch, le GPS, etc., etc.