It’s 20 years since Microsoft delivered the first full release of .NET and its suite of developer tools. .NET has been a key part of the Microsoft story since then, driving much of the Windows desktop application strategy, as well as supporting development of developer tools like Visual Studio. It has also been key to Microsoft’s open-source story, helping lead the way as it opened its tooling platform, and eventually to the cross-platform, open .NET we have today.
We interviewed Scott Hunter, Microsoft’s VP of product management for .NET, to talk about the journey so far. It has certainly been a long and winding road, which started with the announcement of was to become .NET at Microsoft’s Forum 2000 event, with a set of concept videos that envisioned a connected world where information flowed between servers, PCs and mobile devices. Looking back at those videos, it’s clear that .NET has delivered on that vision, on what Hunter describes as “quite an amazing journey.”
SEE: Hiring kit: .NET developer (TechRepublic Premium)
The world might not be quite the way those videos predicted, but if we’re not using Pocket PCs and Windows CE, we’re running apps on our iOS and Android phones that might be built using the .NET-powered Xamarin, working against Linux servers using ASP.NET running on .NET. The .NET world is now much more than only Microsoft – it is everywhere… with new features announced at Red Hat events and with VMware running its own .NET conference.
.NET: How did we get here?
For Hunter, it started in 2008 with the sudden popularity of Ruby on Rails – that is what inspired the development of ASP.NET MVC and the Nuget repository, with some of Microsoft’s first open-source tools. At the start of the move to open source, Microsoft didn’t take contributions, but that changed in 2012 with the open sourcing of both ASP.NET and the Entity Framework.
From there to today’s fully open .NET required buy-in from higher-level management; the ASP.NET team was part of Azure so that meant working with Jason Zander and Scott Guthrie. The ASP.NET team could see that Linux was coming. “And we were sitting around saying, you know, hey, the tech world is changing, but underneath us open source is now a huge, big thing,” Hunter explains. “And we dipped into it a little bit. But really, we need to be there, full tilt. The whole platform has to be open source.”
That first open-source .NET platform was built on top of the existing Mono open-source runtime, with the rest of the platform still using Microsoft’s own proprietary .NET Framework. The real shift to a full open-source .NET platform came later, with corporate support for a new open-sourced core CLR, which was to become .NET Core. While the first release was limited, it changed the way the team did things, with a shift to a community focus. As Hunter notes, it was something very new for Microsoft. “We started something called the ASP.NET Stand Up, where every week, [the team], we would get on the community call and show them the bits that we’ve hacked up in the last week and get feedback.”
SEE: Daily Standup Meeting Policy (TechRepublic Premium)
The community was a big driver, as it provided impetus for what was developed and how, and how the team focused on specific things. For example, an early benchmark of the original Mono-based system showed that its Linux performance was poor, which pushed the team to get into the top 10 of key benchmarks. Calling out the performance push in the regular online stand up led to the first big community engagement and a whole series of performance-related pull requests that quickly fixed key deficiencies, delivering an enterprise-grade .NET Core.
.NET: What is the next big development?
Each release of .NET Core, and now the unified .NET, has its themes and new technologies that aim to push the envelope. The next big .NET development will be the release later this year of a new UI stack, MAUI. The Multi-platform App UI is a big part of the upcoming .NET 7, with a limited version in the current .NET 6; in part, it’s an answer to the question of how Microsoft will deliver a common UI across different platforms, including the web.
The answer, as Hunter says, is that it won’t directly. “We’re not because we’re not going to build a UI tech. We’re just going to wrap native UI tech with our own tech.” That way, you’ll have a single codebase that works with Windows, macOS, iOS, Android and the web. Hunter is looking forward to the last option. “Even crazier is that you can put a Blazor application inside of [MAUI] and have a native web app that actually talks to local hardware.”
There’s more to .NET than the familiar C# and Visual Basic. If you go back to the early days of .NET, languages like IronRuby and IronPython brought familiar open-source languages to the platform. Third-party development continues, with Hunter enthusiastic about developments like PeachPie, a .NET implementation of PHP that runs considerably faster than the standalone PHP engine.
Is this the end for the .NET journey, with a cross-platform .NET that delivers native performance nearly everywhere? Hunter laughs, “The team’s job is going to be what do you do after .NET 7? It’s going to be a fun question to think of what’s next with the stack.” That’s where the growing .NET open-source community will help drive the platform, providing insights on what they need and what they want from their tools.
One possible future direction comes from Microsoft’s Orleans distributed application framework. Designed by Microsoft Research for massive cloud applications, it powers many of Xbox’s back-end services. The development team has joined the .NET team, and elements of Orleans will start moving into .NET, extending to support cloud-centric distributed applications. There’s a lot of cross-fertilization to come there, bringing modern networking concepts to the platform without losing any of its performance gains.
Perhaps the biggest change in .NET over the last few years is a change in the philosophy – in the past, it was agnostic, giving you multiple ways to do the same thing, and now it’s opinionated. Yes, you can still use the older technologies if you want, but the future is what Hunter calls “a fully loaded toolbox” that avoids the confusion that comes with multiple roads to the same destination. As he says, “You don’t have to go hunt for a bunch of stuff – most of it is now built in.”
Building a stack that millions of developers rely on is a responsibility, albeit one that is very rewarding. Hunter sums it all up by saying, “And so it’s a great journey. I am so proud of where we are in 20 years, and I cannot wait to see what we’ll be doing in 25 years.”