Haben Sie auf http://www.mono-project.com etwas über Mono.NET gelesen?
Es ermöglicht Ihnen, .NET-Apps für Linux mit geringfügigen Unterschieden zur Microsoft-Implementierung zu schreiben. Ich glaube nicht, dass Wine mit irgendeiner der .NET-Komponenten zurechtkommt.
Lesen Sie einfach vorher die Dokumentation und los geht's.
PS:Hier finden Sie auch die Kompatibilitätsliste zwischen Mono und .NET. http://www.mono-project.com/Compatibility und MoMA (Mono Migration Analyzer) ist ein Tool, das jede bereits erstellte .NET-Anwendung scannt, um festzustellen, ob sie für die Bereitstellung unter Linux kompatibel ist.
In diesem Beitrag habe ich alle Informationen, die ich von anderen in diesem Thread gelernt habe, gekürzt und kombiniert.
-
Die Open-Source-Implementierung von .NET für Linux heißt Mono .
-
Die Kompatibilität ist gut dokumentiert (siehe Links unten). Mono unterstützt LINQ, Threading und einige andere komplizierte Funktionen.
-
Es unterstützt sogar InteropServices. Es ist möglich, DllImport in der Linux-Bibliothek zu verwenden (!), wie
libc.so
zum Beispiel. -
Mono unterstützt Android und iOS (Sie basieren auf Linux, oder?)
-
Es gibt ein Tool zur Mono-Kompatibilitätsanalyse genannt MoMA (Mono Migration Analyzer)
Das Tool Mono Migration Analyzer (MoMA) hilft Ihnen, Probleme zu identifizieren, die beim Portieren Ihrer .Net-Anwendung auf Mono auftreten können. Es hilft dabei, plattformspezifische Aufrufe (P/Invoke) und Bereiche zu lokalisieren, die noch nicht vom Mono-Projekt unterstützt werden.
Nützliche Links:
Mono - Homepage
Mono - Seite mit Dokumentation
Mono - Kompatibilitätsseite
MoMA - Monomigrationsanalyseseite
Wir haben ein paar .net-Anwendungen, die unter Windows oder Linux mit Mono laufen.
Sie können in VisualStudio entwickeln, wenn Sie möchten, es ist nicht notwendig, die Mono-Entwicklungsumgebung zu verwenden. Nur die Mono-Laufzeitbibliotheken sind erforderlich, um .net-Anwendungen unter Linux auszuführen.
Wir verwenden net 2.0-Ziel, um diese Apps in VisualStudio zu kompilieren, da Mono nahezu 100 % kompatibel mit .net 2.0 ist. Mono implementiert auch APIS von späteren .net-Versionen, aber nicht alle und nicht so vollständig. Wenn Sie Funktionen neuerer Versionen als 2.0 verwenden, sollten Sie prüfen, ob diese unterstützt werden, oder das Mono-Kompatibilitätsanalyse-Tool verwenden. Sie können auch Mono-Entwicklung anstelle von Visual Studio verwenden, mein Vorgänger hat das getan; Das Ergebnis ist ziemlich gleich, und ich ziehe es vor, stattdessen Visual Studio zu verwenden.
Wir haben keine größeren Probleme festgestellt, und die Apps sind relativ komplex, stark multithreaded, asynchrone E/A, WinForms, Sockets, serielle Ports usw.
Einige Apps verwendeten .net-Bibliotheken, die in MS .net nicht verfügbar sind, aber all diese können auch unter Windows installiert werden, sodass es kein Problem gibt, diese Apps unter Windows auszuführen.
Hoffe, das hilft,