Author: Antonio Cangiano
Publisher: Wrox, 2009
Aimed at: C# and .NET programmers
Pros: Good introduction to Rails
Cons: Perhaps not enough on Ruby
Reviewed by: Ian Elliot
Ruby on Rails for Microsoft Developers - an interesting idea which raises a question. Should Microsoft Developers be interested in Ruby or in Rails?
The quick answer is that they probably should be because Ruby this is one of the dynamic languages that is pushing .NET and C# in particular in the direction of dynamic typing.
Rails, which is an MVC framework for Ruby was more interesting and attractive before ASP .NET acquired its own MVC framework - however don't write Rails off just yet. What this book does is to demonstrate that it isn't enough to just adopt a model like MVC to make a framework attractive - you have to work at it.
For a .NET developer Ruby and Rails should be revelations in just how easy things can be - as long as you want to do more or less what the framework wants you to.
The first chapter is a re-orientation for .NET developers so that they can understand the Ruby community - who are portrayed as a bunch of Mac-using, IDE-rejecting coders who really don't like Microsoft at all. By the end of the first chapter you will have an idea of how to get Ruby and Rails up and running and you will have created your first web site - in about five instructions and no code.
The second chapter goes deeper into the same questions and compares Rails with alternative .NET technologies and attempts to put various Ruby/Rails myths to rest.Chapters 3 and 4 constitute a lightening introduction to Ruby. As long as you already know how to program in C# or similar then this should serve to point out what makes Ruby special and get you off the starting blocks with the language. The only aspect that the introduction under emphasises is metaprogramming which is used repeatedly within active record and Rails. The average .NET programmer isn't going to realise that it is so important - it is covered but perhaps not enough.
From this point on the book focuses on Rails. Chapter 5 builds a larger working sample including a look at REST and the controller. Chapter 6 is about incremental development and debugging. Chapter 7 covers some more "background" in the form of ActiveRecord. Chapter 8 deals with ActionController and familiar issues such as state. Chapter 9 covers the User Interface - mostly a discussion of how to render HTML but some side issues, such as RSS and Ajax, are covered. Finally we have a look at web services and deployment.
Overall this is a good introduction to Rails and it does a good job of selling the system, particularly to programmers with a .NET background. If you are such a programmer and want to find out what Rails, and to a lesser extent Ruby, have going for them then this is a good place to start.