I want to build a web app that uses Salesforce.com data, and I want to build it fast. I'm a .NET developer (WPF, C#, ASP.NET MVC). I understand Ruby and RoR fairly well, but I haven't delivered any Rails apps. I'm wondering, is Ruby on Rails a suitable tool for rapidly building Salesforce apps, or is it better for the traditional web2.0 stuff like Groupon and Twitter?In other words, would using RoR help me achieve my fast (e.g., three months) goal over using .NET, which I already know?
Developing Salesforce apps in Ruby on Rails
ruby on rails
You can pick RoR up in that amount of time, and the development process is very similar to ASP.NET MVC.  I personally think RoR's ActiveRecord is a whole lot easier to use than equivalent database technologies in C#.Additionally, Ruby's Soap4R package is great for consuming web services (assuming Salesforce.com is using SOAP).While there are a lot of wins, you'll have to think hard about some basic things:How familiar are you with Ruby?  It's sufficiently different from C# that it can eat up some time getting reasonably good with it.How much have you done with Ruby on Rails?  While there are a number of similarities with ASP.NET MVC, there are enough differences that it may cause some heartburn.Three months was sufficient time to deliver my first ASP.NET MVC app coming from a Java background and a healthy exposure to Ruby on Rails.  In that time I learned C#, the ASP.NET MVC platform, Entity Framework, etc.  I'm equally willing to bet the reverse will also be true for you.  Just understand this:You won't be able to get as much done in the app as you may initially want.  Make sure you keep the major goals up front.  You may need to release a version that has the major goals implemented, with some of the more complete features coming in one or more releases shortly following.It will take you about 3 months to get to the point where you feel competent with any new framework.  Whether you go from C# ASP.NET MVC to Ruby on Rails or vice versa.  You will be learning a lot, but implementing along the way.