A lot of people are referencing ASP.NET MVC as an "unopinionated" framework, and I just wanted to weigh in with a couple of thoughts on that.
It's true that ASP.NET MVC doesn't mandate too much; you can use whatever persistence solution you like, be it Linq-to-SQL, ADO.NET Entities, NHibernate, etc.
On the flip side, the MVC framework does tend to favour "convention over configuration", to quote Phil Haack, which heavily suggests following the pre-defined pattern for locating controllers, views, models and other code. Although you can alter this behaviour, it's easier to swim with the current, and for most people, there's no problem doing that.
Also surrounding ASP.NET MVC are a lot of opinionated people, which I find leads to a lot of biased tutorials which insist upon covering, e.g. unit testing and dependency injection; I'm all for good testing and separation of concerns, but I do perceive that such topics are shoved down one's throat a little, often ahead of covering more useful basics.
There again, I do have to concede that within those areas, the framework itself is completely open to adopting whatever unit testing solution you want, as well as whatever dependency injection and mocking frameworks you want to use, so I guess that provides another example of flexibility, even within the "bible bashing" of unit testing, etc. that seems to be going on.