Mono (logiciel)

Mono

Logo mono
Donnee de base

développeur Xamarin (anciennement Novell )
Année d'édition 30 juin 2004
Version actuelle  6.12.0
( 30 juillet 2020 )
système opérateur Dérivés Unix / BSD , Linux , Windows , macOS et Solaris  8
langage de programmation C , C # , langage de balisage extensible
Catégorie Cadre
Licence MIT / X11 ; partiellement: GPLv2 / LGPLv2
www.mono-project.com

Mono (espagnol pour «singe» ou du grec monos pour «seul» ou «seulement») est une implémentation alternative et open-source du .NET Framework de Microsoft . Il permet le développement de logiciels indépendants de la plate-forme basés sur les normes de l' infrastructure du langage commun et du langage de programmation C # . Le projet Mono a été créé en 2001 sous la direction de Miguel de Icaza de la société Ximian, acquise par Novell en 2003 . Les développeurs ont été repris dans une nouvelle société Xamarin en 2011 , qui est devenue une filiale de Microsoft en 2016. En conséquence, Microsoft est devenu le principal sponsor du projet.

Contexte et détails techniques

Mono prend en charge un grand nombre de plates-formes et d'architectures. En accordant une licence sous licence MIT, il n'y a pratiquement aucune restriction pour les développeurs et les utilisateurs, de sorte que des coûts de licence élevés pour le système d'exploitation du serveur peuvent être évités si un logiciel basé sur .NET doit être utilisé. Cependant, .NET Core peut maintenant aussi souvent être utilisé à cette fin . En outre, lors du développement d'applications pour smartphone, il est nécessaire de maintenir le code pour différentes plates-formes ( Android , iOS , Windows Phone ) sur une base commune.

Microsoft, d'autre part, a offert son environnement d'exécution .NET uniquement pour ses propres systèmes d' exploitation Windows pendant longtemps . À l'origine, il y avait une version open source de .NET de Microsoft appelée Rotor , qui était également disponible pour FreeBSD et macOS en plus de Windows . Néanmoins, la société Xamarin était autrefois d'avis qu'elle pouvait réussir son propre développement dans ce domaine, d'autant plus que les conditions de licence proposées par Microsoft semblaient trop restrictives pour de nombreux domaines. Depuis le 12 novembre 2014, Microsoft a commencé à publier des sous-ensembles du .NET Framework via GitHub sous la licence MIT . En plus de .NET Core et de la plate-forme de compilation Open C # et Visual Basic Roslyn, il existe également un environnement d'exécution multiplateforme en cours de développement, le .NET Core CLR. Avec ces projets, Microsoft souhaite, entre autres, soutenir le développement du projet Mono.

Avec Mono, il est possible d'exécuter des programmes qui ont été créés pour l' environnement Microsoft .NET même sans recompilation sous des systèmes d'exploitation de type Unix . L'avantage d'un tel développement multiplateforme est d'utiliser le confort et les fonctionnalités de l'environnement de développement Microsoft ( Microsoft Visual Studio ). De plus, SharpDevelop n'est disponible que sous Windows. Inversement, avec MonoDevelop, les programmes peuvent être développés sur d'autres systèmes d'exploitation qui peuvent également fonctionner avec Microsoft .NET .

À partir de la version 2.10, Mono offre une compatibilité avec les bibliothèques non spécifiques à Windows de .NET-2.0. Les applications basées sur .NET 3.0 ou version ultérieure ne peuvent actuellement pas s'exécuter sous Mono, car seul un sous-ensemble a été implémenté jusqu'à présent. Windows Presentation Foundation , Windows Workflow Foundation et en partie Windows Communication Foundation sont manquants . De plus, l'accès aux fonctionnalités spécifiques à Windows est possible en utilisant P-Invoke ou COM Interop, i. H. l'utilisation de bibliothèques qui ne sont pas en code IL mais en code assembleur normal et spécifique au processeur n'est pas autorisée. Mono peut également accéder aux bibliothèques écrites en C ou C ++ , mais la plupart de ces bibliothèques dépendent de la plate-forme.

