sábado, 24 de abril de 2010

Recursos documentales en la Red, y 2.


Hola. En este post os presento un segundo tándem de sitios web interesantes sobre informática y miscelánea, que visito normalmente, ya sea para consultar algún tipo de duda técnica, para información general sobre informática o para mi recreo intelectual.

Como viene siendo habitual en este blog, divido la información en bloques conceptuales, para que sea más fácil la visualización.






Python

FreeTechBooks: Sitio web donde podemos encontrar libros sobre Python gratuitos y online.

QuickReferences: Guías de referencias rápidas de varios lenguajes de programación. Ideales para descargar e imprimirlas como ayuda rápida.

Richard Gruet's Python page: Guías rápidas para Python, en varias versiones. RECOMENDADO!

Planeta Python: Aquí nos encontramos con toda la relación de lugares web, de primer nivel, en relación con Python.

Alltop: Noticias sobre Python.

IronPython URLs: Sitio web que agrega artículos, noticias y links sobre IronPython, la versión de Python escrita en C# para acceder al framework .NET de Microsoft.

Cheat-Sheets.org: Guías de referencia rápida. Muy buen sitio, con multitud de lenguajes de programación. Esta web la he descubierto gracias a monoBOT. Decir que he impreso (y plastificado), para mi trabajo, la guía rápida de Python 2.5

Python portable: Sitio web en donde se nos presenta la forma en la que se puede configurar Python en un USB para ejecutarlo directamente. Muy interesante. Muchas gracias a Lucía Fernanda, de Uruguay, por mostrarme esta web de Portable Python.

Dive into Python 3: Guía de Python 3. Importante ya que Python 3 no es compatible con las versiones 2. Si se quiere evolucionar al siguiente nivel, hay que empezar por aquí.

Blog de la historia de Python: Blog de Guido.

Mundo Python: Blog de Python, tutoriales y formación.


Cursos y tutoriales

Con Clase - Cursos en la red: Sitio web dedicado a la formación en distintos ámbitos, como C y C++, HTML y CSS, MySQL, Win API 32, etcétera. Imprescindible y excelente. Muy recomendado.

Tutorial de SQL: El sitio web de siempre, para realizar consultas sobre SQL. Muy práctico.

Portal OpenCourseWare de la Universidad de Murcia (España): Espacio de publicación abierta de cursos universitarios. Caben resaltar los cursos de la facultad de informática. Completamente gratuitos y de un gran nivel universitario. Excelente.

SOFTLA: Software Libre y Abierto en la Universidad de Murcia.


Lenguajes de programación

Ruby: Lenguaje de programación dinámico, muy parecido a Python. Muy recomendado. Es mi primerta alternativa a Python.


Actualidad informática y recursos prácticos

Punto Geek: Blog de actualidad informática.

Código Geek: Sitio web de actualidad informática.

Gaceta Tecnológica: Web de noticias sobre software libre y tecnología.

Linux Hispano: Noticias sobre software libre.

Error 500: Sitio web sobre tecnología.

Cats who code: Blog, en inglés, con artículos muy interesantes.

Security by default: Blog de seguridad. Ameno e interesante.


Antivirus Online

Panda: Antivirus online para rastrear el sistema cuando otros no dejan.


Miscelánea

Frases y citas en latín: Página web chilena sobre citas en latín.

Citas y refranes: Web dedicada exclusivamente al mundo de las frases(citas famosas, refranes, proverbios y citas de visitanes y taglines).

El cine de lo que yo te diga: Sitio web sobre cine. Excelente.


Espero estos links puedan serviros de ayuda.
Saludos..

viernes, 23 de abril de 2010

Pyragua: IDE para desarrollar con Python







Pyragua es un IDE de desarrollo multiplataforma, escrito en Python, para desarrollar en Python, y creado por Pyrox (Grupo de desarrollo de python), de la Universidad Tecnológica de Pereira (Colombia).

INSTALACIÓN

Se necesitan como requisitos previos wxPython 2.6 ó superior y Python 2.1 ó superior. Dependiendo de la versión, como siempre, se tendrá que descargar una u otra. yo trabajo en Windows, con Python 2.5.4, así que descargo Pyragua para esta versión en http://pyragua.pyroxdev.org/browser/tags/pyragua-0.2.5/pyragua

