Microsoft .NET Customer Solution Case Study

IronRuby Shines in New .NET Development Tool

Overview “Ruby developers can now access the enterprise-level Country or Region: Australia Industry: Software development features of the .NET environment such as and standard , which allow them to develop Developer Profile Software developer James Crisp is a software once and then run it anywhere.” Senior Consultant and the .NET Lead at Nick Hodge, Professional Geek, Australia the Sydney, Australia office of global IT consultancy ThoughtWorks. Software developer James Crisp was looking for a way to

Business Situation 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 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 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 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 the Nick Hodge, Microsoft Australia. developers and automated build servers. capabilities of Rake readily available to .NET developers. 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 , 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. Ruby 1.9. “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 websites: www.microsoft.com/net msdn.microsoft.com/webservices

Software and Services • Microsoft Visual Studio .NET 2003-2010 • nRake • Iron Ruby

This case study is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

Document published October 2010