Microsoft makes its open source .NET the future of the platform, with some enterprise-ready tweaks Credit: Véronique Debord-Lazaro Microsoft’s .NET strategy may have been a little unclear recently, with two distinct strands of development in the familiar .NET Framework and the new, open-source .NET Core. A common set of .NET Standard libraries aimed to bring the two together, giving developers a single way to work with any of the different .NET versions on all their target platforms, from Windows to mobile to the web. But that still meant having to think about which .NET runtime to use: Core, Xamarin, Mono, or Framework? Introducing .NET 5, the future of .NET At Build 2019 Microsoft unveiled its plans for the future of .NET, announcing that the next major release after .NET Core 3 would be a single version of .NET called .NET 5. Building on the rapid growth in the refactored and reinvigorated .NET Core, Microsoft aims to have many existing .NET Framework 4.8 APIs and features run on .NET 5, along with new APIs and services. It’s not only the base class libraries that are converging; Microsoft is taking the opportunity to bring its different .NET compilers together, evolving both .NET Core’s JIT (just-in-time) and Mono’s ahead-of-time compilation models. It’s not a surprising decision. The .NET Framework wasn’t advancing as quickly as .NET Core, weighed down by legacy code. That, combined with Microsoft’s growing focus on cross-platform development, ensured that a decisive move from the nearly twenty-year-old Framework to the newer Core was inevitable. Dropping Core from the name is logical, too. With the APIs added since launch and support for the .NET Standard libraries, .NET Core really isn’t a cut-down core refactoring any more. With .NET 5 signaling the end of development for the .NET Framework, it’s clearly time for a new name. Even so, it’s not going to be an overnight change. .NET Core 3 is still to ship, and we won’t see .NET 5 until the fall of 2020. A planned ship date of November 2020 gives us nearly 18 months to get our code ready, with preview versions available some time in the first half of 2020. What happens to the .NET Framework? One thing Microsoft is making clear: .NET Core 3 will be the last release to port .NET Framework APIs. So there won’t be any additional Framework APIs in .NET 5, and some older technologies such as Web Forms and the Windows Communication Foundation won’t be part of the new platform. If you want to transition from .NET Framework 4.8 then you’ll need to find alternative, supported, technologies. Currently Microsoft recommends Blazor to replace Web Forms and gRPC to replace WCF. They’re sensible alternatives, giving you cross-platform support that wouldn’t be available through older technologies, and with Blazor using Web Assembly or offering server-side controls in ASP.NET, they’re now supporting much newer and higher-performance technologies. Microsoft’s advice to developers is to begin using .NET Core 3 for all new applications, but it’s important to note that this isn’t the end of your .NET Framework applications. Microsoft is committing to long-term support of the .NET Framework, so if you have code running on .NET Framework 4.8 it won’t need to be updated until you’re ready to make the shift. After all, it’s currently shipping core developer tools, including Visual Studio, built using the .NET Framework. Even then, with base class compatibility between much of the new .NET and the old thanks to .NET Standard, migration shouldn’t be painful and will give you the opportunity to run that code in many more places. However, simply migrating code will miss out on the opportunity to refactor and redesign applications for cloud and for microservices. .NET 5 is being developed for the IT world of today, with hybrid cloud and containerized distributed systems high on its agenda, rather than the client-server world that gave birth to the original .NET back in the late 1990s. A cross-platform runtime for a cross-platform world By unifying .NET Core, .NET Standard, and Xamarin in one platform, Microsoft aims to seize the cross-platform high ground. Your code (with some UI work) will be able to run on Windows, Linux, iOS, Android, and more, with support for many different classes of device. Adding .NET Core 3’s support for the Windows desktop, there’s a wide range of applications that can be built in .NET 5, especially if you take advantage of run-anywhere UWP controls thanks to support from third-party .NET tools from Uno and others. As .NET implementations go beyond .NET Core, there will still be a place for the .NET Standard libraries. Common libraries make it easier to target multiple versions of .NET from the same source code, and all your .NET 5 code will use .NET Standard, simplifying bringing code forward from older versions of .NET Core and from other .NET implementations such as Mono or Xamarin. Getting .NET’s enterprise footing right One aspect of the .NET 5 announcement is a regular release schedule for .NET. Putting .NET on a yearly cadence, with a biannual long-term support release, should relieve additional pressure on developers, adding a level of predictability that’s been missing. Knowing that .NET 6 will be along in 2021, to be followed by .NET 7 a year later, and with four years of support for the long-term support releases will make it easier to plan for new features and for application life cycles. It’ll allow Microsoft and the rest of the.NET Foundation to publish clear road maps of what to expect and when to expect it. Outside the .NET ecosystem, there’s another opportunity here for Microsoft and its focus on developer tool subscriptions. With Oracle’s changed licensing conditions for Java, a royalty-free open source enterprise runtime is going to be attractive to many existing Java development teams. That 18-month runup to the launch of .NET 5 could be seen as time to train your developers in new languages and tools and to plan application reimplementation in .NET’s microservices. Putting it all together, the result is an enterprise-developer-friendly .NET road map. Microsoft and the .NET Foundation are committing to regular updates and a single, cross-platform runtime, while still making sure older .NET Framework applications aren’t abandoned. Long-term support should help development teams plan application life cycles, choosing what to upgrade and when. You can get started with the current previews of .NET Core 3, ready for 2020 releases. Related content feature 14 great preprocessors for developers who love to code Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again. By Peter Wayner Nov 18, 2024 10 mins Development Tools Software Development feature Designing the APIs that accidentally power businesses Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. By Jean Yang Nov 18, 2024 6 mins APIs Software Development news Spin 3.0 supports polyglot development using Wasm components Fermyon’s open source framework for building server-side WebAssembly apps allows developers to compose apps from components created with different languages. By Paul Krill Nov 18, 2024 2 mins Microservices Serverless Computing Development Libraries and Frameworks news Go language evolving for future hardware, AI workloads The Go team is working to adapt Go to large multicore systems, the latest hardware instructions, and the needs of developers of large-scale AI systems. By Paul Krill Nov 15, 2024 3 mins Google Go Generative AI Programming Languages Resources Videos