Se puede descargar un ZIP con todo al final de dicha página.


Una vez descargado, nos vamos a la carpeta pyragua, y ejecutamos Pyragua mediante la siguiente instrucción desde la consola de comandos (CMD): python pyragua.py


CARACTERÍSTICAS

Entre las principales características podemos destacar:

Extremadamente ligero de tamaño (no ocupa más de 2 megas de instalación) y rápido a la hora de ejecutarse.


Con coloreado del código.



Permite comentar y descomentar bloques de código.


Indentación de código automático, esto es, no es necesario estar tabulando continuamente ni moverse por el código con espacios.


Detección y configuración de los fines de línea. Dependiendo de la plataforma en la que nos encontremos podemos configurar el fin de línea deseado para nuestro código.

Así como ver el fin de línea de cada linea de código escrito (los retornos de carro y cambio de línea).


Completitud de código. Aquí podemos ver dos cosas interesantes. La principal, la completitud de código, tan necesaria y valiosa, al escribir código Python. Conforme vamos escribiendo un objeto ó clase nos aparece un combo con los métodos, atributos y demás opciones que se tienen disponibles.


En segundo lugar hay detalles a la hora de escribir el código, como la completitud a la hora de definir clases ó funciones, en donde cuando se escribe la palabra def, por ejemplo, automáticamente aparece ():. Detalles que gustan.


Como vemos en la captura, da la posibilidad de abrir varios archivos .py al mismo tiempo.

Panel de intérprete Pyshell.


Ejecución de las aplicaciones que se realicen en él.


Y por supuesto, todas las herramientas propias de edición, a saber, copiar, pegar, deshacer/rehacer, buscar, etc.



UN EJEMPLO DE APLICACIÓN wxPython

Para terminar, vamos a ver como se comporta Pyragua con wxPython. Para ello he creado una aplicación en wxGlade; una ventana con un botón Bitmap que al pulsarlo aparece un mensaje saludando. Es decir:

Todo el código que se ve en la captura lo ha generado wxGlade. Lo único que he tenido que incluir es el código que realizará cuando se produzca el evento de hacer click sobre el botón bitmap. Si pulsamos F5 ejecutamos nuestra aplicación wxPython, teniendo:



CONCLUSIONES

Pyragua es un IDE para desarrollar con Python, ligero y multiplataforma. Permite identación y completitud de código, así como multitud de ficheros .py abiertos de manera simultánea. Es compatible con wx, ya que está escrito en esta misma plataforma gráfica.

Muy ligero a la hora de la ejecución así como en el tamaño de la aplicación. Se augura un futuro muy prometedor a este proyecto, que si bien acaba de nacer tiene características propias de un IDE de primer nivel. Habrá que seguir el trabajo de la gente de Pyrox con detenimiento, porque lo están haciendo francamente bien.

Saludos.

sábado, 17 de abril de 2010

IronPython y IronPython Studio, en español.


Hola. En anteriores artículos hemos visto como utilizar IronPython con SharpDevelop, así como utilizar Reflector para explorar las clases de .NET. Por último, para terminar con esta entrega de IronPython y los IDEs más representativos no podíamos dejar pasar la herramienta de Microsoft para desarrollar con Python para .NET, esto es, IronPython Studio.

En la búsqueda de información sobre este tema me han resultado de gran ayuda dos blogs:

Escritor de código

Pablo Galiano

Y es por ello que dejo constancia.

Se supone que ya tenemos instalado IronPython, tal como se ha comentado en anteriores post.

IRONPYTHON STUDIO PARA IRONPYTHON

IronPython Studio es un RAD e IDE desarrollado por Microsoft para utilizar IronPython con .NET. Este software es gratuito, no hace falta pagar ningún tipo de licencia (royalty). Se basa en el runtime del Visual Studio 2008 Shell.

IronPython Studio se puede instalar sin tener ninguna versión de Visual Studio.

Instalación de IronPython Studio sin Microsoft Visual Studio instalado.

