Going away from MS platforms by startups is due to cost and quality (of developers).
Annoyances with the latest MS Platforms:
- Nasty URLs (capped, trailing file types) - although it can be done with IIS7 routes or preferrably IIRF which runs IIS5-current. They still dont' have a mod_rewrite solution unless you run server 2008 with IIS7. Look at how nasty this looks: http://www.ferrari.com/Italian/Pages/Home.aspx, why not just http://ferrari.com/? The reason, their frameworks suck defaulting to path cruft, file extensions and capitalized urls.
- ASP.NET WebForms single-form per page travesty.
- Again, File naming and the ASP.NET MVC again relies on their capitalized URL paths and .aspx extensions everywhere.
- XML and SOAP crazy over RESTful/JSON based services (they tried to remedy this with WCF but configuration failed)
- All MS developers are not free thinkers much, they use whatever MS tells them to use from LINQ, MS SQL Server, Sharepoint etc. Even such things as using JSON, jQuery and Entities they didn't use until Microsoft had the frameworks then all of a sudden they loved them. I kid you not most people still used the Microsoft AJAX framework until 2008ish.
- VB.NET
- DataSets just clutter all applications
- MS seems to have lost the skill to make simplified engineering solutions (sure their tools are simple but they are overly configuration nightmares or lock in by requiring the tool otherwise it is painful).
- All good .net developers when they become engineers or entrepreneurs typically leave the platform for cost and better solutions. MS seems to attract mediocre or enterprisey programmers like Java (this could be due to the popularity of both platforms attracting more developers overall)
- Sharepoint kills developers dreams.
You can do .NET like modern web development but for the most part the developers in the MS culture don't.