Mono 2.0 : .Net sous Mac OS X ou Linux

Christophe Laporte |
Mono 2.0 vient enfin d'être finalisé. Ce projet est une implémentation Open Source du framework .Net de Microsoft. Cette version est rendue conforme à la version 2.0 de .Net avec notamment la prise en charge de C# 3.0. Le package comprend également un compilateur Visual Basic 8.

Concrètement, Mono 2.0 donne aux développeurs .NET la possibilité d'exécuter leurs applications sur un grand nombre de systèmes, alors que l'implémentation de Microsoft ne fonctionne que sous Windows.

Une nouvelle version de l'environnement de développement associé à Mono, MonoDevelop, est actuellement en plein chantier. Celle-ci devrait être finalisée d'ici la fin de l'année.
Tags
avatar Iounmoutef | 

« …une implémentation Open Source du framework .Net de Microsoft. Cette version est rendue conforme à la version 2.0 de .Net avec notamment la prise en charge de C# 3.0. Le package comprend également un compilateur Visual Basic 8. »

Concrètement... en effet ;-)) Bien cordialement, Iounmoutef

avatar Groberzwerg | 

Autant je trouve que le C# est un super langage sur Windows et avec le fabuleux outil qu'est Visual Studio 2008, ça me donne envie de développer pour Windows, autant je trouve pas vraiment intéressant d'avoir le .NET sur Mac OS ... (édit : sauf si ça permet de faire tourner les applis Windows)

avatar arsinoe | 

Il faut préciser que mono est un projet libre développé par Novell avec le concours de Microsoft.

Il permet l'exécution des applications .net sous Windows, Linux, OSX, Solaris...

Ce qui signifie qu'une bonne partie des appli windows peuvent désormais tourner sous OSX et que dans le futur, puisque MS se dirige vers du tout .net, ce sera l'intégralité des applications qui seront compatibles.

Merci à Macgé de publier cette information, qui, bien que souvent passée sous silence est loin d'être anodine et en dit long sur la stratégie à long terme de MS.

Mais bon, c'est sûr que c'est moins sensasionnaliste qu'une 50eme news sur les ventes de Vista.

avatar jujuhtst | 

@arsinoe : dot net reste quand même une "copie" de Java. qui tourne déjà lui sur les différentes plateformes. Et qui avec la version 1.7 sera complètement libre ...

Le but est encore et toujours d'enfermer les gens dans leurs techno proprio.

De plus : Mono supporte "enfin" .Net 2, alors qu'on est à la version 3.5 sur Windows. (et ce malgré le "soutient" de Microsoft), donc bon voila quoi ...

avatar LaurentR | 

Pas encore d'installeur pour Mac

avatar françois bayrou | 

"De plus : Mono supporte "enfin" .Net 2, alors qu'on est à la version 3.5 sur Windows. "
> donc pas de dev possible pour silverlight je suppose... vu que silverlight demande le 3.5

avatar arsinoe | 

De plus : Mono supporte "enfin" .Net 2, alors qu'on est à la version 3.5 sur Windows. (et ce malgré le "soutient" de Microsoft), donc bon voila quoi ...

Mono 2.0 supporte par exemple LINQ qui n'est apparu que dans .net 3.5

Mono est totalement compatible .net 2.0 mais supporte aussi des api plus récente.

avatar jujuhtst | 

@arsinoe : mais pas complètement, donc un programme en 3.5 ne tournera pas complètement avec Mono (si on ne vérifie pas avant de ne pas utiliser de fonctions non implémentées), ce qui limite franchement l'intérêt.

Pour les dév en 2.0, là c'est bon (enfin modulo l'accès à des fonctions propre à l'OS)

avatar davi18 | 

Sur GénérationNT, on peut lire cette phrase : "C'est en effet sous l'égide de cet éditeur suite au rachat de la société Ximian co-fondée en 2003 par l'instigateur du projet éponyme, Miguel de Icaza, que la mouture 2.0 de Mono a été publiée en début de semaine, après près de 5 années de travail pour apporter [b]une compatibilité complète avec .NET 2.0 voire au-delà puisqu'on peut lire dans la FAQ dédiée que l'API Mono est quelque part entre .NET 2.0 et .NET 3.5[/b], améliorer les performances et la stabilité et introduire un outil analytique pour les migrations .NET vers Linux."

avatar Danuz | 

@françois bayrou : Pour Silverlight, regarde Moonlight. :-) (Silverlight sous Mac Os, grâce à Mono).

avatar oomu | 

malheureusement, je considère toujours que c'est un piège .NET