Para instalar IronPython Studio sin tener instalada ninguna versión de Microsft Visual Studio, sigue los siguentes pasos:

  • Instalar el Paquete redistribuible de Visual Studio 2008 Shell (modo aislado) con Service Pack 1. Visual Studio Shell (modo aislado) proporciona la base sobre la que puedes generar un propio entorno de herramientas con personalización de marca que se ejecute en paralelo con Visual Studio. Al usar Visual Studio Shell (modo aislado), podemos acelerar el desarrollo del entorno de herramientas reutilizando el IDE de Visual Studio en la aplicación y centrando la atención en los problemas principales relacionados con IronPython.
  • Una vez bajado el fichero (vs_AppEnvRedist.exe), lo ejecutamos y nos descomprime unos ficheros. En mi caso, me los deja en C:\VS_2008_Shell_Redist\Isolated_Mode. Ejecutamos el fichero vs_shell_isolated.esn.exe, y comienza a instalarse el Visual Studio 2008 Shell (isolated mode) - ENU.

NOTA: Descargar el IronPythonStudioIsolatedSetup.
  • Y probamos si se ha instalado correctamente ejecutando el IronPython Studio.


  • Creamos un nuevo proyecto (Archivo/Nuevo/Proyecto):


¿Dónde están las templates (plantillas) de IronPython? (missing proyect templates)

Como puede observarse en el screenshot, al intentar crear un proyecto nuevo solo nos deja como opción crearlo a partir de la plantilla WPF( Windows Presentation Foundation) para crear una aplicación. Evidentemente, esto no es lo que queremos. Necesitamos decirle a IronPython Studio que queremos plantillas para crear aplicaciones IronPython (ventanas Windows, Consola, etc.).
  • Instalar las plantillas de IronPython en IronPython Studio. Para realizar este punto lo que tenemos que hacer es copiar las plantillas que han sido instaladas en el Visual Studio 2008 Shell y pasarlas a IronPython Studio. Las plantillas que necesitamos están en: C:\Archivos de programa\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\IronPython Studio\1033
Estos ficheros .ZIP son las plantillas de IronPython, que necesitamos copiar a la carpeta de IronPython Studio (en local) para poderlas utilizar. ¿Dónde se copian? Seleccionamos estos .ZIP y los llevamos a:
C:\Documents and Settings\angel\Mis documentos\IronPython Studio\Templates\ProjectTemplates


NOTA IMPORTANTE: No hay que descomprimir nada.
  • Volvemos a crear un nuevo proyecto, y ahora sí, nos salen Mis plantillas para poder desarrollar soluciones en IronPython (Windows Application, Console Application, Class Library, WPF Application):

OBSERVACIONES: Evidentemente, las rutas absolutas que he dado son con respecto a mi ordenador. Dependiendo del usuario y la unidad donde tenga instalado Visual Studio 2008 Shell y IronPython Studio, dichas rutas absolutas cambiarán en la letra de la unidad y en el nombre de la cuenta de usuario.
CREAR UNA APLICACIÓN EN IRONPYTHON STUDIO

Ahora vamos a ver como crear una aplicación Windows con IronPython Studio. Lo primero es crear un proyecto y elegir la plantilla de aplicación Windows, tal que así:

A continuación se nos genera todo el código necesario, de forma automática, para crear una ventana Windows.

Si hacemos click en la pestaña Program.py podemos ver el código necesario para llamar a la ventana.

El código que crea la ventana lo podemos ver haciendo doble click sobre la propia ventana (darse cuenta del from Form1 import *).

Como se puede observar es código Python, en donde las clases de .NET las importamos con IMPORT. Esto es, hacemos referencias a los namespaces de .NET como si fueran módulos Python. ¡Impresionante! ¡Y muy sencillo! El lector debe de darse cuenta de las posibilidades que tiene este tipo de herramienta (IronPython).

Vamos a darle algo de vida a nuestra aplicación, insertando en el contenedor (la ventana Windows) objetos, para realizar nuestra primera aplicación IronPython. Para ello, fijarse en la pestaña vertical a la izquierda, denominada Cuadro de Herramientas. Si hacemos click nos aparecen todos los objetos que podemos insertar en nuestra ventana, mediante arrastrar y soltar (drag and drop).

