Microsoft today announced that .NET Core will be open source, including the runtime as well as the framework libraries. .NET Core is a modular development stack that is the foundation of all future .NET platforms It’s already used by ASPNET Core 5 and NET Native. Microsoft decided to open source .NET Core to lay the foundation for a cross platform .NET and build and leverage a stronger ecosystem.
Lay the foundation for a cross platform .NET
As a .NET developer you were able to build & run code on more than just Windows for a while now, including Linux, MacOS, iOs and Android.
The challenge is that the Windows implementation has one code base while Mono has a complete separate code base. The Mono community was essentially forced to re-implement .NET because no open source implementation was available. Sure, the source code was available since Rotor but we didn’t use an OSI approved open source license, which made Rotor a non-starter. Customers have reported various mismatches, which are hard to fix because neither side can look at the code of the other side. This also results in a lot of duplicated work in areas that aren’t actually platform specific. A recent example is immutable collections.
The best way to build a cross-platform stack is to build a single stack, in a collaborative manner. And the best way to do exactly that is by open sourcing it.
Build and leverage a stronger ecosystem
My team has pursued a more agile development cycle via NuGet for almost two years now. We’ve seen great success with releasing early and often in order to allow customers to provide feedback.
And if you think about it: open source is essentially the ultimate agile development style. Every change is immediately public and (in theory) consumable. Many members on my team are on Twitter and Stack Overflow and engage in customer discussions. There was more than one occasion where I wish I would have been able to point a customer to an internal document that explains how our system is implemented. Or simply point to a commit that shows how an issue was fixed.
To us, open sourcing the stack also means we’re able to engage with customers in real time. Of course, not every customer wants interact with us that closely. But the ones who do make the stack better for all of us because they provide us with early & steady feedback.
I think of it as driving a car: frequent small adjustments of the steering wheel are more efficient than a few drastic changes – and also less risky.
Read about it in detail here.