Ruby on Rails vs ASP.NET MVC 3 for a .NET Guy?

asp.netRuby on-Railsasp.net Mvc-3

asp.net Problem Overview


I am very new to RoR and I want to select between APS.NET MVC3 and RoR. C# is sure easier for me as I have been doing it for so long but I am wondering if there is any point to consider using RoR over .MVC to develop a real world website?

What else do I get with RoR which I can't get with ASP.NET MVC 3 that worth spending the time to master RoR? I though the available community RoR plug-in would be one reason but it does not seem that organized and seems like the learning curve to do the right things is going to be so big that it won't practically save much time for a newby! I could be wrong here and I really appreciate your real-life comment on this? Mind you that I still have to learn ASP.NET MVC but that sounds quick for a .NET Guy!

What could RoR offer to a .NET guy that WORTH picking RoR over ASP.NET MVC 3? and please the practical advices! :)

asp.net Solutions


Solution 1 - asp.net

They are both fantastic, and can accomplish the same goals very quickly. I used a great book to learn a while back, and it would be right up your alley: Rails for .Net Developers

Also, I wrote a post about going from MVC to RoR a while back as well.

As for comparisons, they both have strengths as has been covered, but here are a few that stick out to me:

  • I really do like RoR's deployment and simple ways to push to live sites - no scripts to run at all, just a bit of command line should get you up and running once the code is actually written. If you choose RoR, UNDERSTAND THE COMMAND LINE COMMANDS - it will make your life so much easier!

  • As you mentioned, the plugins are great, and can really be used to speed things up.

  • As a .Net dev, MVC will be a breeze, I would recommend using Razor, as it is very simple and less cluttered than the old 2.0 non-razor rendering.

  • .Net's EF4 can be compared almost directly to RoR's ActiveRecord, great ORM systems tfor dealing with data.

  • I have found that .Net's documentation is a bit more consistent and thorough.

  • One problem I had with RoR was the rapid and drastic changes; not so long ago, they upgraded to 3.0 on my host, and I did not lock my version - all sorts of stuff broke until I figured out the new stuff (I should have frozen my version).

It is not a clean cut choice - both are great. As you are already a .Net dev, I would guess MVC3 would be the way to go, but both are easy to learn.

Solution 2 - asp.net

I use and like both, and the problem with a question like this is that they're so different that you could go on all day about apples vs. oranges, but since your question is pretty non-specific, I'll just say:

If you consider yourself "a .NET guy," then you should learn a language which works very differently than C#, and a dynamic language like Ruby isn't a bad place to start. (Another option would be a functional language like Haskell, Scala, etc.)

You will be a better programmer after you do, and you won't have to call yourself "a .NET guy" anymore!

Solution 3 - asp.net

Not a RoR dev here, but I do Django and I think the same question could be asked for Django as well. The #1 thing that I like Django over ASP.NET MVC is that Django comes with the ORM already. Which means most any code examples you'll find on the web will kind of follow a similar pattern. With ASP.NET MVC you can pick from lots of different ORMs which can be a good thing, but can also cause confusion.

Just like @Craig said though, it really is apples vs oranges. I'd pick ASP.NET MVC if I was required to deploy it on a MS stack, and use Django for "personal" projects or projects that required it on to be deployed on linux.

Solution 4 - asp.net

You mention in your response to craig Stuntz that you want the 'right option for the limited time you have'

Go with mvc3 and focus on learning just that, instead of a new language and framework at the same time. RoR is great, but its a new language, framework and IDE all at once and chances are you wont get it right first time. I didnt.

There are some really good tutorials on the asp.net website that will get you up and running very quickly

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioniCodeView Question on Stackoverflow
Solution 1 - asp.netnaspinskiView Answer on Stackoverflow
Solution 2 - asp.netCraig StuntzView Answer on Stackoverflow
Solution 3 - asp.netAl WView Answer on Stackoverflow
Solution 4 - asp.netBaldyView Answer on Stackoverflow