IronPython Studio se basa en Visual Studio 2008, por lo tanto si el lector viene de trabajar con herramientas de Microsoft Visual Studio no le va a suponer esfuerzo alguno el empezar a desarrollar. Para el profano, decir que según seleccione en los objetos del diseño de la ventana, en la parte derecha le aparecerán las propiedades de dicho objeto. Todo es cuestión de experimentar.

Incluyo algunos objetos y queda tal que así:


Si incluimos texto en la caja de texto y hacemos click nos saldrá un mensaje con el texto introducido. Además he incluido varios objetos más, como un Label Link.

El código completo de Form1.py es el siguiente:

En la última imagen del código podemos observar lo único que he tenido que escribir en código. Todo lo demás ha sido únicamente cambiando en el diseñador los valores de las propiedades.

Y finalmente vemos el funcionamiento, ejecutando la aplicación. Para ello, pulsamos F5 ó click en la flechita verde. El resultado es el siguiente:




CONCLUSIONES

IronPython es una implementación del lenguaje de programación Python escrito en C# para poder utilizar el framework .NET de Microsoft. Lo hace accediendo a los namespaces de .NET como si fueran módulos a importar. Se acceden a clases, a atributos y métodos como siempre. Si no se sabe ó se desconoce la plataforma .NET hay herramientas, como Reflector, que ayudan a buscar clases y namespaces en donde encontrar la información requerida.

IronPython dispone de varios IDE de desarrollo. Los más importantes y destacados son SharpDevelop, que es software libre, y IronPython Studio, de Microsoft, en donde no es necesario pagar ningún tipo de licencia.

Desde mi punto de vista SharpDevelop es más estable y robusto, dando más funcionalidad que IronPython Studio, el cual carece de ciertas cualidades y en determinadas situaciones padece de una inestabilidad manifiesta.

IronPython Studio depende de Visual Studio 2008 Shell. Sin embargo Microsoft ha sacado al mercado Visual Studio 2010. Habrá que comprobar si con la nueva versión de Microsoft, IronPython Studio mejora en estabilidad.

Espero que os haya servido de ayuda estos post sobre IronPython, sus virtudes y defectos y las herramientas que disponemos para realizar proyectos.

Saludos.

Reflector: analizando las clases de .NET


Para poder sacar el máximo provecho a IronPython hay que conocer la plataforma .NET. Para ello vamos a usar una herramienta para poder navegar por las clases de .NET, analizar los ensamblados de .NET, ver las relaciones entre las clases y sus métodos, los tipos de parámetros que necesitan dichos métodos. Es decir, hay que saber donde están las clases que necesitamos, y los parámetros que necesitan. Este programa es una muy buena herramienta a la hora de entender .NET y ver cómo funciona por dentro.

Lo primero que vamos a hacer es descargarlo. Es gratuito, así que aquí tenéis la URL:


Se os pedirá un nombre y un correo, para eso de la publicidad. Lo incluis, y le dais al botón de descarga. Una vez descargado, lo descomprimís. El programa no requiere de instalación. Una vez ejecutéis reflector.exe os saldrá la versión del FrameWork que quereis analizar. Mas o menos esto:

En mi caso tengo instalado 2 versiones y el SilverLight. Elijo la 2 y click en OK. Nos sale lo siguiente:

Aqui se nos presentan las principales librerías de .NET Framework. Para probar el porqué de la instalación de Reflector vamos a investigar de donde viene el método WriteLine de la clase Console, que está en el espacio de nombres System.Console. Para ello nos vamos a mscorlib (Microsoft Core Library ó núcleo de la librería de Microsoft), y desplegamos, teniendo lo siguiente:

Darse cuenta que abajo nos dice namespace System, esto es, nos va indicando que estamos en el espacio de nombres System. Volvemos a desplegar y navegando más abajo tenemos:

Es decir, hemos encontrado la clase Console. Darse cuenta del detalle que pone en la descripción de abajo:

Name: System.Console : El nombre de la clase es System.Console.
Assembly: mscorlib, Version 2.0.0.0 : El ensamblado, es decir, en donde reside la clase, es en la librería mscorlib.

Aquí nos paramos un momento, para definir lo que es un ensamblado.

¿Qué es un ensamblado? (Definición de Wikipedia).

