EDIT: this is an old post copied over from my old blog on Los Techies, I have kept it here for archival reasons.
Briefly, IronPython is an implementation of Python in the .Net runtime. This allows you access to .Net framework goodness while programming in a dynamic language. The current stable version 2.0.1 maps to CPython 2.5.This allows me to do fun fun things like use my python project to access a c# project. follows is a python script using Pinsor and accessing a .net dll.
C# code:
public class Command
{
private readonly DoingStuff _stuff;
public Command (DoingStuff stuff)
{
_stuff = stuff;
}
public void Execute()
{
Console.WriteLine(_stuff.Message);
}
}
public class DoingStuff
{
public string Message
{
get { return "From the Doing Stuff Class, I'm doing stuff"; }
}
}
python code:
from pinsor import *
import clr
clr.AddReference('csharpdemo')
from csharpdemo import *
kernel = PinsorContainer()
kernel.register( Component.oftype(DoingStuff),Component.oftype(Command).depends([DoingStuff]) )
cmd = kernel.resolve(Command)
cmd.Execute()
ouput is like:
C:\ipyexmaple>c:\Program Files\IronPython 2.0.1\ipy.exe ipydemo.py
From the Doing Stuff Class, I'm doing stuff
I’m sure this causes a “what the heck” so let me summarize:
When I did this test I stared at the screen completely stunned for a bit.Pinsor was very easy to implement, and it has some decent abilities considering its short life and my limited time.
I doubt I could make the same thing in C# in twice as much time, and I’m more experienced in C#. This opens up some worlds for me.
With all this in mind has anyone had a chance to play with ironpython support in VS 2010?
Finally, I would like to thank [Micheal Foord](http://www.voidspace.org.uk/cv.shtml with his blog and book IronPython In Action. I highly recommend reading both if you are interested in quality programming, but especially if any of this intrigues you.