When Microsoft first released .NET in 2002, the cloud as we know it today didn’t exist. Back then, the Web was the big thing in IT and the Dot Com boom was in full swing. Consequently, the .NET Framework was conceived around the need to create web based applications. Web Services technologies such as SOAP, WSDL, UDDI and XML were central to all this and helped shape the early releases of .NET.
Seventeen years on, the framework has been through a number of major releases, the latest being 4.8 for Visual Studio 2019 and Windows 10v1903. During this time, Windows itself has evolved from XP SP1 through to 10, and in so doing, has opened up new possibilities for developers and end-users alike.
A number of .NET technologies have come and gone along the way, Silverlight being an example. Intended as a multiplatform solution, it has since fallen out of favour following Apple’s ban on the use of Silverlight plug-ins. From an architectural point of view, REST has overtaken Web Services. And now, containerised micro-services are increasingly becoming the go-to architecture for digital applications. In recent years, the cloud and open source have changed the IT landscape.
It’s not surprising therefore that the framework has become fragmented since it’s initial release. Microsoft has built a number of different runtimes such as .NET Framework 1-4, .NET Compact Framework, .NET Micro Framework, Silverlight and .NET Core. There’s also Xamarin (formally Mono) which began life outside Microsoft but has since been absorbed into .NET to facilitate cross-platform requirements. And now there’s Blazor which will allow you to run client-side C# in the browser using WebAssembly. Fragmentation of a complex platform like .NET is inevitable over time and it’s something Microsoft is keen to address.
What’s next for .NET?
The next iteration of the framework will be .NET 5 which was announced at Microsoft Build 2019 in May. With this release, Microsoft proposes to merge the code streams for several of the key runtimes. This should bring the .NET Framework, .NET Core and Xamarin together under one roof. It’s an ambitious undertaking with a project timeline that extends into next year with an anticipated release date sometime around November 2020. The aim is that .NET 5 should become a unified framework capable of executing across desktop, Web, cloud, mobile, IoT etc.
Here are a few take aways concerning .NET 5. For more detail, please see Mark Michaelis’s blog.
.NET 5 will support all .NET application types: Xamarin, ASP.NET, IoT and desktop which will result in uniformity across behaviours, APIs and developer experiences.
Code unification of the framework, runtimes and developer toolsets will reduce the amount of duplicate code that both Microsoft and the community will have to maintain.
Features previously available in just one of the frameworks will now be available across each.
.NET 5 will support both ahead-of-time (AOT) compilation as used by Xamarin and the more traditional just-in-time (JIT) model as used by both .NET Framework and now .NET Core.
.NET 5 will create a single executable file that can execute in-situ rather than from a temporary directory created to house all the runtime files.
Interoperability with Java and Objective-C (including Swift) source code will extend to all .NET 5 projects.
This is a tall order and one that is unlikely to be realised overnight. Nevertheless, Microsoft is determined to simplify its development framework and bring a sense of unity to the various platforms developers now find themselves working with. The .NET Framework has evolved and will continue to do so as requirements and circumstances change.
Grey Matter is a leading supplier of developer tools. We can assist with your enquiries relating to Visual Studio, Azure DevOps and third-party tools. We can also assist with .NET migration projects as part of your move to the Cloud.