Untangling .NET Core: Open source for Windows, Mac, Linux
More changes, but it'll be different this time, honest
Exclusive Interview It is all change in the Microsoft .NET World, as the company takes the technology open source and cross-platform. But how will old and new fit together? El Reg speaks to Director of Program Management Jay Schmelzer.
In early December Microsoft’s Immo Landwerth wrote a lengthy post explaining that Microsoft’s core development stack is being forked.
The existing .NET Framework, a runtime and set of libraries for languages including C# and Visual Basic, will continue on Windows for desktop development and optionally for ASP.NET, the web application stack.
The future of the platform though lies in .NET Core, a new open source implementation which will run on Windows, Mac and Linux, and which will power both ASP.NET and, on Windows only, the Store apps that run in the Windows 8 “Metro” environment. In Windows 10, Store apps also run on the desktop, but still using the WinRT runtime.
Microsoft's key diagram for .NET Core
Why will the forthcoming ASP.NET 5 run on both .NET Framework and .NET Core? “We want to provide a bridge for existing customers to start incorporating capabilities of ASP.NET 5 without feeling that they have to shift their entire investment over. We want to maintain a high level of compatibility for folks on the full .NET Framework implementation,” said Schmelzer. “The things you don’t get are the capabilities that are unique to .NET Core.”
Only the .NET Core implementation supports what Microsoft calls “app local” deployment, where all the runtime and library necessary for the applications are deployed with the application.
This kind of commitment gives Microsoft a difficult path to steer, allowing .NET Core to evolve new features while preventing it drifting too far from the full framework. Schmelzer anticipates two-way traffic. “As of today we’re doing more of taking stuff that’s in the full framework that needs to be in .NET Core, but eventually we’ll be going in the opposite direction,” he said.
Schmelzer denies that the advent of .NET Core implies legacy status for the full .NET Framework. “There’s no legacy mode, maintenance mode that we intend to imply with the .NET Core announcement. We continue to believe in the full framework and the scenarios it was created to support, and we’ll continue to innovate in that space,” he said.
It is hard to reconcile that with other statements asserting that .NET Core is the future. If you study Microsoft’s diagram, it shows that the platforms Microsoft cares about most, the server side stack and the Store apps, sit on top of .NET Core, while .NET Framework will co-exist to support windows desktop development and as another option for ASP.NET.
Might some future version of ASP.NET, say version 6, run only on .NET Core? “We've had similar speculation, that there will be a future time where the benefits of ASP.NET running on .NET Core will have motivated folks to move their active development there, but it is speculation. Our intent is to use customer data to drive any decision,” said Schmelzer.