Programando con .net en linux(IV)
Llegamos a la cuarta entrega de esta serie de tutoriales que espero estén siendo aprovechados por mis 5 o 6 lectores, en esta ocasión abordare el uso de un diseñador de interfaces para no tener que escribir a mano todo el código necesario para crear una interfaz gráfica.
Usando MWF-Designer
Mono Windows Forms Designer es una herramienta que aun continua en desarrollo por lo que cuenta con muchos bugs y es muy probable que algunas acciones ocacionen el cierre de la misma, por lo que como advertencia les sugiero guardar cada que agreguen un control para evitar perdidas en nuestro trabajo(no digan que no se los adverti)
Lo primero que hay que hacer es descargar el MWF-Designer desde su version svn, para lo cual necesitamos tener instalado en nuestro sistema un programa de control de versiones
#apt-get install subversionuna vez que tenemos el control de versiones procedemos a descargar
svn co svn://anonsvn.mono-project.com/source/trunk/mwf-designermwf-designer esta programado en C# usando mono, asi que hay que movernos a su directorio con
cd mwf-designery luego hacemos
make mono-designnota: en posteriores ocasiones solo sera necesario entrar al directorio y ejecutar el make run para abrir la aplicación, la cual tiene un aspecto como el siguiente:make run
Crearemos una aplicación muy sencilla, similar al ejemplo de consola donde pedíamos la edad del usuario, solo verificaremos si el usuario es mayor de edad y se lo haremos saber con un mensaje en pantalla. Con el diseñador de interfaces abierto empezaremos creando un nuevo proyecto haciendo click en File-New
llenamos los datos de la siguiente manera:
Namespace: appedadesCon lo cual ante nosotros aparece un formulario ya creado y listo para que le agreguemos controles. Lo primero que haremos es reducir el tamaño, por lo que en la venta de propiedades de la derecha modificamos los valores de size y los ponemos como 200,100.Class: edades
File: edades.cs
Agregamos un label, cambiamos la propiedad Text por “edad” y ponemos autosize en true.
Agregamos un textbox, cambiamos name por txtedad y el Text lo dejamos en blanco.
Agregamos un control button, cambiamos el text a OK y el name por btnedad
Nuestro diseño debería verse así(sin la ventanita del scrot XD):
Guardamos los cambios y tendremos dos archivos el edades.cs y edades-designer.cs, asi que ahora procedemos a unir esos dos archivos para crear nuestro proyecto con lo que pasamos al siguiente tema.
Usando Monodevelop
Si, ya se que me tarde un poco para llegar a Monodevelop pero es que anteriormente no era tan necesario. Abrimos Monodevelop y esperamos a que cargue el entorno de desarrollo.
Damos click en Archivo - Nueva Solucion seleccionamos C# - Proyecto vacio y llenamos los datos correspondientes poniendo en nombre appedades y la carpeta donde se alojara el proyecto. Click en adelante y aceptar. La solución esta creada pero para empezar agregaremos las referencias necesarias por lo que a la izquierda en el explorador de la solución damos click secundario en referencias y seleccionamos editar referencias. Agregamos las referencias a System, system.drawing, system.data y system.windows.forms. Click en aceptar.
Ahora hacemos click derecho en el nombre de la solucion(appedades) y seleccionamos añadir archivos. navegamos hasta la carpeta donde tenemos el mwf-designer/build y seleccionamos los archivos edades.cs y edades.Designer.cs
Ahora crearemos un archivo para controlar la solucion el cual llamaremos program.cs
para ello damos click derecho en el nombre de la solución y damos en añadir - nuevo archivo, seleccionamos general - clase vacia
dentro de ese archivo creamos un metodo main con el siguiente codigo:
static void Main()Ahora haciendo uso de los botones en la barra de herramientas ya podemos compilar nuestro proyecto y ejecutarlo desde ahi mismo, con lo que obtendremos una ventana asi:{
Application.Run(new edades());
}
La cual aun no tienen ninguna funcionalidad pues falta agregar un controlador de evento para el botón OK.
Primero abrimos el archivo edades.Designer.cs y en la parte de la declaracion de btnedad agregamos la siguiente linea:
this.btnedad.Click += new System.EventHandler(btnedad_click);y dentro de edades.cs creamos el controlador del evento con el siguiente codigo:
private void btnedad_click(object sender, System.EventArgs e)Ahora si nuestra aplicacion hace lo que queremos, las posibilidades a partir de ahora son infinitas y ya depende de las aplicaciones que cada quien quiera crear. Estoy abierto a sugerencias sobre aplicaciones que les interese que desarrolle en este espacio y tratare de ayudarlos en la medida de lo posible, para la proxima semana existe la posibilidad de un color mixer para saber el valor en hexa de un color o generacion dinamica de controles, asi que escucho sus votos.{
if(Convert.ToInt32(txtedad.Text)<18)
MessageBox.Show(“Eres menor de edad”);
else
MessageBox.Show(“Eres mayor de edad”);
}
Y para no perder la costumbre, aqui esta el archivo comprimido de este ejemplo
Genial, estoy viendo la forma de añadirlo con esto del gtk jaja
Hola que tal mi rex ya vi los articulos pero me siento algo desorientado, por donde comienzo, más vale tarde que nunca je
No se si puedas pasarme tu correo
buenas manuel: al hacer make run obtengo un error, pero dentro de la carperta buil puedo hacer un “mono mwf-designer.exe” y éste se abre. Ahora al igual que tu imaen me aparecen símbolos de warning en todos los controles de la paleta de la izquierda y no puedo utilizarlos. ¿Cómo lo has hecho tú?
Gracias!
oe hermano, me sale un error al hacer el “make run”,
y al hacer el “make mwf-designer”,nesecito urgente el ide, ya que dento de un mes presentare un sistema en la universidad y quiero marcar la diferencia haciendolo en linux, y no como los windosos que usan “vi?6·l sFudio” aj!!