Les applications basées sur le profil .NET 4.7.2 de Mono peuvent actuellement être exécutées (à partir de janvier 2019). Cependant, il existe des restrictions dans divers sous-domaines du cadre. La prise en charge de Windows Presentation Foundation, qui ne sera pas réimplémentée dans un avenir prévisible, a été explicitement exclue. XAML devrait être pris en charge dans le contexte de Moonlight, mais son développement a été interrompu, plus tard également celui du Silverlight original. Cependant, Xaml a été utilisé ultérieurement dans le contexte de Xamarin Forms.

Particularités du mono

Par rapport à .NET, Mono dispose également d'un petit nombre de fonctions supplémentaires qui se trouvent dans l'espace de noms Mono.*, par exemple des interfaces pour les fonctions liées au système d'exploitation sous Unix (Mono.Unix.Native) ou Mono.Cecil.dll, avec lesquelles des modifications sont apportées au code déjà compilé pouvez.

De plus, la génération de code natif (à partir du .exe ou .dll) est --aot=fullfacile et transparente à l'aide de mono . Avec .NET classique, par contre, la compilation AOT pouvait être réalisée de manière non officielle, en utilisant l'outil NGEN (pour lequel des droits d'administrateur étaient requis) pour le programme d'application, le résultat se retrouvait alors dans un cache d'image natif avec un nom de fichier cryptique. Pour .NET Core version 3 et supérieure, les Ready to Run Images (R2R) offrent une nouvelle option pour la compilation AOT.

récit

Celle de Miguel de Icaza a cofondé la société Ximian (racheté par Novell le 4 Août, 2003), le développement a commencé une série d'outils de développement .NET compatibles à la cible, y compris un C # - compilateur et Common Language Runtime pour un fonctionnement sous de Windows , Linux , divers dérivés Unix et macOS .

Miguel de Icaza s'intéresse à la technologie .NET depuis que les premières informations .NET sont devenues disponibles en décembre 2000. En février 2001, il a commencé à écrire un compilateur C # du langage de programmation en C # à des fins de pratique. En avril 2001, il a pu en présenter une première version lors d'une conférence Gnome .

Il y a eu beaucoup de discussions internes chez Ximian sur le développement d'outils pour augmenter la productivité, pour créer plus d'applications en moins de temps et pour réduire les coûts de développement. L'équipe Mono a été créée après une étude de faisabilité. En raison du nombre limité d'employés, cependant, il n'a pas été possible pour Ximian d'écrire un remplacement complet de .NET, c'est pourquoi le projet Mono Open Source, qui a été annoncé lors de la conférence O'Reilly en juillet 2001, a été fondé.

Trois ans plus tard, le 30 juin 2004, Mono 1.0 est sorti.

Avec la version 2.0 publiée le 6 octobre 2008, les propriétés les plus importantes de .NET 2.0 ont été ajoutées et il y a aussi une initiative avec le projet Olive pour implémenter les nouvelles technologies de .NET 3.0 et .NET 3.5. De plus, le compilateur C # pour la langue fonctionnalités de C # 3.0 a été étendue (ce qui est principalement le soutien LINQ ), et un nouveau XAML - analyseur développé. Cependant, les développeurs soulignent expressément que Windows Presentation Foundation ne sera probablement pas implémenté pour le moment en raison de son énorme complexité. Avec la version 2.0, un compilateur Visual Basic 8.0 est désormais également intégré.

Avec la version 2.4.3 publiée le 9 décembre 2009 - en plus de quelques corrections de bogues - le compilateur gratuit C # a été complété avec toutes les fonctions essentielles de C # 4.0.

Début 2011, le nouveau propriétaire de Novell, Attachmate, a arrêté la poursuite du développement du projet Mono et, le 2 mai 2011, a licencié 30 développeurs Mono. Nils Brauckmann (le nouveau patron de Suse ) a cité la faible demande des clients comme raison. Quelques jours après l'arrêt du projet Mono chez Novell, Miguel de Icaza a fondé la société Xamarin , qui se consacrera à l'avenir au développement de Mono. La plupart des développeurs Mono précédemment employés par Suse sont passés à Xamarin.

Par la suite, SUSE a accordé à Xamarin une licence illimitée pour l'utilisation et l'exploitation commerciale de Mono, MonoTouch pour iOS et Android et les outils Mono pour Visual Studio.

Avec son acquisition par Microsoft en 2016, les outils Xamarin de Microsoft Visual Studio ont été intégrés et basés sur l'IDE Xamarin Xamarin Studio a été développé par Visual Studio pour Mac . Mono a été placé sous l'égide de la Fondation .NET et réédité sous la licence MIT.

En fournissant la plate-forme .NET Core en open source sous une licence compatible, le transfert mutuel de code pour les deux projets est considérablement simplifié. Depuis mai 2017, les packages Mono officiels contiennent également une version du compilateur C # (Roslyn) et MSBuild . Avec la version actuelle de Mono, le compilateur prend également en charge C # 8.0.

Dans le cadre du framework Blazor, qui est encore en cours de développement, un environnement mono est actuellement utilisé qui a été compilé en tant que WebAssembly .

À partir de la version 5.12, IBM i et IBM AIX sont également pris en charge.

Normalisation et brevets

Avant la prise de contrôle de Xamarin par Microsoft, il y avait des préoccupations importantes concernant Mono dans la communauté open source, car certaines parties de la bibliothèque de classes pouvaient avoir touché les brevets logiciels Microsoft. Microsoft a ensuite conclu un accord de brevet réciproque avec Novell qui protège Novell et ses clients des réclamations légales de Microsoft. Cela inclut également la protection par brevet pour Mono. Cependant, le risque persistait pour (presque) tous les autres utilisateurs. Linus Torvalds a résumé le point de vue du développeur sur le problème lorsqu'il a été confronté à la question des revendications de brevet de SCO: «En principe, je ne fais pas attention aux brevets, car ce serait une perte de temps.» Ce n'est pas sans raison que les brevets logiciels sont très controversés formellement interdite par l' UE .

Les technologies de base ont été partiellement normalisées par Microsoft à Ecma International et l' ISO . Microsoft garantit la licence des pièces ECMA sur une base RAND . Cependant, d'autres parties telles que Windows Forms , ADO.NET et ASP.NET en sont exclues.

L' Open Invention Network défend Mono dans les litiges en droit des brevets.

En raison du risque de poursuites en matière de brevets de la part de Microsoft, Richard Stallman , le leader idéologique du mouvement du logiciel libre , a mis en garde contre le mono après que certaines distributions aient commencé à inclure mono dans l'installation standard. Microsoft a désormais placé de manière irrévocable .NET et C # dans le cadre de l' accord de promesse communautaire et souhaite renoncer aux poursuites en matière de brevets.

Microsoft a fondamentalement changé sa stratégie concernant .NET en 2013 et travaille à rendre le code source de .NET complètement ouvert en open source. À cette fin, la Fondation .NET a été créée par Microsoft, Xamarin et d'autres , et les droits sur .NET Framework ont ​​été transférés. En divulguant le code source sous la licence MIT ou Apache 2.0, le code source du .NET Framework peut être utilisé de presque toutes les manières - c'est-à-dire également dans des projets fermés. Les litiges relatifs aux licences et au droit des brevets n'étaient guère possibles et n'étaient donc plus à craindre. Microsoft et Xamarin travaillent ensemble depuis 2015 pour fournir .NET sur différentes plates-formes. Cela a conduit à la prise de contrôle de Xamarin par Microsoft en 2016, ce qui rend bien sûr les poursuites en matière de brevets contre Xamarin (et Mono) encore plus inutiles.

En mai 2019, Microsoft a annoncé que d'ici novembre 2020 .NET Framework, .NET Core et Mono seraient fusionnés en une plate-forme unifiée .NET 5.0, par laquelle Mono prendrait en charge l'exécutabilité sur iOS et Android ainsi que la prise en charge de la compilation AOT . Cela a depuis été mis en perspective et une intégration complète a été annoncée pour .NET 6.

Voir également

  • MonoDevelop , un environnement de développement basé sur Mono pour Linux
  • SharpDevelop , un environnement de développement open source pour Windows, à partir duquel le code source MonoDevelop est né
  • C # , le principal langage mono
  • DotGNU , un autre projet d'implémentation .NET open source
  • IKVM.NET

Littérature

liens web

Preuve individuelle

  1. github.com . (consulté le 6 novembre 2020).
  2. ^ Le projet Open Source mono sur Open Hub: Page Langues . Dans: Open Hub . (consulté le 18 juillet 2018).
  3. http://www.mono-project.com/
  4. .NET Core Repository (anglais) - Dépôt d' accueil du projet .NET Core
  5. Roslyn (anglais) - Dépôt d'accueil de la plate-forme de compilation "Roslyn"
  6. .NET Core CLR (anglais) - Dépôt d'accueil du .NET Core CLR
  7. Mono Compatibility (anglais) - Annonce du projet Mono du 20 mars 2011
  8. Présentation de la compatibilité mono
  9. dotnet-bot: Classe XamlCompilationAttribute (Xamarin.Forms.Xaml). Récupéré le 23 janvier 2019 (allemand).
  10. Thraka: Quoi de neuf dans .NET Core 3.0. Récupéré le 9 juillet 2019 (allemand).
  11. .NET clone Mono en version 2.0 publié - article sur Heise en ligne , 6 octobre 2008
  12. Mono apprend C # 4.0 - Article sur Golem.de , 10 décembre 2009
  13. Licenciements chez Novell - Aus für Mono - Article dans Linux-Magazin , 4 mai 2011
  14. La nouvelle Suse prend son envol - article sur Heise en ligne , du 19 mai 2011
  15. Miguel de Icaza fonde une entreprise mono - Article sur Golem.de , du 17 mai 2011
  16. Announcing Xamarin (anglais), Miguel de Icaza, consulté le 17 février 2012
  17. Mono: Suse et Xamarin travaillent ensemble - article sur Heise en ligne , du 18 juillet 2011
  18. Mono Relicensed MIT - Mono News, 31 mars 2016
  19. Mono 5.0 est déployé avec le compilateur Roslyn C #, Concurrent Garbage Collection , 20 mai 2017
  20. Notes de version de Mono 6.4.0 | Mono. Récupéré le 3 octobre 2019 .
  21. aspnet core / Blazor Framework. Dans: Github. Microsoft, consulté le 25 juillet 2018 .
  22. Laurent Samsonetti: Mono et WebAssembly - Mises à jour sur la compilation statique | Mono. Récupéré le 9 juin 2018 .
  23. Microsoft annonce la prise en charge de Linux - Article sur Golem.de , 3 novembre 2006
  24. Microsoft et Novell: la chose avec les brevets - article sur Heise en ligne , du 3 novembre 2006
  25. Lettre conjointe à la communauté Open Source - Annonce de Novell et Microsoft
  26. Novell et Microsoft Collaborate (anglais) - FAQ sur la collaboration entre Microsoft et Novell
  27. Microsoft et Novell: Le pacte en détail - Article sur Golem.de , 3 novembre 2006
  28. SCO attaque Linus Torvalds - article sur Heise en ligne , du 18 juin 2003
  29. Richard Stallman considère le mono dangereux - Article sur Golem.de , du 29 juin 2009
  30. Microsoft: Aucune action en matière de brevets pour .NET et C # - Article sur Golem.de , 7 juillet 2009
  31. Blog .NET Framework - Annonce de l'aperçu de .NET 2015: une nouvelle ère pour .NET. Microsoft, consulté le 13 novembre 2014 .
  32. heise en ligne: Build 2019: Microsoft associe Mono et .NET Core à .NET 5.0. Récupéré le 6 mai 2019 .
  33. Annonce de .NET 5 Preview 4 et notre voyage vers un .NET. 19 mai 2020, consulté le 20 mai 2020 (anglais américain).