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