GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie schreibt man Programme in C# .NET, um sie unter Linux/Wine/Mono auszuführen?

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.

  1. Die Open-Source-Implementierung von .NET für Linux heißt Mono .

  2. Die Kompatibilität ist gut dokumentiert (siehe Links unten). Mono unterstützt LINQ, Threading und einige andere komplizierte Funktionen.

  3. Es unterstützt sogar InteropServices. Es ist möglich, DllImport in der Linux-Bibliothek zu verwenden (!), wie libc.so zum Beispiel.

  4. Mono unterstützt Android und iOS (Sie basieren auf Linux, oder?)

  5. 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,


Linux
  1. Wie man C-Programme unter Linux mit gdb debuggt

  2. So installieren Sie Wine und führen Windows-Apps unter Linux aus

  3. Linux – Wie ist Mono magisch?

  4. Linux – Wie führe ich einen Bootloader von Linux aus?

  5. Wie läuft Linux auf PS3?

So führen Sie MS-DOS-Spiele und -Programme unter Linux aus

So führen Sie alle Skripte in einem Verzeichnis unter Linux aus

Installieren und Ausführen von SketchUp Make 2017 unter Linux – Anleitung

So führen Sie C/C++-Programme unter Linux aus [Terminal &Eclipse]

Wie führe ich xCloud unter Linux (auch unter SteamOS) aus?

Wie man ein C-Programm unter Linux schreibt und ausführt