Open Source im professionellen Einsatz

ECMA-Standards

Die Mono-Entwickler orientieren sich an den ECMA-Standards für die C#-Programmiersprache [4] und der so genannten Common Language Infrastructure, also der Laufzeitumgebung mit einigen Basisbibliotheken [5]. Dort sind allerdings nicht alle Teile von Microsofts Dotnet normiert. Damit dennoch möglichst viele Dotnet-Programme unter Mono laufen, versuchen die Mono-Entwickler zumindest die wichtigsten Microsoft-Bibliotheken nachzubauen.

Mangels helfender Hände hecheln sie dabei jedoch Microsoft ständig hinterher. So implementiert die aktuelle Version 2.10 von Mono gerade mal die Basisbibliotheken der Dotnet-2.0-Spezifikation vollständig. Von den Nachfolgern 3.0, 3.5 und 4.0 sind nur Teile umgesetzt. Der Kasten "Bestandsaufnahme" verrät, welche Klassen Mono derzeit kennt und welche nicht.

Um die Lücken zu kompensieren, bringt Mono eigene Klassenbibliotheken mit. Diese binden die Gecko-Engine des Mozilla-Browsers ein, rüsten Posix-Unterstützung für Unix-Betriebssysteme nach und liefern Zugriff auf Datenbanken, wie Db4o, Firebird, MySQL, PostgreSQL oder SQLite. Damit stehen aber wieder nicht alle Klassenbibliotheken aus Mono unter Dotnet bereit. Wer also ein Dotnet-Programm für mehrere Plattformen schreiben möchte, muss sich auf den kleinsten gemeinsamen Nenner beschränken.

Android, I-OS und der Problemfall Grafik

Ähnliches gilt, wenn man die Welt von Android und I-OS betritt: Die Mono-Fassungen für die mobilen Geräte umfassen lediglich die Kern-Libraries sowie Klassenbibliotheken, über die man die nativen APIs der Geräte anspricht. Wer sich auf Android beschränkt, muss immerhin die Anwendung nur einmal entwickeln, damit sie auf allen Android-Geräten läuft.

Mono Touch für das iPhone übersetzt übrigens den Quellcode in nativen iPhone-Programmcode, da Apple dazwischengeschaltete (JIT-)Interpreter und virtuelle Maschinen verbietet.

Ein weiteres Problem bilden grafische Benutzeroberflächen. Hier ist besonders spürbar, dass unter Mono die Windows Presentation Foundations (WPF) fehlen. Zwar sollen diese – neuesten Meldungen von Microsoft zufolge – ab Windows 8 wegfallen, doch mit den in WPF enthaltenen Klassen entstehen heutzutage die Benutzeroberflächen von Dotnet-Programmen. Unter Mono muss der Entwickler auf die alten, eigentlich durch die WPF abgelösten Windows Forms oder eben GTK# zurückgreifen.

Wie der Name andeutet, bindet GTK# die guten alten GTK+-Bibliotheken ein. Der F-Spot-Programmierer Timothy Howard bestätigt, dass die Bibliotheken zwar mittlerweile stabil unter Windows laufen, sie sehen aber nach Meinung vieler Nutzer hässlich und veraltet aus.

Eine gewöhnungsbedürftige Optik zeigt allerdings auch der Windows-Forms-Ersatz auf Nicht-Windows-Rechnern. Neben den Forms und GTK# gibt es weitere GUI-Toolkits, die die Mono-Entwickler auf ihren Projektseiten detailliert gegenübergestellt haben [9].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook