Microsoft's .NET-mare for developers: ASP.NET Core 2.0 won't work on Windows-only .NET

Programmers left with not-quite-as-good .NET Core


Build Microsoft has made a change to its forthcoming ASP.NET Core 2.0 web framework so that it is now incompatible with the Windows-only .NET Framework, causing confusion and annoyance for some .NET developers.

The bewilderment is understandable. Here is a quick reminder of what various terms mean:

  • .NET Framework: The Windows-only .NET runtime and libraries that ship as part of Windows and are maintained with the operating system. The latest version is 4.7, included with Windows 10 Creators Update, and can be installed on Windows Server 2008 R2 and upwards.
  • .NET Core: The cross-platform fork of .NET, which runs on Windows, macOS, and Linux (various distros are supported). Current version is 1.0, with 2.0 in preview and set for release in the third quarter of 2017.
  • ASP.NET Core: The next generation of the ASP.NET web framework, which (until now) runs either on .NET Framework or .NET Core. The current version is 1.1, with version 2.0 promised at the same time as .NET Core 2.0.
  • .NET Standard: A specification that defines APIs available across different versions of .NET. Version 1.6 is supported by .NET Core 1.0 and .NET Framework 4.6.1 and higher, and also by Xamarin on iOS and Android. Version 2.0 is supported by .NET Core 2.0 as well as .NET Framework 4.6.1.

Until recently, the assumption was that ASP.NET Core 2.0 would target .NET Standard, and therefore run on .NET Framework as well as Core, but last week Microsoft development manager Eilon Lipton stated that the updated web framework will target .NET Core 2.0 only, meaning that it will no longer run on .NET Framework.

A busy thread on GitHub ensued, as developers come to terms with this incompatibility.

The difficulty is that although .NET Core generally performs better than .NET Framework, it is not as mature, and many existing .NET libraries do not work. Examples are the full Windows Communication Foundation (WCF) client libraries, System.Drawing, System.DirectoryServices (for Active Directory support), COM automation – which is a Windows-specific technology for calling native code – some cryptographic libraries, and the Oracle database provider.

Workarounds are available in some cases, such as calling into libraries compiled for .NET Framework from .NET Core, but this does not always work. Microsoft is also busy adding libraries to .NET Core that will plug some gaps, but the nature of a cross-platform framework is that not everything can be ported.

Why is Microsoft making this change? It is for speed of development, says developer evangelist Scott Hanselman:

.NET Core is side-by-side and it's moving fast. It's WAY faster than .NET (Full) Framework can move, which is good. By building ASP.NET Core 2.0 on top of .NET Core 2.0 (which, remember, is a SUPERSET of .NET Standard), that means stuff can be built faster than NetFx or even Netstandard.

The difficulty is that for many businesses running ASP.NET Core on .NET, Framework was an excellent way to get the benefits of a faster, more modern web framework combined with compatibility with existing libraries and the reassurance of Windows servicing, since the Framework is patched with the operating system.

One developer says:

Guys, this is kind of garbage :(. We built on top of ASP.NET Core because of the option to use it with netfx, and we built things which were intended to last 5-10 years, not for 1 year of support max. This is what the ASP.NET name means in business and it's why large, slow-moving organisations choose it over flavour-of-the-month frameworks.

Developers are also unhappy that despite ASP.NET Core being developed as open source on Github, this major change was made without warning or consultation – though Microsoft's Damian Edwards says that "we didn't intend for this change to be so hard, so late, and without warning. Hindsight is 20/20 and if we knew what we know now we would have communicated things earlier." Edwards adds that ASP.NET Core 1.0 will be supported for an extended period to allow more time to port to the next version.

Strategies

Microsoft's developer platform has been subject to many strategic changes over the past few years. The current cross-platform strategy is compelling in many ways, but clear communication and consistent execution is essential for developers to have confidence in its future.

The truth is that migrating the .NET platform from Windows-only to a cross-platform framework is a huge and difficult undertaking, both for Microsoft and for .NET developers. This announcement shows that currently Microsoft is prioritizing optimization of the next-generation platform over compatibility with its Windows-only legacy. Although this makes sense long-term, the risk is that developers will be unable or unwilling to move to the new platform, leaving them stuck with a web framework that will be increasingly out of date.

Microsoft's primary developer event, Build 2017, is running this week in Seattle, US, and you can be sure that the future of .NET and .NET Core will be a topic of intense discussion. ®

Updated to add

Microsoft has backtracked: ASP.NET Core 2.0 will run on .NET Framework after all.

Similar topics

Broader topics


Other stories you might like

  • Planning for power cuts? That's strictly for the birds

    Please Mr Hitchcock, no more. The UPS can't take it

    Who, Me? "Expect the unexpected" is a cliché regularly trotted out during disaster planning. But how far should those plans go? Welcome to an episode of Who, Me? where a reader finds an entirely new failure mode.

    Today's tale comes from "Brian" (not his name) and is set during a period when the US state of California was facing rolling blackouts.

    Our reader was working for a struggling hardware vendor in the state, a once mighty power now reduced to a mere 1,400 employees thanks to that old favourite of the HR axe-wielder: "restructuring."

    Continue reading
  • North Korea pulled in $400m in cryptocurrency heists last year – report

    Plus: FIFA 22 players lose their identity and Texas gets phony QR codes

    In brief Thieves operating for the North Korean government made off with almost $400m in digicash last year in a concerted attack to steal and launder as much currency as they could.

    A report from blockchain biz Chainalysis found that attackers were going after investment houses and currency exchanges in a bid to purloin funds and send them back to the Glorious Leader's coffers. They then use mixing software to make masses of micropayments to new wallets, before consolidating them all again into a new account and moving the funds.

    Bitcoin used to be a top target but Ether is now the most stolen currency, say the researchers, accounting for 58 per cent of the funds filched. Bitcoin accounted for just 20 per cent, a fall of more than 50 per cent since 2019 - although part of the reason might be that they are now so valuable people are taking more care with them.

    Continue reading
  • Tesla Full Self-Driving videos prompt California's DMV to rethink policy on accidents

    Plus: AI systems can identify different chess players by their moves and more

    In brief California’s Department of Motor Vehicles said it’s “revisiting” its opinion of whether Tesla’s so-called Full Self-Driving feature needs more oversight after a series of videos demonstrate how the technology can be dangerous.

    “Recent software updates, videos showing dangerous use of that technology, open investigations by the National Highway Traffic Safety Administration, and the opinions of other experts in this space,” have made the DMV think twice about Tesla, according to a letter sent to California’s Senator Lena Gonzalez (D-Long Beach), chair of the Senate’s transportation committee, and first reported by the LA Times.

    Tesla isn’t required to report the number of crashes to California’s DMV unlike other self-driving car companies like Waymo or Cruise because it operates at lower levels of autonomy and requires human supervision. But that may change after videos like drivers having to take over to avoid accidentally swerving into pedestrians crossing the road or failing to detect a truck in the middle of the road continue circulating.

    Continue reading

Biting the hand that feeds IT © 1998–2022