If you’ve been reading my blog for a while you might have noticed that I’m in the process of learning IronPython, Half way through my IronPython project I felt I was missing something, Although I have read Dive Into Python I had a feeling that I’m actually writing Python and that I need a more IronPython focused book that will teach me how to write dynamic code that uses .NET as well, luckily for me I stumbled upon IronPython in Action and found exactly what I was looking for.
Writing a book that would explain a new technology and still manage to keep the reader interested is hard enough when writing to a specific audience but the authors of this book managed the same with two different kind of readers – the book is intended for .NET developers that have some C#/VB.NET experience as well as Python developers that used one of the many flavors of Python.
The 1st chapter of the book teaches Python (for .NET developers) and basic .NET (for Python developers) and explains what IronPython is all about. It’s amazing that after reading this chapter - only 28 pages long, the reader can start reading and writing IronPython code.
The 2nd chapter takes the basics learnt in the previous chapter and shows the reader how he can take advantage of .NET WinForms to write a simple document editor. The reader also learns about Dynamic types and how to work with XML (in Python and .NET) and even how to unit test IronPython code.
But this book is much more then just an IronPython book, It’s also a design pattern book – using the example application is manages to teach several design patterns (MVC, command and observer to name a few).
But that isn’t all many of the widely used .NET technologies are shown in the third chapter along – WPF, ADO.NET, ASP.NET, WebServices (SOAP and REST), PowerShell and silverlight. Each technology is explained and shown and then the reader learns how he can use IronPython with that technology.
The fourth chapter is all about using IronPython from C#/VB.NET and vice versa. It has examples in VB.NET and C# and manages to explain a few differences between these languages along the way.
One of the important aspects of learning new language is learning on the tools needed for development, I was pleasantly surprised to find that the authors didn’t forget to show the reader the available IDEs and libraries that he can use for development along with small tutorials and thoughts on their usage.
The book is a good read and manages to transfer the authors (Michael Foord and Christian Muirhead) experience and knowledge on IronPython.
So if you’re a .NET developer that wants to learn what dynamic programming is all about or a CPython developer looking for a way to enter the .NET world you really want to read this book.