Mostrando entradas con la etiqueta Mono. Mostrar todas las entradas
Mostrando entradas con la etiqueta Mono. Mostrar todas las entradas

jueves, 10 de diciembre de 2020

MonoDevelop en Ubuntu 20.04

Primero que nada decir que el soporte para 20.04 está muy verde todavía, y esa es la razón de que tengamos que hacer "ciertas cositas" extras a las que no estamos acostumbrados.

En realidad, puede que sea más simple instalar net-core desde Microsoft y usar Visual Studio Code, que ahora funciona sin problemas en Linux, pero en mi caso, yo necesitaba compilar un proyecto para Net 4.7, sin cambiarle nada, incluyendo la versión de Net objetivo, y da la casualidad de que MonoDevelop abre archivos sln creados con Visual Studio desde Windows.

Con mi instalación de Visual Studio Code ya tendría que cambiar el proyecto a Net 5. Por ejemplo.

En el pasado, MonoDevelop me ayudó con este tipo de situaciones.

viernes, 23 de julio de 2010

GTK# - Windows 7 64 bits

Para poder correr un programa escrito en C#, que use GTK#, en Windows, primero es necesario instalar GTK# for .NET. Por lo que el instalador de un programa que usa GTK# debería checar la versión de GTK# ya instalada, si hay una, y si es oportuno ejecutar la instalación de GTK# antes de instalar la aplicación que depende de ella.

El problema aparece cuando estamos usando GTK# 32 bits en un Windows de 64 bits. Si la solución la creamos en MonoDevelop corriendo en Windows no habrá mayores complicaciones. Podemos compilar sin problemas en Windows 64 bits. Pero yo me he topado casos en los cuales después de compilar desde MonoDevelop corriendo en Linux 64 bits, el assembly resultado de la compilación no corre en Windows 64 bits (no hay problema si el sistema es de 32 bits). Aún si en las propiedades del proyecto figura como 32 bits. Mientras que al revés sí funciona, compilar en Windows y luego correr en Linux usando Mono.

lunes, 19 de julio de 2010

GTK# - GtkTextView y el evento KeyPressEvent

Como ya dije en una entrada anterior, mi opinión de C# y el código gestionado ha ido cambiando con el tiempo. Ahora me parece que compilar una aplicación como código gestionado es una gran idea por varias razones. Una de ellas es que el resultado de la compilación es independiente de la plataforma en que correrá, aunque este beneficio se pierde si hacemos llamadas a librerías compiladas como código nativo, ya que deberemos tomarnos el trabajo de compilar esas librerías para cada plataforma y algunas librerías simplemente no estarán disponibles para ciertas plataformas.

Estoy escribiendo un mensajero instantáneo para comunicar las PC de mi hogar, ya sea que estén corriendo Windows o Linux. Uso un GtkTextView como entrada de texto y necesitaba interceptar la pulsación de la tecla Enter pero resulta que el evento KeyPressEvent no se disparaba nunca, aún si el widget estaba conectado a la señal KeyPress. Más de uno debe pensar en este punto que es una falla de GTK# pero no es así. La solución es tan simple como usar el atributo [GLib.ConnectBefore].