- Mono (Projekt)
-
Mono-Projekt Entwickler: Novell Aktuelle Version: 2.4
(30. März 2009)Betriebssystem: Unix, GNU/Linux, BSD-Derivate, Microsoft Windows, Mac OS X und Solaris 8 Kategorie: Plattform Lizenz: MIT/X11; teilweise:GPLv2/LGPLv2 http://www.mono-project.com/ Mono ist eine .NET-kompatible Entwicklungs- und Laufzeitumgebung für plattformunabhängige Software, basierend auf dem Common Language Infrastructure-Standard. Das Open-Source-Projekt wird hauptsächlich von Novell betrieben.
Damit wird es möglich, unter Windows für .NET erstellte Programme ohne Neukompilierung unter unixoiden und anderen Betriebssystemen laufen zu lassen, oder unter anderen Betriebssystemen Programme für Microsoft .NET zu entwickeln. Dafür muss jedoch beachtet werden, welcher .NET Version welche Mono Version gegenüber steht, da diese einen unterschiedlichen Entwicklungsstand ausweisen. Auf Basis von .NET 3.0 oder .NET 3.5 entwickelte Anwendungen können derzeit beim Einsatz von Mono wegen noch nicht implementierter Funktionen und Techniken nicht lauffähig sein. Dies wird nur dadurch erforderlich, weil Microsoft .NET nur für das eigene Betriebssystem anbietet.
Microsoft hat zwar bereits eine .NET-Variante namens Rotor für Microsoft Windows, FreeBSD und Mac OS X bereitgestellt, jedoch sind die Firma Ximian und andere der Ansicht, dass die von Microsoft vorgegebenen Lizenzbedingungen zu restriktiv sind.
Inhaltsverzeichnis
Geschichte
Die von Miguel de Icaza mitgegründete Firma Ximian (am 4. August 2003 von Novell gekauft) setzte sich das Ziel, eine Reihe von .NET-kompatiblen Entwicklungswerkzeugen 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 zu schaffen.
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 de Icaza, einen C#-Compiler als eine Übung 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 bei Ximian 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.
Heutiger Stand
Mono funktioniert und wird in proprietären und Quell-offenen Programmen verwendet. Es gibt eine gemeinsame Schnittmenge zwischen Mono und .NET, die schwankt. Zum einen entwickelt sich .NET fortwährend weiter und erweitert sein Framework, und zum Anderen implementiert Mono laufend neue Elemente von .NET. Zudem hat das Mono-Projekt Elemente in seinem Framework, die nicht in .NET zu finden sind (zum Beispiel GTK#). Das heißt, sowohl der Weg von Mono zu .NET als auch umgekehrt kann zu Problemen führen. Für den Weg von .NET zu Mono hat das Mono-Projekt das Tool (Entwicklerwerkzeug) MoMA bereitgestellt um die Kompatibilität zu testen. Es ist möglich einzelne .dll zwischen den Projekten zu übertragen.
Derzeit bemüht sich das Projekt noch mit der Kompatibilität zu .Net 2.0. Allerdings gibt es mit dem Projekt Olive auch eine Initiative, die neueren Technologien von .NET 3.0 und .NET 3.5 zu implementieren. Mit der Version 2.0 wurde auch 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.[1]
Standardisierung und Patente
Teile der Klassenbibliothek berühren möglicherweise Softwarepatente der Firma Microsoft. Microsoft hat mit Novell [2][3] ein gegenseitiges Patentabkommen geschlossen welches Novell und seine Kunden vor Rechtsansprüchen Microsofts schützt. Dieses beinhaltet auch einen Patentschutz für Mono[4][5][6]. Für (fast) alle anderen Nutzer besteht das Risiko jedoch weiterhin. Die Sicht der Entwickler auf das Problem brachte Torvalds auf dem 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.“[7] 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.
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.
- DotGNU
- Portable.NET
- 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
Einzelnachweise
- ↑ .NET-Klon Mono in Version 2.0 erschienen – Artikel bei heise online, vom 6. Oktober 2008
- ↑ Golem.de Newsmeldung: Microsoft kündigt Linux-Unterstützung an
- ↑ Heise.de-Newsmeldung über das Patentabkommen
- ↑ Joint letter to the Open Source Community From Novell and Microsoft
- ↑ FAQ zur Zusammenarbeit zwischen Microsoft und Novell
- ↑ Golem.de Newsmeldung: Microsoft und Novell: Der Pakt im Detail
- ↑ Heise, 18. Juni 2003 15:45, SCO greift Linus Torvalds an, http://www.heise.de/newsticker/SCO-greift-Linus-Torvalds-an--/meldung/37736
Weblinks
- Webseite des Projekts (englisch)
- Roadmap des Projekts (englisch)
- ECMA-334-Spezifikation (englisch)
- ECMA-335-Spezifikation (englisch)
- Entwicklung einer Java-VM für .NET (englisch)
- Deutsche Mono Community
- Deutschsprachiges Mono Virtual VMWare Image
- Mono SuSE-LiveCD
Wikimedia Foundation.