Laden...

C# (bzw. ASP.NET) in UNIX-Umgebung... möglich? wenn ja, wie und welche Einbußen bringt's mit sich?

Erstellt von cptjmiller vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.645 Views
C
cptjmiller Themenstarter:in
93 Beiträge seit 2007
vor 11 Jahren
C# (bzw. ASP.NET) in UNIX-Umgebung... möglich? wenn ja, wie und welche Einbußen bringt's mit sich?

Hallo zusammen,

ich programmiere nun seit ein paar Jahren immer mal wieder sporadisch, kleine bis mittelgewichtige Dinge in C#. Schwerpunkt liegt dabei auf Anwendungen mit ASP.NET-Webservices auf IIS.

Vor kurzem wurde ich gefragt, ob ich ggf. ne kleine Web-App coden könnte...Datenbank, Webservice-Schnittstellen, Web- und Desktop-Client.
Dummerweise ist auf dem Zielsystem nur UNIX, genauer gesagt, Ubuntu verfügbar - und daran kann auch nichts geändert werden.
Dummerweise Nr. 2 reichen meine Java-Kenntnisse nicht aus, zeitnah auf der Plattform was zur Verfügung zu stellen.

Ich würde daher gerne bei C# und ASP.NET als meine gewohnte Entwicklungssprache bleiben und wollte nun mal ausloten, welche Möglichkeiten es hier für mich gibt.

Klar, die hardcore-Version, d.h. VirtualBox aufsetzen und dann ein Windows in der VM laufen lassen, wäre ne Möglichkeit, ist aber zu viel des Guten.

Ich gehe davon aus, es gibt keinen "OpenSource IIS" für Unix, oder?

Hat jemand schon Erfahrungen mit dem .NET-Framework und dem ISS in WINE gemacht? Funktioniert das?

Wie stehts mit Mono? Was genau ist Mono nun? Stimmt es, dass es die OpenSource-Implementierung des .NET-Frameworks ist? Wie "weit" ist das? Werden Webservices, Datenbankconnectoren a la Visual Studio... unterstützt? Wo muss ich da überall Abstriche machen?

Oder gibts vlt. noch ganz andere Möglichkeiten für mich, meine C#/ASP.NET-Lösung auf Unix lauffähig zu gestalten?

Vlt. war der eine oder andere ja schon in der Situation und hat ne Lösung parat... Danke für Eure Hilfe.

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo cptjmiller,

wenns eh nur eine kleine Web-App werden soll, geh den Weg mit dem geringsten Widerstand und nimm Mono. Siehe hierzu Guide: Porting ASP.NET Applications - Mono.

Ein "OpenSource IIS für Unix" würde dir ohne nötige Laufzeitumgebung (.net od. eben Mono) auch nichts nützen.

IIS/Asp.net per VM in Ubuntu hosten finde ich wiederum weniger hardcore als IIS in Wine 😉

Was genau ist Mono nun? Stimmt es, dass es die OpenSource-Implementierung des .NET-Frameworks ist? Wie "weit" ist das? Werden Webservices, Datenbankconnectoren a la Visual Studio... unterstützt? Wo muss ich da überall Abstriche machen?

Das kannst du doch auch selbst ergoogeln. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

3.170 Beiträge seit 2006
vor 11 Jahren

Hallo,

Stimmt es, dass es die OpenSource-Implementierung des .NET-Frameworks ist? Ja.
Wie "weit" ist das? In einigen Bereichen sehr weit, in anderen hängt es etwas nach. WPF zum Beispiel gibt AFAIK es gar nicht.
Werden Webservices, Datenbankconnectoren a la Visual Studio... unterstützt? Was meinst Du mit "a la Visual Studio"? Datenbankconnectoren gibt es auf jeden Fall, mit den Designern hapert es aber. Webservices gibt es generell auch. Zumindest die alten .asmx-Webservices stellen kein Problem dar. Wie weit das mit WCF ist, kann ich nicht sagen, länger nichts mehr damit gemacht, ich glaube aber das geht auch. Da sollte Dir Google helfen.
Ich gehe davon aus, es gibt keinen "OpenSource IIS" für Unix, oder?

