I'm interested in adding ASP.NET MVC to my skillset. However my reticence comes from the fact that there seems to be a lot of "fuzziness" when people talk about implementing applications and how to adhere to the rules of the MVC architecture. I've heard Microsoft quoted as wanting developers to fall into the pit of success. With that said my question(s) is:
How do I avoid writing bad MVC code when there is such a variance in the agreement on how a program's structure should adhere to the tenants of the MVC architecture? Is there an agreed upon approach/best practices?
Would I be better served to learn Ruby on Rails(other than to learn a new language) to get an understanding of what inspired Microsoft to create ASP.NET MVC?