Microsoft's technology stack doesn't seem to be popular with startups and young technology companies, but I don't think that's because of .net itself, but rather because of the barriers presented by the rest of the Microsoft stack.

Probably a major driver is the various virtualization and cloud-driven technologies not fitting real well with Microsoft's server environment. Startups want scalable architectures that allow them to easily adjust to changing demands and Microsoft doesn't really offer that right now -- or, at least, they don't offer that as cost effectively as Linode, Digital Ocean, AWS, RackSpace, and so on.

If Microsoft did offer something in that arena, I'd expect the licensing costs to be obnoxious. As a recent example, we've migrated two mid-sized office networks recently to Windows domain environments, and that cost the customers extra money just for CALs -- one CAL per domain-connected device (or user account, depending). That sort of licensing scheme is a rounding error cost of operations for the enterprise, but for startups it's a major nuisance.

And then there are databases: should Microsoft-stacked startups go with MS-SQL, which is slow and cumbersome and requires maintenance schedules to be developed for it, or should they go with the other default enterprise choice, Oracle, which is stupidly expensive, or should they try integrating MySQL with Windows and hope nothing breaks in the future?

They're also not getting to take advantage of the latest and greatest technologies with the Microsoft stack. NoSQL? nginx? The fastest-iterating web technologies right now aren't happening under Microsoft's roof. I don't mean that Microsoft doesn't offer a lot of advanced technology, I mean that the open source world is able to push an update to GitHub one day and everyone can be running the latest and greatest version a few minutes later, and then it can happen again a few days later. Microsoft isn't doing that, so they're lagging behind some bleeding edge developments.

And Microsoft has its own history to overcome. They have burned people a lot over the years. Younger people working in technology are largely ignorant of it, so for them, Microsoft has a pretty OK reputation. But us grey beards remember the Microsoft of the 90s and would sooner exit the industry altogether than be stuck with being responsible for a Microsoft stack for the next 10 years. Just do a search for "Microsoft discontinued technology" or similar, and you get a handful of recent results -- since Google has the long-term memory of a goldfish -- but you can start to get the idea: if you build something with the Microsoft stack today, Microsoft might discontinue support or development for some part of it next year and you might be stuck. With open source technology, you can either choose to continue support or development for it yourself, or continue running it unsupported for as long as you'd like. There are options. Vendor lock-in is harmful in the long term and startups have no leverage for dealing with it and I think many of them are at least subconsciously aware of that.

Microsoft has its place. If you want stability -- in a slower rate of change sense -- Microsoft is what you want. If you wan to be able to hire people based on their certifications, Microsoft is what you want. If you have a massive IT budget, Microsoft is a choice you can afford.

They just aren't the right fit for most tech startups.