Deployen auf mono

In den letzten Tagen habe ich mich mal mit etwas beschäftigt, daß schon lange auf meiner Liste steht: .NET mit mono.

Nur kurz zu mono: mono ist eine Runtime Engine für .NET die Open Source gepflegt wird und nicht offiziell von Microsoft unterstützt wird. Sie ermöglicht unter anderem das Ausführen von kompilierten .NET Assemblies und Applikationen auf Linux. Das ist vor allem dann prima, wenn man bestehende .NET Applikationen an Kunden mit Linux Server verkaufen möchte.

Soweit der Plan. Wie immer sieht es in der Realität ein kleeeeeiiiin wenig anders aus.

Lesson Learned #1: mono mag keine Precompiled Webapps. Diese Erkenntnis hat mich geschlagene 5 Stunden gekostet. Gemerkt habe ichs daran, daß log4net mir leider nichts geloggt hat. Der Aufruf von XmlConfiguration.Configure() in der Global.asax wurde nie ausgeführt, was mich darauf gebracht hat, daß es deswegen wahrscheinlich nichts wurde.

Lesson Learned #2: mono hat keine Dokumentation… Da könnte man wirklich mal was machen.

Lesson Learned #3: Nicht jede Assembly funktioniert unter Mono. Zum Beispiel den MySQL .NET Connector sollte man nicht in der 5.0 Version benutzen. Der baut schlicht und ergreifend einfach keine Verbindungen auf. Warum auch immer…

Lesson Learned #4: mono ist seltsam… Ich habe für die Konfiguration von NHibernate in der web.config eine entsprechende Sektion angelegt, die vom NameValueSectionHandler bearbeitet wird. Unter der MS .NET CLR 2.0 funktioniert das bei mir auch einwandfrei. Die Dokumentation von NHibernate sieht auch genau dies vor und behauptet es würde in mono funktionieren. Zumindest mein mono 1.2.2.1 wirft hier sehr seltsame Fehlermeldungen von fehlenden Attributen in der Config. Ich bin auch mal ein wenig in den betroffenen Source Code von mono eingestiegen, habe aber jetzt nichts Offensichliches gefunden wo ich oder die einen Fehler machen… Seltsam.

Fazit zum Thema Migrierbarkeit: Ja, aber…

Überwiegend braucht man halt Zeit. :)

2 Reaktionen zu “Deployen auf mono”

  1. Michi

    Sehr interessant und Danke für die Info.
    Michi

  2. Ben

    Gerne doch… Mehr davon?

Einen Kommentar schreiben