¿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.
-
La implementación de código abierto de .NET para Linux se llama Mono .
-
La compatibilidad está bien documentada (consulte los enlaces a continuación). Mono es compatible con LINQ, subprocesos y algunas otras características complicadas.
-
Incluso es compatible con InteropServices. Es posible usar DllImport en la biblioteca de Linux (!), como
libc.so
por ejemplo. -
Mono puede admitir Android e iOS (Están basados en Linux, ¿verdad?)
-
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,