comme l'ont signalé des gens précédemment, comme D'HABITUDE avec les faux standards microsoft, les éditeurs tiers ne peuvent pas suivre le rythme de microsoft

ainsi quand "mono" sort, le vrai ".NET" a une ou plusieurs générations d'avance et tous les outils microsoft sont évidemment (miraculeusement ? non) apte à exploiter la nouvelle génération de .NET

bref, Microsoft contrôle le rythme et ainsi, tout ce qui n'est pas Windows reste un citoyen de seconde zone.

-
en comparaison, JAVA est contrôlé par un organisme de certification, dont certes SUN est un acteur important mais où on trouve autant des acteurs commerciaux que le consortium apache ou jboss.

Le processus de normalisation et d'amélioration de java étant transparent, tout éditeur ou association est à même de savoir à quoi s'attendre.

Bref, on est pas dans la même mentalité de contrôle et d'illusions.

-
mono ne permetttra JAMAIS de faire tourner des logiciels de premiers plan (et de deuxième plan) de windows sur linux ou mac os X.

cela fait des années qu'on me bassine avec ce délire dans les communautés Linux.

-
Non, microsoft n'est pas en train de passer ses applications, Windows ou tous les outils de développement à .NET

d'ailleurs certaines nouveautés tel le "ruban" de office 2007 n'avaient aucun équivalent .NET par Microsoft. Certains greffons recréant le "ruban' ont été rachetés par microsoft et vaguement intégré.

Le fait est, la politique de MS vis à vis de .NET est incohérente et ne sera de toute façon jamais un standard unique et fiable sur autre chose que windows.

-
De même qu'il y aura pas de photoshop Cocoa, y aura pas de Office .NET

-

Mono a toujours eu des supports expérimentaux d'api récentes de .NET. ce n'est pas avec cela que vous convaincrez des grands éditeurs de sortir leur logiciels windows sur mac.

Mono sous linux c'est une vielle histoire. Avez vous vu une conséquence ? moi NON. (beagle ? tomboy ? haha!).

avatar BiLLLBrador | 

Groberzwerg : c'est au contraire très intéressant !
Les développeurs windows peuvent se mettre à développer sous Mac sans avoir à apprendre ObjectiveC ou Cocoa. Ils peuvent directement utiliser une techno qu'ils connaissent.

arsinoe : "une bonne partie" c'est un peu exagéré, à ma connaissance de nombreuses applications windows sont encore écrite en C++. Les application 100% .net sont encore minoritaires.
Mais c'est vrai que ça devrait évoluer dans les prochaines années.

françois bayrou : ne mélange pas tout !
Les applications silverlight fonctionnent déjà sous MacOS grace à Moonlight (qui est aussi développé par Novel et supporté pas MS)
Silverlight/Moonlight embarque son propre "mini framework" .net.
Donc pas besoin d'installer Mono pour faire tourner du silverlight sur ton Mac.

jujuhtst : stop aux préjugés !!!!
Les spécification du framework .net et du langage C# sont disponibles gratuitement !
Chacun est libre de faire son propre compilateur C# et sa propre implémentation du framework .net sans avoir à demander l'autorisation de Microsoft, sans payer de royalties, et surtout sans avoir à faire du reverse engineering. (pas comme lorsque OpenOffice tentait de lire les .doc de Office...)

avatar Groberzwerg | 

@BiLLLBrador :
Le problème c'est que si les développeurs appliquent ce principe on risque de se retrouver avec des applis ultra lentes et beaucoup moins bien pensé qu'elles auraient pu l'être avec Cocoa.

avatar davi18 | 

Sans oublier une technologie intéressante [url=http://www.mono-project.com/CocoaSharp]Cocoa#[/url].

avatar BiLLLBrador | 

Groberzwerg : les appli C# ne sont pas vraiment lentes (en tout cas beaucoup moins que des applis Java)
Mais c'est sûr que les appli seront sans doute moins bien intégrées à MacOS que des appli 100% cocoa.

Je pense que c'est quand même mieux que rien.
Je suis développeur et je sais que ça prend parfois du temps avant de bien maitriser une technologie. Donc, quand on maitrise une techno, on est bien content de pouvoir la réutiliser... et ça coûte moins cher !
C'est un point non négligeable pour une boite qui voudrait se mettre à faire du dev pour MacOS.
Dois je payer une formation à mes développeurs ? Seront ils efficaces immédiatement ? Dois je embaucher quelqu'un qui maitrise une techno particulière ?
A mon avis, les experts ObjectiveC/Cocoa ça doit pas courir les rues, et ça doit se payer assez cher.

Bon évidement, pour que ça marche, il faut que Mono soit stable, performant, etc...
Et que les entreprises aient confiance en Mono :)
Et finalement c'est peut être ça qui posera le plus de problèmes.