En la plataforma .NET (o .NET framework), un assembly, término que podemos traducir como montaje o ensamblado, contiene el código y los recursos de una aplicación, sea en un solo archivo o en varios, formando una biblioteca de código parcialmente compilado y que constituye un bloque reutilizable, versionable y autodescriptivo de una aplicación de Common Language Runtime, un entorno en tiempo de ejecución que proporciona la plataforma .NET y que ejecuta el código y proporciona servicios que facilitan el proceso de desarrollo.

El mismo ensamblado puede ser usado por distintas aplicaciones, de tal forma que se aloja en el dominio de cada una de ellas, donde el entorno de ejecución es quien se encarga de compartir el código del ensamblado entre los dominios, asegurando que en cada uno de ellos el ensamblado aparece como privado.

Una vez definido este concepto, pasamos a buscar el método que queremos. Así que desplegamos de nuevo y obtenemos:

Como vemos hay varias definiciones de WriteLine, pero lo que cambia es el argumento. Amigo programador, aquí está la máxima expresión de polimorfismo.

Si hacemos click en botón derecho sobre el método WriteLine y seleccionamos Analyze, podemos analizar el método. La información aparece a la derecha.


IronPython addin para Redgate's .Net Reflector

Podemos descargar el addin de IronPython para Reflector desde:

http://ipreflector.codeplex.com/releases/view/20765

¿Qué es .NET Framework?

El .NET FrameWork se divide en dos entidades, a saber:

  • El CLR (Common Language Runtime): sistema que administra la ejecución de un programa, habilitando portabilidad, seguridad y programación de varios lenguajes. Cuando se compila un programa en C#, por ejemplo, el resultado del compilador es un archivo que contiene un lenguaje intermedio de Microsoft (MSIL), es decir, el fichero compilado no es código ejecutable (aunque su extensión sea .exe). El CLR es el encargado de traducir el código intermedio a código ejecutable cuando se ejecuta un programa. Esto lo podemos ver un sencillo ejemplo. Si tenemos un fichero .exe escrito con .NET, y no tenemos el FrameWork instalado, nos dirá un error, puesto que el CLR no está instalado. Si lo estuviera, el CLR activa el compilador JIT (justo a tiempo), el cual convierte el lenguaje intermedio en código nativo. Dentro del fichero compilado, junto con el lenguaje intermedio, se almacenan metadatos, que describen los datos usados por el progama y habilita la interacción del código con cualquier otro. A parte de todo esto, el CLR administra la ejecución del código, gestiona automáticamente la memoria, seguridad, depuración, y demás. Ya entraremos más en detalle...
  • La biblioteca de clases de .NET: punto de entrada para todos los programadores, para utilizar los servicios de alto nivel necesarios para el desarrollo de aplicaciones locales, web ó distribuidas. La biblioteca de clases se organiza en una estructura de espacio de nombres (ó namespaces) jerarquizada, usando el convenio de nombre y utilizando el punto como separador para conectar los tipos de datos en el mismo espacio de nombres o subespacio. Por ejemplo, dentro de la clase System podemos encontrar System.Xml, que hace referencia a las clases utilizadas para tratar los archivos XML. Características de la biblioteca de clases:
Puede utilizarse con cualquier lenguaje de programación: C#, Visual Basic y cualquier lenguaje que soporte .NET, como es el caso de IronPython.

Utiliza un mismo tipo de datos para todos los lenguajes. De esto se encarga el CTS (Common Type System), que está dentro del CLR.

Extensible: se pueden crear tipos de datos propios.

Seguro.

Orientado a objetos.
Por el momento no quiero dar más profundida en .NET, como por ejemplo con los conceptos de código administrado y no administrado, ya que no es objeto de este post el describir esta plataforma de manera exhaustiva. Solo unas pinceladas para poder empezar a descubrir un nuevo mundo, de la mano de IronPython y Reflector.

Saludos.

IronPython y SharpDevelop, en español.


Hola. En este post vamos a hablar un poco del hermano de Python (ó CPython) para la plataforma de desarrollo de Microsoft .NET, IronPython.