Mit Ubuntu solltest Du auf Linux und nicht auf Unix unterwegs sein. Wie auch immer, das MONO-Framework bringt einen eigenen Webserver für ASP.NET mit, den XSP. Dazu das Paket mono-websrever installieren. Der kann standalone oder als Modul im Apache laufen.

Oder gibts vlt. noch ganz andere Möglichkeiten für mich, meine C#/ASP.NET-Lösung auf Unix lauffähig zu gestalten? Nicht, dass ich wüsste. MONO mit XSP als Webserver ist auf jaden Fall der gängige Standard.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

E
180 Beiträge seit 2010
vor 11 Jahren

Hat jemand schon Erfahrungen mit dem .NET-Framework und dem ISS in WINE gemacht? Funktioniert das?

davon kann ich dir nur dringens abraten, da es keine saubere Sache ist. Bleib bei den Mono-empfehlungen, allerdings kann es sein, dass du dir den Mono Sourcecode selbst compilieren musst. da z.b. unter Debian immer noch die 1.9.1 offiziell in den Packages gelistet wird. Empfehlenswert auch in Verbindung mit x64-Linux ist eine Version ab 2.10, da dort auch imense Performancesteigerungen vollzogen wurden.

Ich persönlich setze Mono seit der 1.9.1 ein im Serverseitigem Betrieb und hab bisher nur gute Erfahrungen gemacht. Das geht u.a. sogar soweit, dass du unter Windows mit VS coden kannst, testen ebenfalls unter Windows und die exe einfach unter Mono ausführen kannst auf dem Linux und in 80% aller Fälle läuft sie 1a sofort. Nichts destotrotz hängt dies natürlich auch von der Art der Anwendung ab und sollte natürlich trotzdem gründlich getestet werden.

Der genannte XSP is eine wunderbare Sache, und wenn du skeptisch bist, lad dir Mono für Windows runter und schreib fix ne kleine aspx Seite ala "Hello Webserver" und schaus dir an.

Gruß

H
222 Beiträge seit 2010
vor 11 Jahren

Hallo,

bei uns in der Firma haben wir schon ASP.NET-Projekte, mit überschaubarem Aufwand, auf Mono portiert. Fallstricke gibt es hier und da natürlich immer (zum Beispiel wurde die Methode "Session_Start" in der "Global.asax" unter Ubuntu nicht ausgeführt), aber die sind meistens lösbar.

Zu erwähnen sei hier der Mono Migration Analyzer (MoMA). Dieses Tool prüft eine Assembly auf Lauffähigkeit unter Mono und gibt eine (meiner Meinung nach) brauchbare Liste von Fehlern (zum Beispiel P/Invoke-Aufrufe) aus:

Mono Migration Analyzer (MoMA)

MfG Hurby

Die Welt hat genug für jedermanns Bedürfnisse, aber nicht für jedermanns Gier.

C
cptjmiller Themenstarter:in
93 Beiträge seit 2007
vor 11 Jahren

Hallo alle und Danke für die zahlreichen Antworten,
der Trend deutet Richtung Mono, das werde ich mir morgen mal ansehen. Da ich vom Projekt nun keine großen Specials erwarte, besteht Hoffnung, dass das alles letztlich klappen könnte...

Danke für den Schubs in die richtige Richtung.

V
66 Beiträge seit 2010
vor 11 Jahren

Reden wir hier jetzt eigentlich von Unix oder Linux?

B
387 Beiträge seit 2005
vor 11 Jahren

Hi,

es geht hier eigentlich um Linux. Folgender Teil aus dem ersten Beitrag hier:

dem Zielsystem nur UNIX, genauer gesagt, Ubuntu verfügbar

ich vermute mal, dass verschiedene Unix-Varianten wie HP-UX oder IBM AIX auch für Mono Probleme machen könnten. Zumindest habe wir, als wir das vor einem Jahr ungefährt kurz untersucht haben, keine wirklichen Erfahrungsberichte auf diesen Systemen gefunden. Offiziellen Support für Mono gabs damals auch nur für Suse Linux, wenn ichs noch richtig im Kopf habe.

Gruß
Roland