- Mono-Projekt
-
Mono-Projekt Entwickler Xamarin (zuvor Novell) Aktuelle Version 2.10.6
(14. Oktober 2011)Betriebssystem Unix/BSD-Derivate, GNU/Linux, Windows, Mac OS X und Solaris 8 Kategorie Laufzeitumgebung Lizenz MIT/X11; teilweise:GPLv2/LGPLv2 Deutschsprachig nein www.mono-project.com Mono (vom griechischen monos für „allein“ oder „einzig“ sowie spanisch für „Affe“) ist eine .NET-kompatible Entwicklungs- und Laufzeitumgebung für plattformunabhängige Software, basierend auf dem CLI-Standard sowie der Programmiersprache C# und ergänzt durch die Integrierte Entwicklungsumgebung MonoDevelop. Vorangetrieben wurde das Open-Source-Projekt primär durch Mitarbeiter des Softwareunternehmens Novell, später dann Xamarin.
Inhaltsverzeichnis
Hintergründe und technische Details
Mono selbst erhält seine Existenzberechtigung zum einen aus seiner Plattformunabhängigkeit, seiner relativ freien Verfügbarkeit (unter Open-Source-Lizenzierung) und dem Bestreben einer signifikanten Zahl Entwicklern, ihre Abhängigkeit vom Großkonzern Microsoft in Software-Angelegenheiten zu minimieren.
Microsoft dagegen bietet ihre Laufzeitumgebung .NET ausschließlich für ihre eigenen Windows-Betriebssysteme an. Von Microsoft gibt es weiterhin eine Variante von .NET namens Rotor, welche neben Windows auch für FreeBSD und Mac OS X verfügbar ist. Dennoch war das Unternehmen Ximian einst der Ansicht, dass sie mit einer eigenen Entwicklung in diesem Bereich Erfolg haben könnte, insbesondere weil ihr die von Microsoft angebotenen Lizenzbedingungen für viele Bereiche zu restriktiv erschienen.
Mit Mono ist es prinzipiell möglich, Programme, welche für die Microsoft .NET-Umgebung erstellt wurden, auch ohne Neuübersetzung unter unixähnlichen Betriebssystemen auszuführen. Ebenso lassen sich damit auch auf anderen Betriebssystemen Programme entwickeln, die mit Microsoft .NET lauffähig sind.
Mono bietet mit der aktuellen Version 2.10 die Kompatibilität mit den nicht-windowsspezifischen Bibliotheken von .NET 2.0. Anwendungen, die auf .NET 3.0, .NET 3.5 oder .NET 4.0 basieren, sind derzeit unter Mono unter Umständen nicht lauffähig, da bislang nur eine Teilmenge umgesetzt ist. Es fehlen Windows Presentation Foundation, Entity Framework, Windows Workflow Foundation und teilweise Windows Communication Foundation.[1] Des Weiteren ist der Zugriff auf windowsspezifische Funktionalitäten mittels P-Invoke oder COM Interop, d. h. die Verwendung von Bibliotheken, die nicht in IL-Code, sondern in normalem, prozessorspezifischen Assemblercode vorliegen, nicht gestattet. Zwar kann auch Mono auf Bibliotheken zugreifen, die in C oder C++ geschrieben sind, allerdings sind die meisten dieser Bibliotheken plattformabhängig.
Aktuell wird an der Implementierung der Version 4.0 des .NET Standards gearbeitet; im September 2010 erschien ein entsprechendes Preview (Mono-Version 2.8).[2] Explizit ausgenommen wurde die Unterstützung der Windows Presentation Foundation, die auf absehbare Zeit nicht reimplementiert werden wird. Allerdings wird es trotzdem Unterstützung für XAML geben. Der Support für Mac OS X auf x86-64[3] verbleibt bis auf weiteres im Bereich „unstable“.
Geschichte
Das von Miguel de Icaza mitgegründete Unternehmen Ximian (am 4. August 2003 von Novell gekauft) setzte sich die Entwicklung einer Reihe von .NET-kompatiblen Entwicklungswerkzeugen zum Ziel, einschließlich eines C#-Compilers und einer Common Language Runtime für den Betrieb unter Windows, GNU/Linux, verschiedenen Unix-Derivaten sowie Mac OS X.
Miguel de Icaza interessierte sich für die .NET-Technologie, seit im Dezember 2000 die ersten .NET-Informationen verfügbar wurden. Im Februar 2001 begann er zu Übungszwecken einen C#-Compiler der Programmiersprache in C# zu schreiben. Im April 2001 konnte er auf einer GNOME-Konferenz eine erste Version präsentieren.
Bei Ximian gab es intern viele Diskussionen über die Entwicklung von Tools zur Produktivitätssteigerung, um mehr Anwendungen in kürzerer Zeit erstellen und die Entwicklungskosten reduzieren zu können. Nach einer Machbarkeitsstudie entstand das Mono-Team. Aufgrund der begrenzten Anzahl der Mitarbeiter war es Ximian allerdings nicht möglich, einen vollständigen .NET-Ersatz zu schreiben, also wurde das Mono-Open-Source-Projekt gegründet, welches auf der O'Reilly-Konferenz im Juli 2001 bekannt gegeben wurde.
Drei Jahre später, am 30. Juni 2004, wurde Mono 1.0 veröffentlicht.
Mit der am 6. Oktober 2008 veröffentlichten Version 2.0 wurden die wichtigsten Eigenschaften von .NET 2.0 hinzugefügt 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 Unterstützung von LINQ), sowie ein neuer XAML-Parser entwickelt. Allerdings weisen die Entwickler ausdrücklich darauf hin, dass die Windows Presentation Foundation wohl vorerst wegen der enormen Komplexität nicht implementiert wird. Ebenfalls mit der Version 2.0 ist nun auch ein Visual-Basic-8.0-Compiler mit an Bord.[4]
Mit der am 9. Dezember 2009 veröffentlichten Version 2.4.3 wurde – neben einigen Fehlerkorrekturen – der freie C#-Compiler mit allen wesentlichen Funktionen von C# 4.0 ergänzt.[5]
Anfang 2011 stellte der neue Novell-Eigentümer Attachmate die Weiterentwicklung des Mono-Projektes ein und entließ mit 2. Mai 2011 30 Mono-Entwickler.[6] Nils Brauckmann (der neue Suse-Chef) nannte als Grund die geringe Nachfrage bei den Kunden.[7] Wenige Tage nach dem Stopp des Mono-Projekts bei Novell gründete Miguel de Icaza das Unternehmen Xamarin, welche sich in Zukunft der Entwicklung von Mono widmen soll.[8] In weiterer Folge gewährte SUSE Xamarin eine unbefristete Lizenz zur Nutzung und kommerziellen Verwertung von Mono, MonoTouch, Mono für Android sowie den Mono Tools for Visual Studio.[9]
DotGNU und Portable.NET
Vergleichbar war das DotGNU-Projekt, das eine alternative Grundlage für die Erstellung von Webservices und von C#-Applikationen bilden wollte, die im Rahmen des .NET-Frameworks programmiert werden. Vorbild war dabei der Erfolg von GNU/Linux als Lizenzmodell für herstellerunabhängige Software.
Das Portable.NET-Projekt war ein Teilprojekt des DotGNU-Projekts zur Erstellung freier Software-Werkzeuge, um Programme für die Common Language Infrastructure (auch kurz CLI genannt) übersetzen und ausführen zu können. Die ursprüngliche Zielplattform war GNU/Linux, aber mittlerweile funktioniert Portable.NET auch unter Microsoft Windows, Mac OS X sowie diversen Unix-Varianten.
Der Fokus von Portable.NET lag auf Kompatibilität mit den Spezifikationen ECMA-334 und ECMA-335, die C# und die CLI beschreiben, sowie auf Kompatibilität mit der kommerziellen CLI-Implementierung .NET.
Die Arbeit am DotGNU-Projekt ist im August 2006 zum Erliegen gekommen. DotGNU wurde praktisch vom Mono-Projekt abgelöst.
Standardisierung und Patente
Teile der Klassenbibliothek berühren möglicherweise Softwarepatente von Microsoft. Microsoft hat mit Novell[10][11] ein gegenseitiges Patentabkommen geschlossen, welches Novell und seine Kunden vor Rechtsansprüchen Microsofts schützt. Dieses beinhaltet auch einen Patentschutz für Mono.[12][13][14] Für (fast) alle anderen Nutzer besteht das Risiko jedoch weiterhin. Die Sicht der Entwickler auf das Problem brachte Torvalds auf den Punkt, als er sich durch Patentansprüche von SCO mit dem Thema konfrontiert sah: „Ich achte prinzipiell nicht auf Patente, denn das wäre Zeitverschwendung.“[15] Nicht ohne Grund sind Softwarepatente höchst 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 hat Richard Stallman, der ideologische Führer der Freie-Software-Bewegung vor Mono gewarnt, nachdem einige Distributionen dazu übergegangen waren, Mono in die Standardinstallation aufzunehmen.[16] Microsoft hat mittlerweile .NET und C# unwiderruflich unter die Community Promise Vereinbarung gestellt und will auf Patentklagen verzichten.[17]
Siehe auch
- MonoDevelop, eine Entwicklungsumgebung auf Basis von Mono für Linux.
- SharpDevelop, eine Open-Source-Entwicklungsumgebung für Windows, aus deren Quellcode MonoDevelop entstand.
- C#, die primäre Mono-Sprache.
- IKVM.NET
Literatur
- Edd Dumbill, Niel M. Bornstein: Mono. A Developer's Notebook. O'Reilly, Beijing, Köln 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: Überall Punkte, Linux-Magazin 10/2005, online unter http://www.linux-magazin.de/Heft-Abo/Ausgaben/2005/10/Ueberall-Punkte
Weblinks
- Webseite des Projekts (englisch)
- Roadmap des Projekts (englisch)
- ECMA-334-Spezifikation (englisch)
- ECMA-335-Spezifikation (englisch)
- Webpräsenz des DotGNU-Projektes
- Entwicklerseite des DotGNU-Projektes
- Artikel über ein mit DotGNU und LibeRTOS realisiertes Projekt in der industriellen Praxis
- DotGNU Project
Einzelnachweise
- ↑ Mono Compatibility (englisch) - Meldung des Mono Projekts vom 20. März 2011
- ↑ Mono 2.8 Public Preview (englisch) – Meldung bei der Mono-Entwickler-Liste, vom 11. September 2010
- ↑ Mono 2.8 Second Public Preview (englisch) – Meldung bei der Mono-Entwickler-Liste, vom 20. September 2010
- ↑ .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 für 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 gründet Mono-Unternehmen – Artikel bei Golem.de, vom 17. Mai 2011
- ↑ Mono: Suse und Xamarin arbeiten zusammen – Artikel bei Heise online, vom 18. Juli 2011
- ↑ Microsoft kündigt Linux-Unterstützung 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 hält Mono für gefährlich – Artikel bei Golem.de, vom 29. Juni 2009
- ↑ Microsoft: Keine Patentklagen wegen .Net und C# – Artikel bei Golem.de, vom 7. Juli 2009
Kategorien:- .NET
- Freies Programmierwerkzeug
- Laufzeitumgebung
- Mac-OS-Software
- Unix-Software
- Windows-Software
Wikimedia Foundation.