IronRuby Shines in New . NET Development Tool - James Crisp by wuzhenguang


									                                                    Microsoft .NET
                                                    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
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, Microsoft 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 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
                                                                                     .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 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.
                                          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                                  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                            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
                                                      •    nRake
                                                      •    Iron Ruby

This case study is for informational purposes only.

Document published October 2010

To top