In diesem speziellen Fall muss ich .complicated NET-Anwendung für Linux ausführen. Mit komplizierten ich meine - das Projekt wurde für 3 Jahre entwickelt und ich möchte es nicht wieder in Java oder etwas anderes schreiben und entwickeln und unterstützen beide, .NET und Java-Version später.Wie schreibe ich Programme in C# .NET, um sie unter Linux/Wine/Mono auszuführen?
Anwendung erzeugt Maus- und Tastaturereignisse (durch winapi/dll-Import) und verwendet seriellen Port. Ich habe auch einige Timer für Verzögerungen - für die Kommunikation der seriellen Schnittstelle (10-20ms, brauche ich nicht große Präzision hier).
Der Rest nur viel einfacher Code ist, nichts Besonderes, keine seltsamen Kontrollen, keine directx usw.
Was soll ich erwarten? Ob das funktioniert?
Wenn ein Teil des Codes fehlschlägt - ich kann es ein wenig ändern, Netzwerkverbindung zwischen. NET-Anwendung und Mini-Anwendung auf Linux, die ich für das Senden von Maus und Tastatur Ereignisse oder RS232-Kommunikation schreiben kann.
Zusätzlich möchte ich über Wein und .NET im allgemeinen fragen:
Wie .NET-Anwendungen schreiben, die auf Linux/Wine/Mono laufen soll?
- welche Version von Framework? (1.x, 2.0 oder kann ich mit 3.5?)
- Was sollte ich vermeiden
Bearbeiten/von Kommentar bewegt (Importe aus Windows-DLL-Timer?):
I mono sah vor ein paar Jahren, aber es war schrecklich. Jetzt sehe ich, wie es wächst, unterstützt LINQ, Threading und andere komplizierte Funktionen. Außerdem sieht Hilfe jetzt wirklich ernst aus. Ich akzeptiere noch keine Antwort, weil ich sehe, dass Leute immer noch sehr nützliche Links posten. Wenn diese Frage viele +1 bekommt, werde ich sie neu schreiben und vielleicht wird dies anderen helfen.
Ich hoffe, dass hier jemand praktische Erfahrungen mit .NET auf Linux haben hier ...
[Mono] (http://www.mono-project.com/Main_Page) ist eine Open-Source-Implementierung von Microsoft .NET, die Sie wahrscheinlich dafür verwenden könnten. –
Danke. Ich habe das irgendwo gesehen, aber ich habe es vergessen. Trotzdem brauche ich noch ein paar praktische Informationen von jemandem, der etwas entwickelt hat, das in Mono funktioniert. – Kamil
Wenn die Kompatibilität beunruhigend ist, gibt es den [Mono Migration Analyzer] (http://www.mono-project.com/MoMA), der mögliche Probleme anzeigen kann. –