It's hard to change direction when you're a company the size of Microsoft. In the past 18 months however, they've become considerably more open and modern. Today in a not so surprise move, Microsoft announced .NET Core 5, a component of the next version of the .NET framework which allows ASP.NET to be hosted on Linux servers in addition to Windows servers.
.NET Core 5 is distributed in full via the nuget package manager. It's self contained and means that you no longer need to install a huge .NET Framework package with a specific version to run an ASP.NET website. Everything needed to run it will be bundled with the application. On Mac and Linux, ASP.NET 5 will include a web server called kestrel which is similar to what comes with node.js.
The .NET Core is also open source and available via GitHub. In the coming weeks, a cross platform CLR (Common Language Runtime) will be released there supporting Mac, Linux, and Windows. Similarly, the ASP.NET 5 code is open source via GitHub and the Mac + Linux tools will start showing up there soon as well. This means that you'll soon be able to write C# code (or VB,F#, C++) that will run on Linux servers. That's huge news.
A big negative to .NET development has always been the lock in to Windows servers and its high licensing costs. While .NET arguably has the best developer tooling going, many times developers are forced to program in another language to match a Linux only server environment. Taking away that impediment opens up considerable opportunity for Microsoft to gain additional usage in development, especially for non enterprise shops.
I'm a huge fan of C#, it's my favorite language. But I'm a believer that it's the tooling more than the language that produces quality code. Making Visual Studio available for use to a larger number of developers is awesome. It is the most complete IDE out there in my opinion. If I could write code in every language inside of Visual Studio, I almost wouldn't care what language I had to use, assuming it could run anywhere - and that's exactly where Microsoft is going here.
By removing excuses for not using a Microsoft product, it only stands to reason that more of their product will get used. Making the .NET Core open source should ease a lot of people's concerns about being confined to a rigid framework as well. With the new .NET Core, you can branch the source code and deploy your application with a completely custom version of the .NET Core if you like. It's a big move for Microsoft and it fits right in line with their new direction toward cross platform and openness. There will be a lot of skeptics still, but it's hard to ignore the strides they've made lately.