Does it make sense to use rails instead of mvc3?
YES. If nothing gives you a different perspective and broadens the way you think about programming problems. There is something related to the short duration of the ruby, the usefulness of the blocks and the dynamic behavior of the language, which allows you to really think differently.
How to choose between two?
If the project is short, stick to what you know. But if it will be a longer project, it might be worth the effort to start digging in the learning curve of the rails. Most people will tell you that rails are developing faster than .net mvc. If the project is long enough, you may be able to develop faster on the rails when you can handle it.
So the learning curve for a Microsoft programmer can be STEEP! If you are a junior guy, then it will not be so bad, but if not, get ready to learn a lot of different topics. The command line and your shell, TDD, homebrew or macports, git instead of subversion, gems, bundler, rvm, rspec or some other testing environment, etc.
Also, if you don't own a Mac or use any * nix attribute, you might want to stick with .net. From what I hear, itβs a painful experience developing rails on windows.
If TDD is important to you, then rails are the way to go. In addition, deployment is much easier on rails.
An ecosystem is something that can be a factor if you want to use tools created by others. Rails has a huge open source developer base that contributes a lot to the community. If you want to compare, check out github.com (for rails) and codeplex (for Microsoft). However, with the Microsoft NuGet system, perhaps the Microsoft side will begin to create a better ecosystem. But now it doesnβt even close.
Other options worth paying attention to?
If you need to develop a fairly dynamic website with database support, then rails or .net mvc are good options. If it is much simpler / smaller, then some simpler / smaller frames are Sinatra (for ruby) or webmatrix for .net. You can speed up the execution of these frameworks faster.
How do different structures differ?
The biggest difference that I notice relates to the main languages, ruby ββfor rails and C # for .net mvc. Ruby is dynamic, and C # is static. Rails is not compiled while .net mvc is. You will get more raw performance from .net mvc.
The rails are indeed built with TDD and BDD in mind. The last time I used .net mvc 1.0, it was really hard to do TDD.
In development, almost all .net mvc users will use Visual Studio, but I would say that most rails developers do not use the IDE. They simply use a simple text editor (textmate, vim, emacs) and are debugged using the console.
EDIT: * Bonus Tips *
If you want to get started with rails (which I highly recommend), the easiest and most thorough way is to go through the tutorial rails from Michael Hartl. In it you will learn about rubies and rails along with the following
- git - source control
- rvm - to run different versions of ruby ββon the same computer
- rspec - for TDD
- heroku - free web hosting with SIMPLE deployment
Once you get a good grasp of the rails, you will want to improve your rubies skills to become a good rail designer.