none
Utilizar el programa creado en el lenguaje C# en Ubuntu RRS feed

  • Pregunta

  • Buenas tardes,

    He estado leyendo por el foro y la única opción que he visto ha sido poder desarrollar el programa con MonoDevelop, pero no hay alguna manera de poder compilar el programa creado en C# para poder utilizarlo en Ubuntu?

    Gracias,

    jueves, 6 de febrero de 2020 17:00

Respuestas

  • hola

    >>La aplicación es "Aplicación de Windows Forms", con interfaz de usuario.

    este tipo de proyectos no pueden ejecutar en linux, ni con Mono ni con ningun otro tipo de entorno de desarrollo

    Por ahora en .net solo proyecto de consola y asp.net core son los que puede desarrollar y ejecutar multiplataforma

    Si querias algo multiplataforma podrias evaluar Electron, programarias como si fuera web pero compila una aplicacion de escritorio

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Pablo RubioModerator viernes, 7 de febrero de 2020 17:24
    • Marcado como respuesta Ekhi lunes, 10 de febrero de 2020 11:40
    viernes, 7 de febrero de 2020 11:30
  • Como ya te comenté, si no ha cambiado en estos años, Windows forms no es compatible con Linux

    Efectivamente, no ha cambiado.

    Bueno, sí, ha habido un cambio, y es que ahora tenemos .Net Core, y la versión Core sí que funciona en Linux... pero solo para aplicaciones web. Aunque el último Core soporta el desarrollo de aplicaciones de escritorio, solo las soporta en Windows. Esas aplicaciones no funcionan en Linux a pesar de que Linux soporte la versión de NET Core en la que están escritas.

    • Propuesto como respuesta Pablo RubioModerator viernes, 7 de febrero de 2020 17:24
    • Marcado como respuesta Ekhi lunes, 10 de febrero de 2020 11:59
    viernes, 7 de febrero de 2020 11:40
    Moderador

Todas las respuestas

  • Hola Ekhi

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma,  te  sugiero realizar lo siguiente:

     

     Como alternativa te recomiendo descargar Visual Studio code donde podrás utilizar el lenguaje c#, Visual Studio Code también es soportado por Ubuntu y otros sistemas operativos. Te dejo abajo el enlace de descarga.

     https://code.visualstudio.com/download

     

    Gracias por usar los foros de MSDN.

     

    Pablo Rubio

     

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

     

    jueves, 6 de febrero de 2020 18:41
    Moderador
  • Yo la única forma que conozco es compilar desde Linux o con mono o con Code, pero si es una aplicación Windows form no te va a funcionar. Ya que no es compatible. O al menos no lo era hace unos años.

    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcándola como útil.
    Blog


    jueves, 6 de febrero de 2020 18:57
  • hola

    Que tipo de programa ? consola, desktop, web, mobile, etc

    Si necesitas un IDE de desarrollo podrias usar VS Code el cual correr en linux

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 6 de febrero de 2020 21:37
  • ¿Mono Binary es compatible con Windows?

        Sí, Mono es binario compatible con Windows. Lo que significa que puede ejecutar binarios producidos por compiladores .NET de Microsoft y otros proveedores.

        Al portar sus aplicaciones, debe asegurarse de probar su funcionalidad ya que las diferencias en el sistema operativo subyacente y las diferencias en las implementaciones de VM (errores, características faltantes) pueden afectar su aplicación.

        Mono no tiene todas las API de .NET 1.1 implementadas (consulte las notas de la versión de Mono para Mono 1.0) y al ejecutar un binario de Windows que consume una API no implementada, puede recibir un mensaje oscuro sobre los tokens que no se encuentran.

        En estos casos, es útil compilar su aplicación con el compilador C # de Mono solo para asegurarse de que está consumiendo API compatibles.

        Esta no es una solución perfecta, ya que algunas API en Mono lanzan NotImplementedExceptions en ciertos casos, por lo que aún debe probar su aplicación con Mono. Si le interesa la portabilidad de la aplicación, consulte MoMA, el analizador de migración.

        ¿Hay alguna razón para construir en Mono en lugar de usar Visual Studio y copiar los binarios?

        En general, puede continuar usando Visual Studio para escribir su código si se siente cómodo haciéndolo.

        El uso de Linux para el desarrollo lo alentará a probar su software en Linux con mayor frecuencia y, si tiene la oportunidad, también lo ayudará a "enriquecer" su propio producto.

    Esta pregunta frecuente es un poco antigua (está discutiendo Mono 1.0), pero lo anterior sigue siendo cierto en mi experiencia. Siempre es bueno compilar usando Mono (o desarrollar en MonoDevelop o Xamarin Studio) para asegurarse de que no está usando ninguna biblioteca específica de Microsoft.

    Como mínimo, debe usar un conjunto de pruebas que pueda ejecutarse sin Visual Studio (por lo tanto, evite las herramientas de prueba integradas de Microsoft). De esa manera, puede ejecutar sus pruebas en todos los sistemas en los que planea implementar. MonoDevelop viene con NUnit, que se ejecuta en Windows, Linux y OS X.

    Algunos pensamientos rápidos, adicionales:

        NO use el separador de ruta de Windows ("\") como literal en su código. Utilice System.IO.Path.PathSeparator.
        Utilice siempre System.Environment.NewLine en lugar de avances de línea (\ n) y retornos de carro (\ r).
    viernes, 7 de febrero de 2020 4:10
  • Buenas días,

    La aplicación es "Aplicación de Windows Forms", con interfaz de usuario.

    saludos,

    viernes, 7 de febrero de 2020 6:59
  • Buenas días,

    La aplicación es "Aplicación de Windows Forms", con interfaz de usuario.

    saludos,

    Como ya te comenté, si no ha cambiado en estos años, Windows forms no es compatible con Linux, tendrás que usar otras librerías como puede ser GTK, está por ejemplo creo recordar que funciona tanto en Linux como en Windows.

    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcándola como útil.
    Blog

    viernes, 7 de febrero de 2020 10:52
  • hola

    >>La aplicación es "Aplicación de Windows Forms", con interfaz de usuario.

    este tipo de proyectos no pueden ejecutar en linux, ni con Mono ni con ningun otro tipo de entorno de desarrollo

    Por ahora en .net solo proyecto de consola y asp.net core son los que puede desarrollar y ejecutar multiplataforma

    Si querias algo multiplataforma podrias evaluar Electron, programarias como si fuera web pero compila una aplicacion de escritorio

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Pablo RubioModerator viernes, 7 de febrero de 2020 17:24
    • Marcado como respuesta Ekhi lunes, 10 de febrero de 2020 11:40
    viernes, 7 de febrero de 2020 11:30
  • Como ya te comenté, si no ha cambiado en estos años, Windows forms no es compatible con Linux

    Efectivamente, no ha cambiado.

    Bueno, sí, ha habido un cambio, y es que ahora tenemos .Net Core, y la versión Core sí que funciona en Linux... pero solo para aplicaciones web. Aunque el último Core soporta el desarrollo de aplicaciones de escritorio, solo las soporta en Windows. Esas aplicaciones no funcionan en Linux a pesar de que Linux soporte la versión de NET Core en la que están escritas.

    • Propuesto como respuesta Pablo RubioModerator viernes, 7 de febrero de 2020 17:24
    • Marcado como respuesta Ekhi lunes, 10 de febrero de 2020 11:59
    viernes, 7 de febrero de 2020 11:40
    Moderador