Many people over the years have formed the opinion that Microsoft doesn't listen to its customers. At least, not to its non-enterprise customers. We now have proof-positive that they do: I’m happy to report that they’ve done away with the ASP.NET 5 moniker for its next generation Web development technology. They’ve done the right thing, but--alas--only in an incomplete way.
Scott Hanselman announced the change most prominently in his blog post, ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0.
The problem with calling their new Web development technology “ASP.NET 5” is that it implies that this is an updated version of ASP.NET 4, perhaps even that it is a better version. Maybe there are some breaking changes, as there often are, but for the most part things work the same way. And there is likely a defined upgrade path for applications developed with older versions. But that is decidedly not the case with what they are now calling ASP.NET Core 1.0. Instead, this new technology is a complete rebuild of what came before, with no clear upgrade path. I’m sure the wonderful community of ASP.NET developers will provide solutions to those who wish to migrate applications, but so far Microsoft isn’t offering a solution. As things stand now, you’ll have some work to port applications over.
Let’s parse the new name into its component parts: 1.0, Core, and ASP.NET. Which I’ll henceforth refer to as The Good, the Bad, and the Ugly, in homage to one of the greatest horrible movies of all time. (Please, no offense. I love that movie, for reasons I have yet to understand after 50 years.)
The Good: It is great that Microsoft is calling this a version 1.0 technology. Even though it will feel familiar to experienced .NET developers who build ASP.NET MVC and Web API applications using current technologies, this is brand new and rebuilt from the ground up. We’re going to have a pretty steep learning curve to become proficient with it, and it is not going to be a mature product from Day 1. With the change from version 5 to 1.0, Microsoft has faced up to reality. Thankfully.
The Bad: Okay, maybe calling it Core is not that terribly bad, but what kind of name is that for a cool new Web development technology? (And it is indeed cool.) Core is already an overused name in NuGet packages, which will cause some naming issues. I get that the new version of the .NET Framework that’s part of all this consists of the core features needed to build applications cross platform, but it’s just not that great of a name component.
The Ugly: This one truly is ugly. ASP started out meaning Active Server Pages in the late 1990s, Microsoft’s first server technology for dynamically generating Web pages. The first versions of ASP.NET were also page-based, so that made sense for the new Web development technology based on .NET technology around the turn of the millennium. But ASP.NET Core is not page-based at all, and carrying the name forward is just going to cause confusion. I get that Microsoft has a strong brand with ASP.NET, but it’s the wrong brand for the new technology.
For some great discussions of the new ASP.NET Core 1.0 naming, particularly the ASP.NET part, read these interesting blog posts by a couple of my fellow MVPs:
Microsoft renames ASP.NET 5 to ASP.NET Core 1.0 by Rick Strahl. Rick is spot-on with his analysis of the name change; the bungling of the beta and RC monikers, and the mixed messaging that we’re getting from Microsoft. As well as his kudos for how the ASP.NET Core technology is all about.
ASP.NET Core Naming History and Reaction by Steve Smith. Steve covers some interesting history of ASP.NET-related names in this self-described “fact-supported rant.”
Read the comments for both these posts as well. There are some interesting observations there.
One of the best alternative names I saw for the technology is Web.NET, which craigvn suggested in a comment to Steve Smith’s post. Alas, that domain name is owned and used by a Web development company based in Toronto, Canada. There’s probably all kinds of issues for Microsoft with that name. As Steve says, naming is hard, and issues like these make it all the harder.
Microsoft’s Jeffrey T. Fritz posted an update not long after the name changes were announced, An Update on ASP.NET Core and .NET Core, that has some interesting status information. In particular, the release dates for RC2 and RTM have changed from February and the end of March, respectively, to the indeterminate TBD in the ASP.NET Core 1.0 Schedule and Roadmap on GitHub. As much as I look forward to the release of the new technology, this is a Good Thing. Microsoft has given the appearance lately to be rushing things--what Kristian Hellang amusingly calls Deadline Driven Development in a recent tweet. It’s great that they’re slowing down a bit to make sure the get things right. As Rick Strahl points out, they really need to have a solid 1.0 release for any chance for the technology to succeed, particularly on non-Windows platforms.
The technology formerly known as .NET Core 5, the core subset of the .NET Framework that is cross platform, has also being renamed .NET Core 1.0. This is a bit less of an earth-shattering change, although the reversioning to 1.0 is good for the same reasons. This is a new technology, even though it is based on the current .NET Framework version.
Following the lead of the ASP.NET team, Entity Framework 7 is also getting a rebranding to Entity Framework Core 1.0. This name change also makes sense, since EF is also getting rebuilt from the ground up, becoming all Code First, all the time. That’s a pretty fundamental change, and so also will be a 1.0 product. But the Core part of the name is similarly bad. You can read Julie Lerman’s take on it here: EF7 is now EF Core 1.0, Package and namespaces change too.
Overall, these name changes are good, making them much more representative of the relationship of the new technologies to the old. But, I hope that Core isn’t going to become the newest Microsoft naming buzzword. In the early days of .NET, they went wild changing product name to include the then-hip .NET name, even those that had nothing to do with the .NET Framework or even development tools. It quickly diluted the meaningfulness of the name, and they gradually backed off from the change. Thankfully. And now I hope they rethink their rethinking about carrying forward ASP.NET as part of the name.