Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

IronPython .NET no sabes… o te explico ?

En ocaciones no te has sentido raro (como diria el noeito… como bichopalo), o algo marginadito por tu codigo, ya que el lenguaje que mas quieres y que mas te gusta, en tu ambiente laboral, no vale mucho la pena “para nadie”, ya que todo tu gremio laboral es .Net.

Creo que con IronPython, te llegaras a sentir un poquito mas motivado.

Analicemos un pedacito de codigo IronPython:

import clr
from System.IO import *

fichero = File.OpenText("mifichero.txt")
linea = fichero.ReadLine()

while s:
 print linea

Sencillo ?

Para utilizar bibliotecas de .NET adicionales, deberas importar el módulo CLR y, posteriormente, ensamblados específicos a los que se hara referencia. Los ensamblados de bibliotecas adicionales se pueden importar y utilizar sin ningún tipo de problema.

import clr
clr.AddReference("System.Xml")
from System.Xml import *
d = XmlDocument()

Ampliar IronPython con C# es muy fácil. Puedes cargar una DLL que ya has creado con c# en mi caso “csextend.dll.
Este es el codigo de csextend.dll

using System;
using System.Collections;

public class Simple {
    private int data;

    public Simple(int data) {
        this.data = data;
    }

    public override string ToString() {
        return String.Format("Simple<{0}>“, data);
    }
}

Ahora lo incorporamos a IronPython… de super lujo ……

   >>> import clr
   >>> clr.AddReferenceToFile("csextend.dll")
   >>> import Simple
   >>> dir(Simple)
   ['Equals', 'GetHashCode', 'GetType', 'ToString',
   '__new__', '__repr__']

Ahora que tienes mas idea de Iron
Un ejemplo que correo sobre Windows (Lo saque de la revista linux magazine):

import clr
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')

from System.Drawing import Color, Point
from System.Windows.Forms import (Application, BorderStyle, Button, Form, FormBorderStyle, Label, Panel, Screen)

class HolaMundo(Form):
 def __init__ (self):
  self.Text = "Hola Linux Magazine"
  self.FormBorderStyle = FormBorderStyle.FixedDialog

  pantalla =  Screen.GetWorkingArea(self)
  self.Height = pantalla.Height / 5
  self.Width = pantalla.Width / 5

  self.panel1 = Panel()
  self.panel1.Location = Point (0,0)
  self.panel1.Width = self.Width
  self.panel1.Height = self.Height

  self.generaSaludo()

  self.panel1.Controls.Add(self.label1)
  self.Controls.Add(self.panel1)

 def generaSaludo(self):
  self.label1 = Label()
  self.label1.Text = "Hola lectores de Linux Magazine"
  self.label1.Location = Point(20,20)
  self.label1.Height = 25
  self.label1.Width = self.Width 

form = HolaMundo()
Application.Run(form)

Conclusion
Los lenguajes dinámicos son los que hacen que el desarrollo de software sea más rápido y que los procesos iterativos funcionen correctamente. Su naturaleza, que ofrece posibilidades de investigación, los hace más atractivos para los desarrolladores y para aquellos que pueden disfrutar de ellos simplemente con una consola interactiva.

Como puedes empezar con iron…. mas informacion aqui http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=47

Comenta