Applikation läuft nicht
-
Mono ist nicht von Microsoft.
Ob MS NET auf Linux möchte sei zu bezweifeln auch wenn es Unterstützung für Mono gibt.
Wenn dich an Mono etwas stört dann ändere es ab. Es ist OS.
-
Das könnte was für dich sein:
http://www.mono-project.com/Guide:_Porting_Winforms_Applications
-
Um das vielleicht mal klarzustellen: eine Applikation/Sprache, die man portieren muss, um sie auf einer anderen Plattform lauffähig zu bekommen, hat eben absolut nichts mit "plattformunabhängig" zu tun.
Das ist eigentlich nichts weiter als ein typisches MS-Schlagwort zur Verdummung der Entwickler - und um so zu tun, als könnte man irgendwie mit tatsächlich plattformunabhängigen Sprachen mithalten. C# an sich ist technologisch eine Sackgasse, die nur dazu dient, die Entwickler an diesen proprietären, nirgend wo sonst nutzbaren Krempel zu binden.
Vernünftige Gründe, auf diese Sprache umzustellen fallen mir nicht ein - besonders im Vergleich zu Java nicht, was konsequenter designt und _tatsächlich_ plattformunabhängig in dem Sinne ist, das Applikationen praktisch ohne jegliche Modifikation auf 'zig unterschiedlichen Betriebssystemen sofort lauffähig sind.
-
Ich habs eben mal unter ubuntu getestet, lief mit "mono TestApp.exe" (wobei TestApp.exe unter Windows mit der VS-Express-Edition erzeugt wurde und auch nur aus nem leeren Fenster besteht)
-
In Java kann man, wie in C#, Plattformspezifische dinge einbauen. Lässt man die Finger von den Plattformspezifischen dingen, muss da garnix "portiert" werden.
Portiert wird IMHO die Laufzeitumgebung. Und hier muss ich für Java auch die Umgebung wählen, die für meine Plattform geeignet ist. Die "Plattformunabhängigkeit" der Javaapplikation hängt somit auch stark von der Implementierung der Laufzeitumgebung für ein System ab.
-
Knuddlbaer schrieb:
Und hier muss ich für Java auch die Umgebung wählen, die für meine Plattform geeignet ist. Die "Plattformunabhängigkeit" der Javaapplikation hängt somit auch stark von der Implementierung der Laufzeitumgebung für ein System ab.
Was ist denn das für ein Unfug, was musst du da wählen? Du installierst eine JRE, und es ist komplett egal, ob die aus den aktuellen OpenJDKs kommt oder direkt von Sun, es gibt immer nur zwei Schritte:
- JRE installieren (so nicht schon vorhanden)
- Applikation startenDas Betriebssystem ist hierbei komplett egal, es läuft überall genau so.
-
Dann erkläre mal, warum man beim Downloaden der JRE genau darauf achten muss, was man installiert und warum man dann nicht einfach einen einzigen download hat.
http://www.java.com/de/download/manual.jsp
http://www.java.com/de/download/faq/index_mobile.xml
-
Knuddlbaer schrieb:
Dann erkläre mal, warum man beim Downloaden der JRE genau darauf achten muss, was man installiert und warum man dann nicht einfach einen einzigen download hat.
http://www.java.com/de/download/manual.jsp
http://www.java.com/de/download/faq/index_mobile.xmlWo ist da jetzt das Problem? Dass du das Betriebssystem auswählen musst, für dass du die JRE herunterladen willst, ist jetzt ja wohl kaum ein Problem, oder?
OK, bei C# ist das nicht notwendig, das gibts effektiv nur für Windows.
-
Wo ist das Problem Mono als Framework zu installieren und dann die C# Anwendung laufen zu lassen ?
C# ist nicht Plattformunabhängig weil ich Mono in Betrieb nehmen muss, Java ist Plattformunabhängig obwohl ich eine Plattformabhängige RE in betrieb nehmen muss.
Wie stand es denn vor 8 Jahren mit der Portabilität von Java ?
-
geeky schrieb:
Ich habs eben mal unter ubuntu getestet, lief mit "mono TestApp.exe" (wobei TestApp.exe unter Windows mit der VS-Express-Edition erzeugt wurde und auch nur aus nem leeren Fenster besteht)
Mußt Du das mono vorher wirklich angeben? Ich bilde mir ein dass ich vor zwei Jahren auf einem Debian die Exen starten konnte, ohne mono aufzurufen? Vielleicht war der JIT-Aufruf in der Shell integriert oder gar im Kernel.
-
Knuddlbaer schrieb:
Wo ist das Problem Mono als Framework zu installieren und dann die C# Anwendung laufen zu lassen ?
Das Problem findest du beim Originalposting (ich habe dir die relevanten Stellen mal markiert):
ich habe hier eine C#-Applikation, die komplett managed Code verwendet, nicht auf irgend welche system-spezifischen Ressourcen zugreift und auch keine all zu komplexe Oberfläche hat.
Unter Windows läuft diese Applikation ganz problemlos, nur unter Linux/Mono kann ich sie beim besten Willen nicht zur Mitarbeit bewegen. Gibt es irgend welche bekannten Tricks/Hacks/Stolperstellen, die ich beachten muss?
Und wenn du im Thread noch ein wenig weiter gehst, wirst du festellen, dass Mono halt nicht sauber funktioniert.
-
Wenn wir uns die Argumente so zurecht legen wie wir wollen:
Ich habs eben mal unter ubuntu getestet, lief mit "mono TestApp.exe"
OK, bei C# ist das nicht notwendig, das gibts effektiv nur für Windows.
Was ist denn das für ein Unfug, was musst du da wählen? Du installierst eine JRE, und es ist komplett egal, ob die aus den aktuellen OpenJDKs kommt oder direkt von Sun, es gibt immer nur zwei Schritte:
- JRE installieren (so nicht schon vorhanden)
- Applikation startenDas Betriebssystem ist hierbei komplett egal, es läuft überall genau so.
Hierbei lässt Du einfach unter den Tisch fallen, das die JRE Plattformabhängig ist und die Javaapplikation wiederum von der implementierung der JRE abhängt.
Man findet genug Beiträge in denen es um Probleme mit Inkompatibilitäten geht. Vor allem wenn man mal die Zeit ein wenig zurück dreht. So Problemlos wie Du es zu verkaufen versuchst ist auch Java nicht.
-
Knuddlbaer schrieb:
Man findet genug Beiträge in denen es um Probleme mit Inkompatibilitäten geht. Vor allem wenn man mal die Zeit ein wenig zurück dreht. So Problemlos wie Du es zu verkaufen versuchst ist auch Java nicht.
Ich verkaufe Java nicht als problemlos. Nur um _den_ Ball mal zurückzuspielen: so plattformunabhängig, wie du C# zu verkaufen versuchst, ist es noch nicht annähernd.
Und ob MS Projekten wie Mono - wenn sie nur mal weit genug gediehen sind - nicht den Hals auf rechtlichem Wege umdreht, ist noch lange nicht ausgemacht.
Und bevor du mir jetzt damit kommst: nein, bei Java ist das nicht möglich, es ist Open Source. Also auch wenn Sun es sich anders überlegt/pleite geht/die Technologie sterben lassen möchte, die Sprache wird nicht verschwinden. Bei MS wäre ich mir ja nicht so sicher, da wird generell alle 3 Jahre eine neue technologische Sau durchs Dorf getrieben, die einem dann jeweils als Ultima Ratio untergejubelt wird - und ein paar Jahre später sollte man den Quatsch dann am liebsten fallen lassen um der nächsten, natürlich komplett inkompatiblen Technologie zu folgen.
-
witte schrieb:
geeky schrieb:
Ich habs eben mal unter ubuntu getestet, lief mit "mono TestApp.exe" (wobei TestApp.exe unter Windows mit der VS-Express-Edition erzeugt wurde und auch nur aus nem leeren Fenster besteht)
Mußt Du das mono vorher wirklich angeben? Ich bilde mir ein dass ich vor zwei Jahren auf einem Debian die Exen starten konnte, ohne mono aufzurufen? Vielleicht war der JIT-Aufruf in der Shell integriert oder gar im Kernel.
Ich habs gerade nochmal getestet: Über die Konsole gehts auch ohne mono, doppelklicken auf dem Desktop öffnet nur den Archiv-Manager.
(Getestet mit der aktuellen ubuntu-Version unter vmware)
-
O.K. dann ist es wahrscheinlich eine Erweiterung in der Bash. Danke.