GNU/Linux >> Linux Esercitazione >  >> Linux

Come scrivere programmi in C# .NET, per eseguirli su Linux/Wine/Mono?

Hai letto di Mono.NET su http://www.mono-project.com?

Ti consente di scrivere app .NET per Linux con piccole differenze rispetto all'implementazione Microsoft. Non credo che wine possa far fronte a nessuno dei componenti .NET.

Basta leggere prima la documentazione e il gioco è fatto.

PS:questo ti dà anche l'elenco di compatibilità tra mono e .NET. http://www.mono-project.com/Compatibility e MoMA (mono migration Analyzer) è uno strumento che analizzerà qualsiasi app .NET già creata per vedere se è compatibile per la distribuzione su Linux.


In questo post ho accorciato e combinato tutte le informazioni che ho appreso da altri in questo thread.

  1. L'implementazione open source di .NET per Linux si chiama Mono .

  2. La compatibilità è ben documentata (vedi link sotto). Mono supporta LINQ, threading e alcune altre funzioni complicate.

  3. Supporta anche InteropServices. È possibile utilizzare DllImport sulla libreria linux (!), come libc.so per esempio.

  4. Mono può supportare Android e iOS (sono basati su Linux, giusto?)

  5. Esiste uno strumento per l'analisi della compatibilità Mono chiamato MoMA (Mono Migration Analyzer)

Lo strumento Mono Migration Analyzer (MoMA) ti aiuta a identificare i problemi che potresti riscontrare durante il porting della tua applicazione .Net su Mono. Aiuta a individuare le chiamate specifiche della piattaforma (P/Invoke) e le aree che non sono ancora supportate dal progetto Mono.

Link utili:

Mono - home page

Mono - pagina con documentazione

Mono - pagina di compatibilità

MoMA - Pagina Mono Migration Analysis


Abbiamo un paio di applicazioni .net che girano su Windows o Linux con Mono.

Puoi sviluppare in VisualStudio se vuoi, non è necessario utilizzare l'ambiente di sviluppo Mono. Per eseguire le applicazioni .net su Linux sono necessarie solo le librerie runtime mono.

Usiamo net 2.0 target per compilare queste app in VisualStudio, perché mono è compatibile quasi al 100% con .net 2.0. Mono implementa anche le API delle versioni successive di .net, ma non tutte e non così complete. Se utilizzi funzionalità di versioni più recenti della 2.0, dovresti verificare se sono supportate o utilizzare lo strumento di analisi della compatibilità Mono. Puoi anche usare lo sviluppo Mono invece di Visual Studio, il mio predecessore lo stava facendo; il risultato è praticamente lo stesso e preferisco invece utilizzare Visual Studio.

Non abbiamo riscontrato problemi di rilievo e le app sono relativamente complesse, fortemente multithread, I/O asincrono, WinForms, socket, porte seriali, ecc.

Alcune app utilizzavano librerie .net che non sono disponibili in MS .net, ma tutte queste possono essere installate anche su Windows in modo che non ci siano problemi nell'eseguire queste app in Windows.

Spero di esserti stato d'aiuto,


Linux
  1. Come eseguire il debug di programmi C in Linux usando gdb

  2. Come installare Wine ed eseguire app di Windows in Linux

  3. Come installare Wine su Linux

  4. Linux – In che modo Mono è magico?

  5. Linux:come eseguire un bootloader da Linux?

Come eseguire giochi e programmi MS-DOS in Linux

Come eseguire tutti gli script in una directory in Linux

Come installare ed eseguire SketchUp Make 2017 in Linux - Guida

Come eseguire programmi C/C++ in Linux [Terminale ed Eclipse]

Come eseguire xCloud su Linux (anche su SteamOS)?

Come scrivere ed eseguire un programma C in Linux