miércoles, 16 de enero de 2008

Mono Project


Linux es uno de los sistemas operativos favoritos de Geeks desarrolladores de software y de muchos entusiastas del software libre pero curiosamente o tal vez por eso mismo las herramientas de programación no siempre estan a la par de IDE y RAD propietarios para Windows como Visual Studio que es tan común en muchas empresas de desarrollo de software y departamentos de programación de las empresas mientras algunos programadores en Linux estan orgullosos de arreglarselas con un editor de texto y un compilador sin debugger... como los hombres \o/ No digo que no hay ambientes de desarrollo en linux, que si los hay y buenos. Por ejemplo MonoDevelop al que le dedico esta entrada al blog.


.Net es una plataforma de desarollo de aplicaciones de escritorio que pueden portarse facilmente de windows, linux o MacOSX debido a la manera en que los compiladores toman el código fuente de las aplicaciones escrito por el programador, y generan un resultado común sin importar lenguaje o plataforma en que se escribio siempre y cuando cumpla con el estandar de ECMA y generan un ejecutable que es interpretado por un CLR que se encarga de la compatibilidad con el sistema operativo subyacente.


De lograr esa compatibilidad se encargan los Frameworks de .NET existentes. Acualmente los que conozco son Mono que es multiplataforma y NetFramework de Microsoft para Windows que fue el que empezo esto. De ellos el que esta más avanzado es NetFramework mientras Mono una implementación libre basada en los estandares, es compatible y soporta instrucciones de NetFramework 1.1, una parte del 2.0 y de Windows Forms.


La idea funciona así; el programador realiza el programa en algun lenguaje de programación y lo compila. El compilador crea un ejecutable en un código común a cualquier programa de .NET sin importar en que lenguaje de programación hubiese sido desarrollada la aplicación originalmente. Este compilado (generado un ejecutable para los simples mortales) cuando es ejecutado es interpretado por el Framework para la maquina en la que la aplicación se este ejecutando, por eso el código fuente original es compatible con cualquier plataforma siempre y cuando no haga uso de recursos o formatos exclusivos de una sola plataforma particulas como una API de windows por ejemplo... Bueno, esa fue una explicación leve y superficial de lo que hace sin entrar en detalles tecnicos escabrosos.


Para evitar el uso de cosas que aten nuestras aplicaciones a una plataforma particular hay que buscar alternativas multiplataforma, por ejemplo GTK y/o Glade para desarrollos graficos de escritorio en lugar de Windows Forms aunque es verdad que las ultimas versiones de Mono incluyen avances en el manejo de las Windows forms, utilizar la clase Path en las referencias a archivos y directorios para evitar problemas por diferente uso de \ y / en ellas y otras particularidades de los diferentes sistemas de archivos, y claro, no menos importante es ser cuidadosos con la capitalización de las palabras para evitar problemas pues Linux lo detecta mientras que windows no es "case sensitive" igual que un visual basic cualquiera.


Mono fue iniciado por Ximian (dice Miguel de Icaza que les gustan los monos) y actualmente tiene el apoyo -que no responsabilidad y propiedad total- de Novell y cuenta con apoyo de una comunidad de programadores afines al software libre.


Se preguntaran mis cuatro lectores ¿Y a qué viene todo esto? Pues que han de saber que soy programador y realizo mi trabajo principalmente con el leguaje C# de .NET pero mi experiencia en aplicaciones de escritorio esta basicamente limitada a proyectos de escritorio windows, aunque en web pages, web services y aplicaciones de consola si he trabajado con Linux, slackware para servidores sin ambiente grafico por lo regular y para estos desarrollos he usado Visual Studio 2003/2005 y un poco de Sharp Develop en Windows XP y editores de texto Vim y Joe + Mono en linux de consola nada más, entonces me dio por experimentar con aplicaciones graficas que pudieran usarse en Linux y Windows, así que me he instalado el MonoDevelop en mi Ubuntu para realizar mis pruebas del IDE de desarrollo y de paso curiosear con el grado de avance de las Windows Forms en Mono y sus alternativas funcionales.


De click en las imagenes para verlas en tamaño completo.

Mono Develop New Project

Por cierto, Mono Develop es una suerte de Port a Linux de Sharp Develop en Windows. Es un IDE de desarrollo muy completo y buenas alternativas a Visual Studio. Las ultimas versiones incluyen un diseñador de ventanas grafico llamado Stetic, similar al ya conocido Glade y que permite diseñar facilmente ventanas (forms) con GTK# y controles (widgets) varios.


He aquí algunas capturas de como se ve la aplicación. Notaran que es estructuralmente similar a otros IDEs. En Linux ya sabia de la existencia de otros, pero ninguno especialmente para C# y tan integrado.

Mono Develop GUI

Este tipo de IDE pueden facilitar la transición de desarrolladores .NET en Windows a Linux, pues en Linux son muy comunes los Editores de Texto con esteroides acompañados de compiladores independientes para estas tareas.


Este IDE esta muy bien hecho y creo que solo será cuestion de tocar un poco las opciones para entender bien que son las cosas que no conozco, como algunos controles y cosillas así. Por lo pronto lo he visto similar y ademas bien integrado a Gnome.

Mono Develop Code

Por lo pronto aun no he decido programar nada, solo son pruebas para satisfacer la curiosidad que para programación en serio ya hago mucha en el trabajo todos los días. Como sea, aquí les dejo lo que hice hoy.

0 comentarios:

Publicar un comentario

Por favor trata de escribir bien, no te pido que no te falte ni un acento pero por favor evita escribir como metroflogger o facebookero. Este blog es un sitio decente. Gracias.

Subscribe to RSS Feed Follow me on Twitter!