avatar davi18 | 

C'est vrai que l'idéal pour avoir quelque chose de vraiment multiplateforme serait que .Net et Mono fusionnent pour avoir une véritable alternative face à Java/Eclipse.

avatar YAZombie | 

[quote]il n'y aura pas de photoshop Cocoa[/quote]
En tant que total béotien dès lors qu'on parle programmation, je suis sidéré par cette affirmation. Est-ce que toutes les applis sur Mac ne sont pas destinées un jour ou l'autre à passer sur Cocoa??? (ce n'est pas un vœu de ma part, je m'en fiche, mais j'avais cru comprendre ça)

avatar Groberzwerg | 

@YAZombie : Oui tu as raison ! Carbon c'est vieux, Cococa est plus (+) dans l'air du temps sur Mac OS !

avatar YOYO | 

Attention j'aimerais mettre l'accent sur le fait que cela ne permettra pas forcément de faire tourner les applis Windows sous Mac OS.

Car il faut encore les coder correctement, au travail nous avons tenté de porter nos applis .Net sous Linux grâce à Mono, et de grosses modifications sont nécessaire pour que cela tourne. Cela va de la gestion des chemins d'accès, à la suppression des PInvoke (accès dirrect Win32 depuis .Net) à certains problèmes d'affichage du GUI lié à la platforme. Bref, pour qu'une applis .Net Windows tourne correctement sous OS X grâce à Mono, il faut que les développeurs de celles-ci aient fait le nécessaire ce qui ne sera sans doute pas le cas pour une majorité d'applications.

avatar dariolym | 

UNE question...
à quel point c'est sensé nous donner la possibilité de faire tourner des programmes "windows" ?
UN exemple concret (et qui m'intéresse :ane: ):
[url=http://worldwind.arc.nasa.gov/]NASA WorldWind [/url] pourrait-il tourner sur mon MBP avec MONO?

avatar arsinoe | 

>UNE question...
à quel point c'est sensé nous donner la possibilité de faire tourner des programmes "windows" ?
UN exemple concret (et qui m'intéresse :ane: ):
NASA WorldWind pourrait-il tourner sur mon MBP avec MONO?

La dernière version de World Wind nécessite .net 2.0

http://pagesperso-orange.fr/hermetica/worldwind.htm

Aucun soucis de compatibilité donc.

Merci pour le lien, je ne connaissais pas cette appli, c'est tout bonnement génial.

avatar dariolym | 

Donc, la marche à suivre serait... ???

Quid de la demande de DirectX9?

Enfin, c'est pas gagné j'ai l'impression ...

avatar Proudhon | 

[u]IMPORTANT[/u] :

.NET n'est pas open source mais sous licence "Microsoft Reference License". Ce qui veut dire que :

- le moindre changement dans le code .NET, y compris dans le cadre du projet MONO, est interdit.

- MONO est un projet open-source mais dépendra toujours de Microsoft et sa volonté de lui fournir la documentation et l'aide necessaire.

Donc, reste à savoir quelles sont les véritables intentions de Microsoft et si Microsoft utilisera encore une fois [url=http://fr.wikipedia.org/wiki/Embrace,_extend_and_extinguish]ce type de stratégie[/url] …

avatar arsinoe | 

>- MONO est un projet open-source mais dépendra toujours de Microsoft et sa volonté de lui fournir la documentation et l'aide necessaire.

Evidemment que Mono suit les spécifications Microsoft. C'est sa raison d'être.

Rendre possible l'exécution d'application .net sur d'autre plate forme.

Tu voudrais quoi ? que mono diverge de .net pour en faire un framework incompatible ?

Vraiment j'hallucine.

Voilà un projet open source, avec un but louable de rendre diverses plate-forme compatible..et.. à oui j'oubliais, c'est un projet soutenu à fond par MS donc c'est forcement mal.. Vraiment je trouve que cette attitude est purement du délit de sale gueule.

Et dire que les premier à critiquer ça sont aussi les premier à louer les technologies fermées d'Apple.

C'est vraiment désolant autant d'aveuglement.

avatar arsinoe | 

>Donc, la marche à suivre serait... ???
Quid de la demande de DirectX9?
Enfin, c'est pas gagné j'ai l'impression ...

En cherchant 2 secondes on trouve la version pour Mono :

http://tirania.org/blog/archive/2005/Sep-30-1.html

avatar Proudhon | 

@Arsinoe

Réfléchis avant d'insulter les gens ou de réciter ton dossier de presse comme un perroquet…

LE principe de l'open-source est celui de la collaboration, du partage et qu'il n'y a justement personne pour te dire quoi faire ou quoi changer dans du code :
en clair, n'importe qui peut apporter des modifications à du code dans la mesure ou il rend publique ces modifications, pour en faire bénéficier tout le monde (principe de la licence de type GPL).

A l'inverse, .NET est une technologie 100% contrôlée par MICROSOFT et qui ne peut être changé que par MICROSOFT !
Que MONO soit "open-source" ou pas ne sert à rien puisque , au final, on ne peut rien changer au code et surtout parceque ce projet dépend du bon vouloir de Microsoft qui peut changer les régles du jeu à tout moment !
Les developpeurs n'ont aucune liberté sinon celle de regarder le code source ! Super ! Merci Microsoft ! :-D

Je te rappelle, puisqu'on parle de logiciels, que MacOS X est un des systèmes d'exploitation les plus ouverts dans la mesure ou il utilise un grand nombre de technologies VERITABLEMENT open-source [url=http://developer.apple.com/opensource/index.html](voir lien)[/url]

avatar arsinoe | 

>Les developpeurs n'ont aucune liberté sinon celle de regarder le code source ! Super ! Merci Microsoft ! :-D

Ta présentation des choses est totalement contraire à la réalité.

Les accords signés entre Microsoft et Novell consistent à mettre en commun leur brevet pour en faire des solutions libres (et Mono n'est qu'une petite partie, il ya aussi par exemple moonlight qui est le pendant de silverlight).

Cet accord n'est pas seulement le droit pour novell de regarder le code source comme tu sembles le prétendre, mais bel et bien une collaboration des équipes, avec échanges de compétence (dev MS chez Novell et vice versa), écriture de spécification commune, accès aux même banc de test...

http://www.neteco.com/85452-miguel-de-icaza-mono-libre-silverlight-2008.html

Ce que tu dis est faux et tu aurais pu te renseigner avant de dire n'importe quoi.

Alors excuses moi de paraitre insultant, même si je ne vois pas du tout en quoi j'ai pu l'être, mais dire des contre vérités pareille pour le seul prétexte que le mot Microsoft apparait, j'appelle ça de l'idéologie crasse.

avatar Proudhon | 

…et en dehors des équipes de Novell (sous le contrôle de Microsoft…car [b].NET n'est pas open source[/b]), QUI peut changer le code de .NET? Personne ! :-D
CQFD

Ma présentation des choses vaut bien la tienne quand tu parles d 'Apple…alors, pas de leçon de morale, please, surtout quand on défend une entreprise capable de [url=http://fr.wikipedia.org/wiki/Embrace,_extend_and_extinguish]corrompre des standards uniquement pour imposer ses solutions propriétaires[/url]…

avatar BiLLLBrador | 

Proudhon : effectivement, l'implémentation de .net faite par Microsoft n'est pas open source. Oui c'est MS qui décide de la direction que prendra .net.
Et alors ?

Sous prétexte qu'une techno n'est pas 100% ouverte, on devrait la boycotter ?
Dans ce cas, va donc revendre ton Mac, parce que même si la base de MacOS est libre, la plupart des techno utilisées dans cet OS ne le sont pas (aqua, core audio, core animation, carbon, cocoa, itune et j'en passe...)

Achète donc un PC et installe une Debian. Ou pas...
Parce que au final ton PC lui n'est pas 100% open. Tu as le code source de ton bios ? ou celui du firmware de ton graveur DVD ? Tu as les spéc détaillées du chipset de ta carte mère ?

Bref, je ne suis pas spécialement pro-MS (ni anti d'ailleurs) mais j'utilise .net depuis plus d'un an et je peux t'assurer que la techno est vraiment sympa. Autant les MFC c'est pourri, autant je suis bien obligé d'admettre que MS a fait du bon boulot avec .net.
Donc, je suis plutôt content de voir cette techno arriver sur MacOS, Linux et autres.
Et je ne vais pas me priver de l'utiliser sous prétexte que c'est pas 100% open.

avatar BiLLLBrador | 

Et j'ajoute que le fait que Mono soit open source n'est absolument pas inutile, contrairement à ce que tu dis.
N'importe qui peut participer au projet. Même si Novel décide d'abandonner, une autre société (Fondation Mozilla ?) pourra reprendre le code et continuer le développement. Et n'importe qui peut faire un portage vers une nouvelle plateforme.
Mono reste dépendant de MS pour obtenir les spéc détaillées du framework, mais ça reste quand même un projet libre.

et tu as dit :
[quote]Je te rappelle, puisqu'on parle de logiciels, que MacOS X est un des systèmes d'exploitation les plus ouverts dans la mesure ou il utilise un grand nombre de technologies VERITABLEMENT open-source [/quote]
Alors oui, MacOS est plus orienté open source que Windows.
Mais de là à dire que [b]un des plus libres[/b], faut pas pousser non plus !
Tu oublies un peu trop vite les Linux, BSD et autres...

avatar Proudhon | 

@BiLLLBrador

…sauf que, ce n'est pas faire de procès d'intention à Microsoft que de dire qu'on leur reproche très souvent leur manque d'éthique : la liste est longue alors je vais le faire court : [url=http://en.wikipedia.org/wiki/Criticism_of_Microsoft] cliquez ici pour les détails[/url] ! :-D

Si Apple peut avoir quelque fois de tels comportements (souvent motivés par une question de survie : Apple ne peut pas compter sur les rentes qu'apporte un système d'exploitation comme Windows…), cela ne se compare même pas avec Microsoft et ne peut, en aucun cas, être généralisé (il est si facile de mettre tout le monde dans le même sac mais c'est de la démagogie…).

MONO est libre mais est un portage de .NET qui ne l'est pas…c'est un peu hypocrite , non ?

Concernant MacOS X, j'ai dit "un des plus libres" (et non le plus libre) et c'est le cas… je remets [url=http://developer.apple.com/opensource/index.html]le lien[/url]

avatar BiLLLBrador | 

Tu ne m'apprends rien, je sais bien que MS a eu recours à des pratiques discutables. Et je sais très bien que MacOS utilise des techno open sources.
Mais c'est pas le problème, je ne suis pas en train de faire le procès de MS ou Apple.

[quote]MONO est libre mais est un portage de .NET qui ne l'est pas…c'est un peu hypocrite , non ? [/quote]
Ben non, je trouve pas.
A ton avis, les soft open sources de MacOS, ils viennent d'où ?
Darwin et les outils GNU ne sont rien d'autre que des implémentations open source d'Unix, un OS propriétaire développé par AT&T.
Idem pour le noyau Linux.
Va traiter Richard Stallman et Linus Torvalds d'hypocrites, ça va leur faire plaisir :)
http://en.wikipedia.org/wiki/Unix

Et C# et .net sont beaucoup moins fermés que ce que tu as l'air de croire.
Normalisation ECMA et ISO de C# et d'une partie de .net, abandon de brevets, accès a une grosse partie du code source...
C'est pas du GNU mais c'est déjà pas mal non ?
http://en.wikipedia.org/wiki/.NET_Framework#Standardization_and_licensing

Et si tu crois qu'on peux diviser les logiciels en 2 catégories, avec d'un coté l'open source et de l'autre les logiciels propriétaires, ben désolé mais c'est pas si simple.
Tu aimes MacOS dont le noyau est open source, mais son interface et ses API sont complètement fermées.
Tu dis que .net est fermé mais il est en grande partie normalisé et tu peux voir son code (au fait tu as déjà vu le code de Cocoa ?)
Firefox est open source, mais après tout il est né uniquement grâce à Netscape, un logiciel propriétaire. Idem pour OpenOffice.
Et certains logiciels open source ont une licence qui autorise explicitement l'intégration de leur code dans des appli propriétaire : Safari est propriétaire mais il utilise WebKit qui est open source...

Donc voila, un Mac user qui crache sur .Net et Mono parce que les techno propriétaires c'est mal, c'est un peu l'hôpital qui se moque de la charité...

avatar Proudhon | 

Tu auras beau nous faire toute une tartine sur les origines de certains projets open source, cela ne changera rien à la situation actuelle :
.NET n'est pas open source ce qui signifie que , je te cite, "Mono reste dépendant de MS pour obtenir les spéc détaillées du framework". D'ou l'interet de savoir si Microsoft est une entreprise digne de confiance …

"Donc voila, un Mac user qui crache sur .Net et Mono parce que les techno propriétaires c'est mal, c'est un peu l'hôpital qui se moque de la charité..."
surtout quand l'hopital s'appelle Windows et qu'il faut le comparer à MacOS X…

"au fait tu as déjà vu le code de Cocoa ?"
Es-tu conscient que ta question ne veut rien dire ?
Mais si tu veux savoir si Cocoa est "fermé", je te conseille de faire une recherche basique dans Google avec les mots clés Cocoa, objective-C et opensource, et tu vas avoir quelques surprises…

CONNEXION UTILISATEUR