Mono .. du nervst .. manchmal


Die Programmiersprache Mono ist nicht jeder Manns Sache. Für reine Konsolen Anwendungen, die dann später auch auf dem Mac oder Windows laufen, ist Mono sehr gut geeignet. GUI Anwendungen habe ich bis jetzt nur mit c# unter Windows erstellt, was recht einfach ist. Überall findet man Code Schnippsel, die man gut verwenden kann zudem ist c# sehr gut dokumentiert und die API hat viele Beispiele.

Bei Mono sieht das alles etwas anders aus, die API ist nicht vollständig und wenn man nach GDK/GTK Spezialitäten sucht, findet man nur schwer, was brauchbar ist. Mono Develop, der für die Entwicklung von Mono Anwendungen verwendet werden kann, hat so einige Macken mit denen man erst einmal klarkommen muss. Im großen und ganzen ist Mono Develop recht ordentlich und stabil.

Der Umfang der Widgets bzw. GUI Komponenten ist bei c# wesentlich größer und einfacher zu handhaben, ich verwende sonst den SharpDevelop unter Windows.  Für das Open eMag ist jetzt neben einer Konsolen Anwendung, die aus PDF Dateien fertige HTML Dateien für das Web oder eben für das iPad / Android zaubert, noch eine GUI Anwendung notwendig geworden und damit tue ich mich im Moment etwas schwer.

Die GUI Anwendung soll das Erstellen von optimierten HTML5 und CSS5 Seiten und Inhalten für Mobile Endgeräte vereinfachen. Man muss nur ein Bild laden, dieses wird automatisch in das richtige Bildformat umgewandelt. Danach kann man noch Text zu dem Bild hinzufügen oder auch nicht. Der Text kann HTML Tags enthalten, muss aber nicht. Das ganze wird dann gespeichert und fertig ist die optimierte Seite. Das Programm soll später auch unter Mac OSX bzw. Windows laufen.

Ich denke, dass eine GUI für die Mitarbeiter (und für solche, die es noch werden wollen) einfacher ist als, die Bilder in eine Adobe Rome / Scribus Vorlage pressen zu müssen. Zudem geht alles sehr viel schneller, die Android Ausgabe der Open eMag wird genau mit diesem Programm erstellt werden. Die PDF Ausgabe und die iPad / iPhone Ausgabe ist schon fertig. Veröffentlicht wird dann alles an einem Tag, irgendwann in 1 – 2 Wochen.

Mono hat einen Vorteil, mit einem einfachen Befehl kann man alle verwendeten Bibliotheken und das Programm selber zu einem gesamten Programm verknüpfen. Auf diese Weise benötigen Andere Mitarbeiter keine Mono Installation auf ihren Rechnern.

$ mkbundle -o hello hello.exe –deps
Sources: 1 Auto-dependencies: True
embedding: /home/ed/Projects/hello_world/hello.exe
embedding: /mono/lib/mono/1.0/mscorlib.dll
Compiling:
as -o /tmp/tmp54ff73e6.o temp.s
cc -o hello -Wall temp.c `pkg-config –cflags –libs mono` /tmp/tmp54ff73e6.o
Done

$ ls -l
total 1481
-rwxr-xr-x  1 ed users 1503897 2005-04-29 11:07 hello
-rw-r–r–  1 ed users     136 2005-04-29 11:06 hello.cs
-rwxr-xr-x  1 ed users    3072 2005-04-29 11:06 hello.exe

About these ads

10 Gedanken zu “Mono .. du nervst .. manchmal

  1. blogausgraz schreibt:

    Hallo burli,
    Stimmt, Mono ist die freie Umsetzung von c# auf andere Plattformen. Eigentlich, die Umsetzung einer
    Metasprache, deren ByteCode auf einer Runtime läuft.

    Danke für deine Berichtigung, ist wohl nicht so klar rüber gekommen.

  2. burli schreibt:

    Mono ist die freie Umsetzung des .NET Frameworks. c# ist eine von mehreren Sprachen, die man mit dem Framework verwenden kann. Auch Mono beherrscht VB.Net oder IronPython und es gibt CLI eigene Sprachen wie Boo

  3. pinky schreibt:

    >Stimmt, Mono ist die freie Umsetzung von c# auf andere Plattformen.

    Dann wäre Mono doch wieder eine Programmiersprache, denn C# ist eine Programmiersprache. Mono ist die Platformunabhängige Umsetzung von .Net kombiniert mit Modulen die über .Net hinaus gehen (Gtk+, diverse Unix/Posix Bibliotheken, Cocoa#, MonoTouch, Mono-Android,…). Als Programmiersprache kann u.a. C#, F#, Scala, Boo, Java, IronPython,…

  4. Oder Java mit GTK+. Da bekommt man sogar ein aktuelles GTK+ 3, während man bei Mono immer noch mit 2.12 (von 2007) abgespeist wird.

    GTK# 3 ist zwar schon länger in Planung, aber ich habe bisher noch nichts davon gesehen. Seit Xamarin liegt der Fokus der Entwicklung ohnehin auf mobilen Geräten, daher würde ich im Moment eher zu anderen Frameworks tendieren. Wenn man keinen bestehenden .NET-Code hat, ist Mono nur ein Framework wie jedes andere.

  5. blogausgraz schreibt:

    Hallo FERNmann,
    Mono ist nicht wirklich aktuell aber es funktioniert. Das Programm, was ich mit Mono entwickel ist nur eine Zwischenlösung und nichts, was länger Produktiv verwendet wird, hoffe ich. Für das Open eMag ist eine WebAnwendung geplant, die genau das machen soll, was jetzt die Mono Anwendung macht. Vorausgesetzt, Apple und Google akzeptieren die Mobile Anwendung und das Open eMag wird von vielen gelesen.

    Ist das Interesse an der Mobilen Ausgabe des Open eMag nicht so groß, dann wird es weiterhin nur noch die PDF Ausgabe geben und die ganze Entwicklung ist dann um sonst gewesen.

Die Kommentarfunktion ist geschlossen.