21.4Mono

Das .NET Framework ist eine riesige Klassenbibliothek, die viele Ähnlichkeiten mit den für Java verfügbaren Bibliotheken aufweist. Auch die speziell für die .NET-Programmierung entwickelte Sprache C# wirkt Java-Programmierern auf Anhieb vertraut. Das .NET Framework und C# ergeben zusammen ein objektorientiertes Fundament für die Windows- und Webprogrammierung, an dem – zumindest innerhalb der Microsoft-Welt – kein Weg mehr vorbei führt.

Was hat dies alles nun mit Linux zu tun? Obwohl die Linux-Gemeinde im Allgemeinen nicht besonders Microsoft-verliebt ist, gefiel einigen Open-Source-Entwicklern das Konzept gut. Sie begannen daher unter dem Namen Mono mit einer Open-Source-Implementierung von C# und wesentlichen Teilen des .NET Frameworks. Hinter dem Mono-Projekt stand ursprünglich Ximian, später Novell. Mittlerweile ist die Firma Xamarin der kommerzielle Partner des Mono-Projekts.

Mono ist praxistauglich, wird aber momentan von keiner der gängigen Linux-Distributionen standardmäßig installiert. Ausführliche Informationen über das Mono-Projekt und über das Ausmaß der Kompatibilität zu C# bzw. zum .NET Framework gibt die folgende Website:

http://www.mono-project.com

Mono wird üblicherweise in Form einiger mono-xxx- und libmono-xxx-Pakete installiert, deren wichtigstes mono-runtime (Debian, Ubuntu) bzw. mono-core (Fedora, RHEL) ist. Es enthält unter anderem den C#-Compiler mcs, die Mono Virtual Machine, eine Sammlung von .NET-kompatiblen Bibliotheken (*.dll-Dateien im Verzeichnis /usr/lib/mono/gac) sowie einige Mono-Konfigurationsdateien (Verzeichnis /etc/mono).

Mono-Programme haben auch unter Linux die Endung *.exe und liegen ähnlich wie Java-Programme in einem Byte-Code vor. Um ein Mono-Programm auszuführen, übergeben Sie den Dateinamen der *.exe-Datei an das Kommando mono. Da dies in der Praxis zu umständlich ist, existieren zum Start von Mono-Anwendungsprogrammen kleine Scripts.

Für Mono-Entwickler gibt es die grafische Benutzeroberfläche MonoDevelop, die ursprünglich aus dem Windows-Programm SharpDevelop entstanden, mittlerweile aber davon unabhängig ist.

http://www.monodevelop.com