I disagree that MVC is not well documented, but perhaps I've just learned where the good documentation is (for MVC.)
That said, I have to agree that every time I've dived into PHP/RoR, there have been plenty of articles with well-drawn maps of the minefield (to borrow your analogy.)
> Oh, and just for fun every 5 years or so MS deprecates that particular mine field, lays a new one, and forces everyone to go play in the new minefield instead.
I know I started at the beginning with this new minefield (MVC came out less than a year before I started using it,) but I don't see this happening as much, at least not with MS's web offerings. The last version or two of MVC and EntityFramework have been OSS under Apache 2, so they can continue to be developed even if MS decides to go a separate route.
I understand that this is not the case for their desktop and mobile offerings, and that they have jerked their developers in that field around in different directions each time they come out with a new OS. I think that their web offerings are more stable. The only things that may change fundamentally are server components (IIS, SQL Server, MVC, EF, etc.), or the browser. If the browser changes, everyone's screwed; and if the server components change, the developer can simply decide to stay on older versions (until licenses run out, which I'll concede as one problem.)
And of course, all this flows back to documentation. PHP/Python/RoR have much better documentation because they're all much more widely used. If more people used MVC, more people would write about it, and there would be more documentation for it.
The only remaining issue is a pretty big one: cost. Yes, there's a VS Express Web Edition, but that has its own issues. So, you're left with BizSpark as the next best option. It's what I've done. I have 2 more years left before I have to decide whether to start paying. So far it's great, but I know that it's going to come back and bite me in the ass unless I start something profitable before then.
And I believe that that's the real reason that it's not more widely used; or at least the original reason, with lack of documentation and other MS-hate being secondary to and/or consequences of it. In a community where people have 5 ideas fail before hitting something profitable, it's hard to justify the extra cost of $1000 or more per developer, even if it's actually free for the first few years. Why risk paying $1000+ per developer and an extra $100+ per server 3 years from now, when you can start with something free and have it still be free 3 years from now? That's what it all boils down to.
I'll admit, I'm probably tossing in the towel on MVC soon. But it's not because of poor documentation or fear of being forced to switch to a new API requiring a large rewrite on my part. It's because 1) the IDE and servers are 5-10x more expensive than those for Python/Ruby/Node/PHP; and 2) everybody's using Python/Ruby/Node/PHP, so finding work is tough. After all, what good is working on a side project to show off my MVC skills, if nobody will hire me for it anyway?