GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo escribir programas en C# .NET, para ejecutarlos en Linux/Wine/Mono?

¿Has leído sobre Mono.NET en http://www.mono-project.com?

Le permite escribir aplicaciones .NET para Linux con pequeñas diferencias con respecto a la implementación de Microsoft. No creo que Wine se adapte a ninguno de los componentes .NET.

Simplemente lea la documentación anterior y tenga una oportunidad.

PD:Esto también te da la lista de compatibilidad entre mono y .NET. http://www.mono-project.com/Compatibility y MoMA (analizador de migración mono) es una herramienta que escaneará cualquier aplicación .NET ya creada para ver si es compatible para implementar en Linux.


En esta publicación, acorté y combiné toda la información que aprendí de otros en este hilo.

  1. La implementación de código abierto de .NET para Linux se llama Mono .

  2. La compatibilidad está bien documentada (consulte los enlaces a continuación). Mono es compatible con LINQ, subprocesos y algunas otras características complicadas.

  3. Incluso es compatible con InteropServices. Es posible usar DllImport en la biblioteca de Linux (!), como libc.so por ejemplo.

  4. Mono puede admitir Android e iOS (Están basados ​​en Linux, ¿verdad?)

  5. Existe una herramienta para el análisis de compatibilidad Mono llamado MoMA (analizador de migración mono)

La herramienta Mono Migration Analyzer (MoMA) lo ayuda a identificar los problemas que pueda tener al migrar su aplicación .Net a Mono. Ayuda a identificar llamadas específicas de la plataforma (P/Invoke) y áreas que aún no son compatibles con el proyecto Mono.

Enlaces útiles:

Mono - página de inicio

Mono - página con documentación

Mono - página de compatibilidad

MoMA - Página de análisis de migración mono


Tenemos un par de aplicaciones .net que se ejecutan en Windows o Linux con Mono.

Puedes desarrollar en VisualStudio si quieres, no es necesario utilizar el entorno de desarrollo Mono. Solo se requieren las bibliotecas mono de tiempo de ejecución para ejecutar aplicaciones .net en Linux.

Usamos net 2.0 target para compilar estas aplicaciones en VisualStudio, porque mono es casi 100 % compatible con .net 2.0. Mono también implementa APIS de versiones posteriores de .net, pero no todas y no tan completas. Si usa funciones de versiones más nuevas que la 2.0, debe verificar si son compatibles o usar la herramienta de análisis de compatibilidad Mono. También puede usar el desarrollo de Mono en lugar de Visual Studio, mi predecesor estaba haciendo eso; el resultado es más o menos el mismo y prefiero usar Visual Studio en su lugar.

No encontramos ningún problema importante y las aplicaciones son relativamente complejas, con múltiples subprocesos, E/S asíncrona, WinForms, sockets, puertos serie, etc.

Algunas aplicaciones usaban bibliotecas .net que no están disponibles en MS .net, pero todas pueden instalarse en Windows también para que no haya problemas para ejecutar estas aplicaciones en Windows.

Espero que ayude,


Linux
  1. Cómo depurar programas C en Linux usando gdb

  2. Cómo instalar Wine y ejecutar aplicaciones de Windows en Linux

  3. Cómo instalar Wine en Linux

  4. C# en entorno linux

  5. Cómo escribir un demonio de Linux con .Net Core

Cómo ejecutar juegos y programas de MS-DOS en Linux

Cómo ejecutar todos los scripts en un directorio en Linux

Cómo instalar y ejecutar SketchUp Make 2017 en Linux - Guía

Cómo ejecutar programas C/C++ en Linux [Terminal y Eclipse]

¿Cómo ejecutar xCloud en Linux (también en SteamOS)?

Cómo escribir y ejecutar un programa C en Linux