Como he comentado a lo largo de la vida de este blog, alguien que se quiera dedicar a esta bendita profesión no puede estar ajeno a las combulsiones que se originan en este mundo. Si alguien no se había enterado (que creo que no) Microsoft ha lanzado una nueva versión de su archiconocido Visual Studio, versión 2010, junto con la plataforma de desarrollo Framework .NET 4.0. Según parece en esta versión se le empieza a dar una mayor importancia a lenguajes dinámicos, como IronPython. Y es por ello que me he decicido a investigar este territorio, tan inóspito para mí. Y es que aprender nunca pasa de moda.

Decir que IronPython es un lenguaje creado por Microsoft, aunque no hay que pagar ningún tipo de licencia. IronPython es una implementación de CPython (ó Python) escrita en C#.

También he leído (que no probado) que IronPython funciona con la plataforma Mono.

IronPython está ligado a la plataforma .NET en la cual nos encontremos, dándole soporte en su versión 2, y ahora con más fuerza en la versión 4. No es objetivo de este post describir la historia ni características de IronPython en profundidad (¡para eso he puesto los links!).

¿Para qué sirve IronPython? Para trabajar con la plataforma .NET ó Mono, en sistemas Windows. De esta manera nos beneficiamos y aprovechamos de las bondades de este Framework específico, en esta plataforma tan extendida. Es decir, accedemos a .NET, sus espacio de nombres (namespaces), que vendrían a ser como nuestros módulos en Python, y por supuesto a sus clases ya escritas, con un enorme conjunto de implementaciones. Muy interesante.

¿Dónde obtener IronPython? Desde su página web. Aquí la cuestión reside en qué versión instalar. Ahora se encuentra por la 2.6.1. ¿Y la versión del Framework .NET? Podemos descargarnos IronPython 2.6.1 para .NET 2.0 SP1 ó IronPython para .NET 4. Si nos instalamos esta última versión necesitaremos el Framework .NET 4.

Más información sobre descargas en http://ironpython.codeplex.com/releases/view/36280.

Yo me he instalado la versión para .NET 2.0.

Bueno, ya tenemos instalado IronPython... ¿y ahora qué? ¿Por donde empiezo?

Puesto que IronPython está creado para trabajar con .NET y en entornos Windows tiene que haber un IDE con entorno de desarrollo gráfico para poder hacer aplicaciones de escritorio Windows. Es más, hay más de una herramienta. Aquí vamos a ver dos, una gratuita y otra gratuita y de Microsoft (¿una sonrisa?).

SHARPDEVELOP PARA IRONPYTHON

SharpDevelop es un RAD gratuito, (no hay que pagar nada para su uso) para escribir desarrollos para .NET con diversos lenguajes, como Boo (muy parecido a Python, opción interesante), C# ó Visual Basic.


Ahora también soporta IronPython, como podemos ver estas notas sobre las versiones del producto:


Podemos bajarnos la última versión desde http://www.icsharpcode.net/OpenSource/SD/Download/#SharpDevelop3x. Nos lo bajamos, lo instalamos y seguimos.

NOTA IMPORTANTE: Decir que utilizar C# para programar es gratuito, esto es, no hace falta pagar nada para programar con C# y .NET. Podemos utilizar SharpDevelop con la plataforma .NET y el lenguaje que deseemos y no tenemos que pagar ninguna licencia (bajarnos el compilador csc de C# y el framework .NET de la página de Microsoft es gratuito). Ahora bien, si en vez de utilizar SharDevelop usamos otros de pago, como Visual Studio, tenemos que pagar justamente la licencia de este paquete de software (aunque como veremos para IronPython esto no es del todo así). Es importante notar la diferencia.

Una vez descargado e instalado, y supuesto tenemos instalado IronPython, vamos a crear nuestra primera aplicación que visualice "Hola El Viaje del Navegante". Ejecutamos SharpDevelop. Creamos una nueva solución.


Incluimos el nombre del proyecto que queramos y click en botón Crear. A continuación SharDevelop nos crea el código para nuestra primera ventana Windows, de manera automática, tal y como estamos acostumbrados en otros RAD, como puede ser Visual Studio.

Si nos fijamos en el código podemos observar que IronPython trata los namespaces de .NET como módulos (al cual estamos acostumbrados). Y aquí reside el potencial de IronPython. Si vemos el código podemos entender perfectamente lo que hace. En el __init__ inicializa la clase ventana. Para ello utiliza el método que está mas abajo. ¡Más fácil imposible!

