Customer Solution Case Study
IronRuby Shines in New .NET Development
Overview “Ruby developers can now access the enterprise-level
Country or Region: Australia
Industry: Software development features of the .NET environment such as managed
code and standard APIs, which allow them to develop
Software developer James Crisp is a software once and then run it anywhere.”
Senior Consultant and the .NET Lead at
Nick Hodge, Professional Geek, Microsoft Australia
the Sydney, Australia office of global IT
consultancy ThoughtWorks. Software developer James Crisp was looking for a way to
automate software builds while working in Microsoft Visual
Crisp wanted to automate software Studio and the .NET Framework, but he found existing XML-
builds while working in Microsoft
Visual Studio and the .NET Framework,
based build tools inflexible and hard to scale for some of his
but found existing XML-based build larger projects. He decided to create nRake – a .NET-compatible
tools inflexible and hard to scale.
version of Rake which is a popular build tool based on the Ruby
Solution programming language. Using IronRuby – Microsoft’s
Crisp developed a build tool called
nRake, which uses IronRuby, a
implementation of Ruby for the .NET environment – helped
Microsoft implementation of the Crisp take advantage of Ruby’s intelligence and versatility,
popular Ruby programming language.
allowing software builds to be specified in a way that was easier
Benefits to understand and more scalable. IronRuby helps connect the
• nRake makes software builds easier
to specify and more scalable.
open source and Microsoft development communities, making it
• Developers have a more powerful easier for Ruby developers to use .NET’s enterprise-class
.NET development tool.
• IronRuby helps bring Microsoft
capabilities, while giving .NET developers access to a popular
development technologies to the and powerful programming language.
open source community.
“Ruby is very popular Situation Nick Hodge, Professional Geek at
Software developer James Crisp is a Microsoft Australia. “You can generate a
with developers, Senior Consultant and the .NET Lead at domain-specific language to describe
the Sydney, Australia office of something like a software build in a way
especially in the open ThoughtWorks, a global IT consultancy. that makes sense and is easy for both
source world; however, ThoughtWorks develops custom humans and computers to read.
applications and provides consulting and
many large business and training services, with expertise in Agile “Ruby is very popular with developers,
and Lean development principles. Crisp especially in the open source world.
government customers has worked in software development, IT However, many large business and
only want their software architecture and consulting for more government customers only want their
than a decade. software developed in what they see as
developed in what they enterprise-class environments, which
A core part of the Agile methodology is means either .NET or Java.”
see as enterprise-class iterative and incremental development.
environments, which As a result, it is important to have a
consistent and easily replicated process Solution
means either .NET or for building software from its various In 2009, Crisp started work on nRake – a
code components – a task that is complete package for .NET builds using
Java.” performed many times daily by all Rake. His objective was to make the
Nick Hodge, Microsoft Australia. developers and automated build servers. capabilities of Rake readily available to
Developers working in Microsoft’s Visual
Studio environment typically use build “I had some time between clients so I
tools such as Microsoft’s MSBuild – part started putting it together,” says Crisp.
of the .NET Framework – or open source “nRake is based on a ‘batteries included’
tools such as NAnt. These tools use XML philosophy – you don’t need any
(extensible markup language) to define additional libraries or downloads, and all
build components and processes. For the plumbing work has been done for
Crisp, these tools lacked flexibility. you. It can help you get up and running
very quickly on a new project and
“Once you get up to a fairly high level of provides a strong and flexible build
complexity, these XML structures scripting environment, which you can
become quite difficult to maintain and extend to suit your needs.”
extend,” says Crisp.
nRake includes a template C# project
In 2008, Crisp became interested in using with unit tests, IronRuby, the Rake build
Rake – an open source software build tool, the Rake Albacore gem, a default
tool that uses the Ruby programming Rakefile build, templated configurations
language rather than XML to define for different environments,
software builds. This enables developers configurations for automated build
to use the full power of an advanced servers and the open-source NUnit
object oriented scripting language to software testing tool.
write your builds.
“IronRuby is an implementation of Ruby
“Ruby has the ability to almost transform for the .NET Framework, which Microsoft
itself into another language,” explains announced in 2007 and launched in
“Using IronRuby, your 2008,” says Crisp. “The first version of .NET environment,” says Crisp. “One
nRake used Ruby 1.9. About six months Sydney digital advertising and product
build script can talk later, the performance and start up time development house I have spoken to is
of IronRuby was comparable to Ruby 1.9, already using nRake.”
directly to the .NET code. so I moved nRake over to IronRuby.”
So, for example, you can Integration between Microsoft and
Says Hodge: “A lot of the developers open source technologies
directly call .NET code working in Ruby are in the Linux, UNIX nRake and a range of other projects
and Mac OS worlds, but there are also using IronRuby have demonstrated how
and libraries from build plenty of advanced developers in the Microsoft and open source technologies
tasks.” Microsoft environment who really like can connect.
Ruby. IronRuby gives Microsoft
James Crisp, Senior Consultant and .NET developers the best of both worlds – the “IronRuby brings the power and flexibility
Lead, ThoughtWorks flexibility of Ruby and the power of the of Ruby to developers who are more
.NET environment.” familiar with the .NET environment,” says
Hodge. “At the same time, developers
who are comfortable working with Ruby
Benefits can now access the enterprise-level
A powerful automation tool for features of the .NET environment such as
developers managed code and standard APIs, which
IronRuby has helped Crisp make nRake a allow them to develop software once and
valuable automation tool for developers then run it anywhere – a desktop, mobile
working on large-scale .NET device, server or in the cloud.”
development projects, especially when
using the Agile methodology. According to Robert Evans, Platform
Strategy Lead, Microsoft Australia,
“Using IronRuby, your build script can IronRuby is an example of Microsoft’s
talk directly to the .NET code,” says Crisp. commitment to supporting developers
“So, for example, you can directly call and working with a wider range of non-
.NET code and libraries from build tasks, Microsoft technologies, including open
something which is not possible using source software.
“The open source community and the
“Using IronRuby means that the nRake Microsoft developer community have
download is smaller and faster than traditionally been at odds but IronRuby
using Ruby 1.9. Using IronRuby also and similar projects are helping to bring
makes nRake an attractive option for them together,” he says.
companies which focus on Microsoft
technologies.” “In addition, Microsoft gets to give back
to the community by releasing source
As a result, nRake has quickly gained code and contributing to open source
international attention. projects.”
“I’ve received a lot of interest from the
ALT.NET community – a worldwide group
of developers who are interested in ways
of combining open source tools with the
For More Information Microsoft .NET
For more information about IronRuby, Microsoft .NET is software that connects
please visit the website at: people, information, systems, and
http://www.ironruby.net/ devices through the use of Web services.
Web services are a combination of
To learn more about and download protocols that enable computers to work
nRake, please visit the website at: together by exchanging messages. Web
http://github.com/jcrisp/nRake services are based on the standard
protocols of XML, SOAP, and WSDL,
which allow them to interoperate across
platforms and programming languages.
.NET is integrated across Microsoft
products and services, providing the
ability to quickly build, deploy, manage,
and use connected, secure solutions with
Web services. These solutions provide
agile business integration and the
promise of information anytime,
anywhere, on any device.
For more information about Microsoft
.NET and Web services, please visit these
Software and Services
• Microsoft Visual Studio .NET 2003-2010
• Iron Ruby
This case study is for informational purposes only.
MICROSOFT MAKES NO WARRANTIES, EXPRESS OR
IMPLIED, IN THIS SUMMARY.
Document published October 2010