www.wikidata.de-de.nina.az
Mono spanisch fur Affe oder auch vom griechischen monos fur allein oder einzig ist eine alternative quelloffene Implementierung von Microsofts NET Framework Sie ermoglicht die Entwicklung von plattformunabhangiger Software auf den Standards der Common Language Infrastructure und der Programmiersprache C Entstanden ist das Mono Projekt 2001 unter Fuhrung von Miguel de Icaza von der Firma Ximian die 2003 von Novell aufgekauft wurde Die Entwickler wurden 2011 in eine neue Firma Xamarin ubernommen die im Jahr 2016 eine Microsoft Tochtergesellschaft wurde In der Folge wurde Microsoft Hauptsponsor des Projektes 5 MonoBasisdatenMaintainer Zoltan Varga 1 Marek SafarEntwickler Xamarin zuvor Novell Erscheinungsjahr 2004Aktuelle Version 6 12 0 199 2 3 14 Juni 2023 Betriebssystem Unix BSD Derivate Linux Windows macOS und Solaris 8Programmiersprache C C 4 XMLKategorie FrameworkLizenz MIT X11 teilweise GPLv2 LGPLv2www mono project com Inhaltsverzeichnis 1 Hintergrunde und technische Details 1 1 Besonderheiten von Mono 2 Geschichte 3 Standardisierung und Patente 4 Siehe auch 5 Literatur 6 Weblinks 7 EinzelnachweiseHintergrunde und technische Details BearbeitenMono unterstutzt eine hohe Anzahl an Plattformen und Architekturen Durch Lizenzierung unter MIT Lizenz gibt es fur Entwickler und Nutzer praktisch keine Einschrankungen so dass hohe Lizenzkosten fur das Betriebssystem des Servers vermieden werden konnen wenn NET basierte Software eingesetzt werden soll Allerdings lasst sich inzwischen hierzu oft auch NET Core verwenden Hinzu kommt bei der Entwicklung von Smartphone Apps der Wunsch Code fur verschiedene Plattformen Android iOS Windows Phone auf einer gemeinsamen Basis zu pflegen Microsoft dagegen bot seine Laufzeitumgebung NET lange Zeit ausschliesslich fur seine eigenen Windows Betriebssysteme an Ursprunglich gab es von Microsoft eine Open Source Variante von NET namens Rotor welche neben Windows auch fur FreeBSD und macOS verfugbar war Dennoch war das Unternehmen Xamarin einst der Ansicht dass es mit einer eigenen Entwicklung in diesem Bereich Erfolg haben konnte insbesondere weil ihm die von Microsoft angebotenen Lizenzbedingungen fur viele Bereiche zu restriktiv erschienen Seit dem 12 November 2014 begann Microsoft Teilmengen des NET Frameworks via GitHub unter der MIT Lizenz zu veroffentlichen So befinden sich dort neben dem NET Core 6 und der offenen C und Visual Basic Compiler Plattform Roslyn 7 auch eine in der Entwicklung befindliche plattformubergreifende Laufzeitumgebung die NET Core CLR 8 Mit diesen Projekten mochte Microsoft unter anderem die Entwicklung des Mono Projekts unterstutzen Mit Mono ist es moglich Programme welche fur die Microsoft NET Umgebung erstellt wurden auch ohne Neuubersetzung unter unixahnlichen Betriebssystemen auszufuhren Der Vorteil einer solchen Crossplattform Entwicklung besteht darin den Komfort und Funktionsumfang der Microsoft Entwicklungsumgebung Microsoft Visual Studio zu nutzen Auch SharpDevelop steht nur unter Windows zur Verfugung Umgekehrt lassen sich mit MonoDevelop auf anderen Betriebssystemen Programme entwickeln die auch mit Microsoft NET lauffahig sind Mono bietet ab der Version 2 10 die Kompatibilitat mit den nicht Windows spezifischen Bibliotheken von NET 2 0 Anwendungen die auf NET 3 0 oder hoher basieren sind derzeit unter Mono unter Umstanden nicht lauffahig da bislang nur eine Teilmenge umgesetzt ist Es fehlen Windows Presentation Foundation Windows Workflow Foundation und teilweise Windows Communication Foundation 9 Des Weiteren ist der Zugriff auf windowsspezifische Funktionalitaten mittels P Invoke oder COM Interop d h die Verwendung von Bibliotheken die nicht in IL Code sondern in normalem Prozessor spezifischem Assemblercode vorliegen nicht gestattet Zwar kann auch Mono auf Bibliotheken zugreifen die in C oder C geschrieben sind allerdings sind die meisten dieser Bibliotheken plattformabhangig Aktuell konnen Anwendungen auf Basis des NET 4 7 2 Profils von Mono ausgefuhrt werden Stand Januar 2019 Einschrankungen gibt es jedoch in verschiedenen Teilbereichen des Frameworks 10 Explizit ausgenommen wurde die Unterstutzung der Windows Presentation Foundation die auf absehbare Zeit nicht reimplementiert werden wird XAML sollte im Rahmen von Moonlight unterstutzt werden dessen Entwicklung wurde allerdings eingestellt spater auch die des Original Silverlight Im Rahmen von Xamarin Forms kam Xaml spater aber trotzdem zum Einsatz 11 Besonderheiten von Mono Bearbeiten Mono implementierte auch eine Reihe von Funktionen die sich im Namespace Mono befinden beispielsweise Schnittstellen fur betriebssystemnahe Funktionen unter Unix Mono Unix Native oder die Mono Cecil dll mit der Anderungen an bereits kompiliertem Code vorgenommen werden konnen Durch Verwendung von NuGet und dem NET Standard sind diese auch fur NET und NET Core nutzbar Des Weiteren ist die Generierung von nativem Code aus der exe oder dll mit Hilfe von mono aot full einfach und transparent moglich Beim klassischen NET liess sich eine AOT Kompilierung dagegen umstandlich auf einem inoffiziellen Weg erreichen indem man Tool NGEN fur das Administrator Rechte benotigt wurden fur das Anwendungsprogramm verwendete das Ergebnis landete dann in einem Native Image Cache mit kryptischem Dateinamen Fur NET Core wird ab der Version 3 mit den Ready to Run Images R2R eine Moglichkeit zur AOT Kompilierung angeboten dabei befindet sich der vorab compilierte Code in derselben Datei wie der IL Code auch konnen die benotigten Teile des Laufzeitsystems mit eingebunden werden 12 13 Geschichte BearbeitenDas von Miguel de Icaza mitgegrundete Unternehmen Ximian am 4 August 2003 von Novell gekauft setzte sich die Entwicklung einer Reihe von NET kompatiblen Entwicklungswerkzeugen zum Ziel einschliesslich eines C Compilers und einer Common Language Runtime fur den Betrieb unter Windows Linux verschiedenen Unix Derivaten sowie macOS Miguel de Icaza interessierte sich fur die NET Technologie seit im Dezember 2000 die ersten NET Informationen verfugbar wurden Im Februar 2001 begann er zu Ubungszwecken einen C Compiler der Programmiersprache in C zu schreiben Im April 2001 konnte er auf einer Gnome Konferenz eine erste Version prasentieren Bei Ximian gab es intern viele Diskussionen uber die Entwicklung von Tools zur Produktivitatssteigerung um mehr Anwendungen in kurzerer Zeit zu erstellen und die Entwicklungskosten reduzieren zu konnen Nach einer Machbarkeitsstudie entstand das Mono Team Wegen der begrenzten Anzahl der Mitarbeiter war es Ximian allerdings nicht moglich einen vollstandigen NET Ersatz zu schreiben also wurde das Mono Open Source Projekt gegrundet welches auf der O Reilly Konferenz im Juli 2001 bekanntgegeben wurde Drei Jahre spater am 30 Juni 2004 wurde Mono 1 0 veroffentlicht Mit der am 6 Oktober 2008 veroffentlichten Version 2 0 wurden die wichtigsten Eigenschaften von NET 2 0 hinzugefugt und es gibt mit dem Projekt Olive auch eine Initiative die neueren Technologien von NET 3 0 und NET 3 5 zu implementieren Zudem wurde der C Compiler um die Sprach Eigenschaften von C 3 0 erweitert hierbei handelt es sich in erster Linie um die Unterstutzung von LINQ sowie ein neuer XAML Parser entwickelt Allerdings weisen die Entwickler ausdrucklich darauf hin dass die Windows Presentation Foundation wohl vorerst wegen der enormen Komplexitat nicht implementiert wird Ebenfalls mit der Version 2 0 ist nun auch ein Visual Basic 8 0 Compiler mit an Bord 14 Mit der am 9 Dezember 2009 veroffentlichten Version 2 4 3 wurde neben einigen Fehlerkorrekturen der freie C Compiler mit allen wesentlichen Funktionen von C 4 0 erganzt 15 Anfang 2011 stellte der neue Novell Eigentumer Attachmate die Weiterentwicklung des Mono Projektes ein und entliess am 2 Mai 2011 30 Mono Entwickler 16 Nils Brauckmann der neue Suse Chef nannte als Grund die geringe Nachfrage bei den Kunden 17 Wenige Tage nach dem Stopp des Mono Projekts bei Novell grundete Miguel de Icaza das Unternehmen Xamarin das sich in Zukunft der Entwicklung von Mono widmen soll 18 Die meisten zuvor bei Suse angestellten Mono Entwickler wechselten zu Xamarin In weiterer Folge gewahrte SUSE Xamarin eine unbefristete Lizenz zur Nutzung und kommerziellen Verwertung von Mono MonoTouch fur iOS und Android 19 sowie den Mono Tools for Visual Studio 20 Mit der Ubernahme durch Microsoft im Jahr 2016 wurden die Xamarin Tools in Microsoft Visual Studio integriert und basierend auf der Xamarin IDE Xamarin Studio wurde Visual Studio for Mac entwickelt Mono wurde unter das Dach der NET Foundation gestellt und unter der MIT Lizenz neu herausgegeben 21 Durch die Bereitstellung der NET Core Plattform als Open Source unter einer kompatiblen Lizenz ist die gegenseitige Ubernahme von Code fur beide Projekte wesentlich vereinfacht Seit Mai 2017 enthalten die offiziellen Pakete von Mono auch eine Version des C Compiler Roslyn sowie von MSBuild Mit der aktuellen Version von Mono wird auch C 8 0 vom Compiler unterstutzt 22 23 Fur das Blazor Framework mit WebAssembly Client im Browser kommt eine Mono Umgebung zum Einsatz die als WebAssembly kompiliert wurde 24 25 Ab der Version 5 12 werden auch IBM i und IBM AIX unterstutzt Standardisierung und Patente BearbeitenVor der Ubernahme von Xamarin durch Microsoft bestanden in der Open Source Szene erhebliche Bedenken gegenuber Mono weil Teile der Klassenbibliothek moglicherweise Softwarepatente von Microsoft beruhrten Microsoft hat dann mit Novell 26 27 ein gegenseitiges Patentabkommen geschlossen welches Novell und seine Kunden vor Rechtsanspruchen Microsofts schutzt Dieses beinhaltet auch einen Patentschutz fur Mono 28 29 30 Fur fast alle anderen Nutzer bestand das Risiko jedoch weiterhin Die Sicht der Entwickler auf das Problem brachte Linus Torvalds auf den Punkt als er sich durch Patentanspruche von SCO mit dem Thema konfrontiert sah Ich achte prinzipiell nicht auf Patente denn das ware Zeitverschwendung 31 Nicht ohne Grund sind Softwarepatente hochst umstritten und in der EU formal nicht gestattet Die grundlegenden Technologien sind teilweise durch Microsoft bei Ecma International und der ISO standardisiert worden Microsoft garantiert eine Lizenzierung der ECMA Teile auf RAND Basis Andere Teile wie zum Beispiel Windows Forms ADO NET und ASP NET sind hiervon jedoch ausgeschlossen Das Open Invention Network verteidigt Mono bei patentrechtlichen Auseinandersetzungen Aufgrund der Gefahr durch Patentklagen seitens Microsoft hatte auch Richard Stallman der ideologische Fuhrer der Freie Software Bewegung vor Mono gewarnt nachdem einige Distributionen dazu ubergegangen waren Mono in die Standardinstallation aufzunehmen 32 Microsoft hat mittlerweile NET und C unwiderruflich unter die Community Promise Vereinbarung gestellt und will auf Patentklagen verzichten 33 Microsoft hat 2013 seine Strategie bezuglich NET grundlegend geandert und arbeitet daran den Quellcode von NET komplett als Open Source offenzulegen Dazu wurde von Microsoft Xamarin und anderen die Stiftung NET Foundation gegrundet welche die Rechte am NET Framework ubertragen bekommen hat Durch die Offenlegung der Quellcodes unter der MIT Lizenz bzw Apache 2 0 Lizenz ist der Quellcode des NET Frameworks nahezu beliebig sprich auch in Closed Source Projekten verwendbar Lizenz und patentrechtliche Auseinandersetzungen waren somit kaum noch moglich und somit auch nicht mehr zu befurchten Microsoft und Xamarin arbeiteten seit 2015 gemeinsam daran NET auf unterschiedlichen Plattformen bereitzustellen 34 Dies mundete ein in die Ubernahme von Xamarin durch Microsoft 2016 was Patentklagen gegen Xamarin und Mono naturlich erst recht sinnlos macht Im Mai 2019 kundigte Microsoft an bis November 2020 NET Framework NET Core und Mono zu einer einheitlichen Plattform NET 5 0 zusammenzufuhren wobei von Mono die Ablauffahigkeit auf iOS und Android ubernommen werden soll sowie die Unterstutzung von AOT Kompilierung 35 Dies wurde inzwischen relativiert und die vollstandige Integration zunachst fur NET 6 angekundigt dann auf Sommer 2022 verschoben One NET 36 37 Siehe auch BearbeitenMonoDevelop eine mittlerweile eingestellte Entwicklungsumgebung auf Basis von Mono fur Linux SharpDevelop eine mittlerweile eingestellte Open Source Entwicklungsumgebung fur Windows aus deren Quellcode MonoDevelop entstand C die primare Mono Sprache DotGNU ein weiteres seit Ende 2012 eingestelltes Projekt fur eine quelloffene NET Implementierung IKVM NETLiteratur BearbeitenEdd Dumbill Niel M Bornstein Mono A Developer s Notebook O Reilly Beijing Koln 2004 ISBN 0 596 00792 2 Kaan Candar MONO NET goes Linux Franzis Verlag Deutschland Dezember 2007 ISBN 978 3 7723 7105 9 Michael Tschater Die freien Dotnet Implementierungen Mono und DotGNU im Vergleich Uberall Punkte Linux Magazin 10 2005 online unter http www linux magazin de Heft Abo Ausgaben 2005 10 Ueberall PunkteWeblinks BearbeitenWebsite des Projekts englisch Roadmap des Projekts englisch ECMA 334 Spezifikation englisch ECMA 335 Spezifikation englisch Einzelnachweise Bearbeiten github com Release mono 6 12 0 199 6 12 0 Stable 6 12 0 199 The mono Open Source Project on Open Hub Languages Page In Open Hub abgerufen am 18 Juli 2018 http www mono project com NET Core Repository englisch Home repository des NET Core Projekts Roslyn englisch Home repository der Compilerplattform Roslyn NET Core CLR englisch Home repository der NET Core CLR Mono Compatibility englisch Meldung des Mono Projekts vom 20 Marz 2011 Mono Kompatibilitatsubersicht dotnet bot XamlCompilationAttribute Class Xamarin Forms Xaml Abgerufen am 23 Januar 2019 deutsch Thraka Neuerungen in NET Core 3 0 Abgerufen am 9 Juli 2019 deutsch LakshanF Einzeldatei App NET Abgerufen am 2 Marz 2022 deutsch NET Klon Mono in Version 2 0 erschienen Artikel bei Heise online vom 6 Oktober 2008 Mono lernt C 4 0 Artikel bei Golem de vom 10 Dezember 2009 Entlassungen bei Novell Aus fur Mono Artikel beim Linux Magazin vom 4 Mai 2011 Die neue Suse startet durch Artikel bei Heise online vom 19 Mai 2011 Miguel de Icaza grundet Mono Unternehmen Artikel bei Golem de vom 17 Mai 2011 Announcing Xamarin englisch Miguel de Icaza zugegriffen 17 Februar 2012 Mono Suse und Xamarin arbeiten zusammen Artikel bei Heise online vom 18 Juli 2011 Mono Relicensed MIT Mono News vom 31 Marz 2016 Mono 5 0 Rolls Out With Roslyn C Compiler Concurrent Garbage Collection 20 Mai 2017 Mono 6 4 0 Release Notes Mono Abgerufen am 3 Oktober 2019 Aspnet core Blazor Framework In Github Microsoft abgerufen am 25 Juli 2018 englisch Laurent Samsonetti Mono and WebAssembly Updates on Static Compilation Mono Abgerufen am 9 Juni 2018 englisch Microsoft kundigt Linux Unterstutzung an Artikel bei Golem de vom 3 November 2006 Microsoft und Novell die Sache mit den Patenten Artikel bei Heise online vom 3 November 2006 Joint letter to the Open Source Community englisch Meldung von Novell und Microsoft Novell and Microsoft Collaborate englisch FAQ zur Zusammenarbeit zwischen Microsoft und Novell Microsoft und Novell Der Pakt im Detail Artikel bei Golem de vom 3 November 2006 SCO greift Linus Torvalds an Artikel bei Heise online vom 18 Juni 2003 Richard Stallman halt Mono fur gefahrlich Artikel bei Golem de vom 29 Juni 2009 Microsoft Keine Patentklagen wegen NET und C Artikel bei Golem de vom 7 Juli 2009 NET Framework Blog Announcing NET 2015 Preview A New Era for NET Microsoft abgerufen am 13 November 2014 englisch heise online Build 2019 Microsoft fuhrt Mono und NET Core zusammen zu NET 5 0 Abgerufen am 6 Mai 2019 Announcing NET 5 Preview 4 and our journey to one NET 19 Mai 2020 abgerufen am 20 Mai 2020 amerikanisches Englisch heise online Microsoft liefert NET 6 aus Abgerufen am 9 November 2021 Abgerufen von https de wikipedia org w index php title Mono Software amp oldid 233726104