¿Qué hace este código? Crea una ventana Windows. Si nos damos cuenta, debajo del código hay dos pestanañas, llamadas Fuente y Diseño. Ahora estamos en Fuente. Si queremos ver qué hace en realidad este código podemos ir al Diseño, y ver la ventana:


Como podemos observar en la parte derecha tenemos todas las propiedades de la ventana (par a los que venimos de wx, esto es un widget, no un Windows. En wxPython, un Windows es cualquier objeto. Para ser más exactos esto sería el equivalente a un widget Frame).

Podemos incluir la consola de IronPython en el entorno de desarrollo de la siguiente forma:


Animo al lector a ver todas las posibilidades (opciones) de este RAD de desarrollo.

Siguiendo con nuestro primer proyecto, vamos a incluir objetos. Para ello nos fijamos en el panel de Proyectos, que está a la izquierda. Justo debajo hay dos pestañas, Proyectos y Herramientas. Si hacemos click en esta última nos aparecen las herramientas para poder diseñar nuestro widget frame (que llamaremos ventana ya que estamos en .NET y la plataforma es Windows). Por tanto vamos a incluir algunos objetos a nuestra primera ventana.

Para incluir objetos dentro del contenedor (dentro de la ventana), es simplemente haciendo Drag and Drop, esto es, arrastrar y soltar. Después de incluir algunos objetos tengo la siguiente ventana:

Para cada objeto podemos cambiar sus propiedades (valores de sus atributos, ya que se recuerda al lector que estamos hablando de clases y su instanciación, y posterior creación del objeto) en el panel de la derecha, cada vez que eligamos el objeto que nos interesa.

Si hacemos doble click en el panel de la ventana nos lleva directamente al código, el cual es sintaxis Python, de la que estamos acostumbrados. Ahora se entiende el potencial de esta herramienta. Estamos trabajando en Python con las clases del Framework .NET!!!!!. Todo lo que he creado con SharpDevelop lo podemos ver en el siguiente código:


Si leemos la sintaxis, vemos que la complejidad no es mucha. Es más, lo único que podemos desconocer es .NET, evidentemente. Si en Python tenemos herramientas para explorar los módulos (ó namespaces), en .NET hay aplicaciones muy interesantes con las cuales explorar este framework (ver las clases por dentro, qué hacen, sus atributos y métodos), como Reflector.

Para terminar de ver SharpDevelop vamos a darle un poco de funcionalidad a nuestro primer programa. Para ello a hacer que al hacer click en el botón aparezca una caja de mensaje saludando. Además, se visualizará ó no el mensaje de Hola El Viaje del Navegante. Las modificaciones que he realizado son las siguientes:

En principio, cuando se ejecute nuestra aplicación, no se verá el objeto _label2, tal como se ha definido (observar la modificación hecha por mí, cambiando el atributo de visibilidad a False, para que no se visualice).

Además, he incluido en el método que se dispara al hacer click en el botón lo siguiente:

Darse cuenta que a la hora de escribir código Python no hay completitud de código, pero sí que lo hay al escribir clases y métodos de .NET, tal como aparece en el ejemplo. Este código lo único que hace es que al hacer click en el botón, visualiza ó no el _label2 y muestra por pantalla una caja de texto (MessageBox) saludando.

Una vez realizados los cambios podemos ejecutar nuestra aplicación simplemente pulsando F5 ó haciendo click en el icono con la flechita verde:


Al ejecutar nos muestra lo siguiente:


Y al hacer click en el botón:


Puesto que SharpDevelop es un RAD, tiene características propias de herramientas CASE. Un ejemplo de ello lo podemos ver en una de sus opciones, Mostrar diagrama de clase, que se encuentra en:

Y que para nuestro ejemplo podemos ver:

Una herramienta fantástica, con opciones realmente interesantes. Se recomienda al lector que investigue en todas las opciones que da SharpDevelop con IronPython. Sorprenderá a más de un programador.

En el siguiente post hablaremos de la herramienta que nos brinda Microsoft para desarrollar con IronPython.

Saludos.