Good news for .NET developers: .NET Core and .NET merging as .NET 5.0 soon!
In a surprising (and much welcomed) move, Microsoft announced that .NET and .NET Core 3.0 will be merged into .NET 5.0. As a big fan of the KISS principle and lean architectures, this decision will benefit the whole .NET ecosystem. Here's what Microsoft said about it:There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.
Why it Matters?
- First because the .NET Framework has a huge market share and is being run on billions of Windows devices. Merging it with .NET Core would mean that the whole .NET platform would access other architectures including being able to run Docker and containers as a whole natively.
- Second because .NET Core is way more performant than .NET Framework. That would bring significant optimizations to the whole ecosystem, including Entity Framework and Docker.
- Third because .NET Core incorporates much of the modern development toolset including a very robust CLI, ability to run containers, build more lightweight microservices, and simplified deployment to the cloud.
- Finally because the .NET Core development experience is way better and less decoupled from tools like Visual Studio (thanks in part to the .NET Standard). In other words, developers love .NET Core.
I also welcome the simplification of the name and the confusion around the name, libraries and standards that were created since .NET was introduced.
The Schedule
The proposed merge is expected to happen by November 2020. Here's the plan:Mono and .NET Core
Since the .NET Core and Mono runtimes have a lot of similarities, CoreCLR and Mono will be drop-in replacements for one another. Developers will be able to switch to choose between the different runtime options. Microsoft is also committed on investing on throughput and reliability in CoreCLR and invest more in startup and size reduction with the Mono AOT compiler.In theory, all .NET 5 applications will use the CoreFX framework, CoreFX will work in places not used today. .NET 5 applications will be buildable with the .NET CLI, ensuring that you have common command-line tooling across projects.
Questions
Moving to a single .NET implementation raises important questions, including:- What will the target framework be?
- Will NuGet package compatibility rules be the same?
- Which workloads should be supported out-of-the-box by the .NET 5 SDK?
- How does writing code for a specific architecture will work?
- Will we still need the .NET Standard?
Final Thoughts
Apart from the above questions, this is very exciting for .NET developers. Having worked with .NET since 1.1 and being a .NET Core early adopter mainly focusing on Linux development, I never liked the idea of two very similar but distinct frameworks. It just seemed like an unnecessary complication. With a much better performance, cli and more extensive target installation base, integrating .NET Core enhancements into .NET will be much appreciated by the whole community.That announcement ends that duality and brings all .NET developers on board of the same boat again.
References
See Also
- My journey to 1 million articles read
- Adding Application Insights telemetry to your ASP.NET Core website
- Creating ASP.NET Core websites with Docker
- Send emails from ASP.NET Core websites using SendGrid and Azure
- Hosting NuGet packages on GitHub
- Configuration in .NET Core console applications
- How to Build and Run ASP.NET Core apps on Linux
- ASP.NET Core: Generating views in the backend
- Package Management in .NET Core
- Windows Subsystem for Linux, the best way to learn Linux on Windows
- Why I use Fedora Linux
- How I fell in love with i3