Microsoft Takes Census to Determine What Bits of .NET to Port to .NET Core
Written by Mike James   
Monday, 20 August 2018

Microsoft announced at Build this year that it would port existing platform-specific elements of .NET to .NET Core, but which bits? The simple answer of "all of it" doesn't seem to be acceptable and so it's time for users to tell Microsoft what is essential.



It seems such a short time since Microsoft was proud to lead from the front - often taking its programmers down roads that they might not have wanted to follow. It didn't matter too much, however, because you could always think that Microsoft had vision and if it didn't suit your purpose it was because you hadn't caught up yet.

The decision to take .NET open source and create .NET Core is something that we all applauded, but ultimately it leaves us in a strange situation. As I have said before, if you wanted to get here you might not have started from there. The .NET system was designed to be the way to program Windows for the forseeable future. It was advanced with an advanced language C# and advanced support - the four pillars of Windows WPF, WCF, WF and Cardspace - what's Cardspace! Moving it to open source was reasonable; making it cross-platform was largely irrelevant. How can you take all of the infrastructure that made .NET great when it's running under Linux? You can't.

So .NET Core is essentially crippled and it took a while for Microsoft realize that it needed to add in some of the frameworks.  Windows Forms and WPF are the top runners for porting to .NET Core.

Notice that this isn't a cross-platform port; any .NET Core program that makes use of Windows Forms or WPF will only run under Windows - but many old Windows programmers don't care too much about other platforms.

This is a reasonable, if somewhat overdue, plan. The problem Microsoft has is what part of the old .NET does it port to .NET Core - not that "port" is quite the right word here. After all, Microsoft has limited resources and has to work out which parts of the old .NET are important.

So how to do this?

You might think that it was obvious. You might think that Microsoft would take the lead and tell us what is important and then wait for the howls of horror that some obscure part of .NET, probably WF, wasn't included. Rather than take the lead, Microsoft has decided to ask us - democratic or what!? Instead of just asking us to vote, and perhaps get some biased results from programmers who shout the loudest, the current scheme is to get us to run a portability analyzer. You can download it from the blog site, and if you are lucky it will work well enough to analyze your .NET application and discover which APIs are actually in use. The list of APIs will then be sent to Microsoft where they can work out which ones are the most used and hence the most important and urgent in the move to .NET Core. It also serves a second purpose in that it will report to you how likely it is that your program will work with .NET Core 3.0. There is some circularity in this argument, however, as the Compatibility Analyzer will tell you how compatible with .NET Core 3.0 your application is while informing Microsoft what should be in .NET Core 3.0 --- hmmm, something strange and illogical here.

All great, but not really much use. All it takes is a single API that an app uses not to be supported for it to be a useless pile of bits. It is a useless guesture to tell you that your app is 99% compatible with the forthcoming .NET Core 3.0 - it is still a fail.


The result of running the Analyzer - wait a minute there is a column with all green 100% support! Why don't we use that!

So explain to me again, why do I have to move to .NET Core when everything I have works just find on classical .NET? Oh yes, I remember, .NET Core is the future despite Microsoft claiming that the original .NET will be supported forever...

Someone please tell me, for a Microsoft programmer working wtih Windows, what is the use case for .NET Core?

If you know and want to influence the future of this strange project then download and run the Analyzer as soon as you can.

downloadportReal link in blog post.


More Information

Are your Windows Forms and WPF applications ready for .NET Core 3.0?

Related Articles

.NET Core 3 Gets A GUI

Microsoft Asks For Help On The Future Of .NET - Where Do We Start?

Blazor .NET In The Browser

Silverlight Bridge To UWP Apps       

Not Dumping .NET - Microsoft's Method    

Dumping .NET - Microsoft's Madness   

Microsoft Open Sources .NET?       

Was .NET all a mistake?

The War At Microsoft - Managed v Unmanaged

Windows and .NET - the coming storm

WPF Lives!

Microsoft v The Developers    

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



CISA Offers More Support For Open Source

The Cybersecurity and Infrastructure Security Agency (CISA) has announced a number of key actions that they hope will improve the open source ecosystem.

Running PostgreSQL Inside Your Browser With PGLite

Thanks to WebAssembly we can now enjoy PostgreSQL inside the browser so that we can build reactive, realtime, local-first apps directly on Postgres. PGLite is about to make this even easier.

More News

raspberry pi books



or email your comment to:


Last Updated ( Monday, 20 August 2018 )