.NET Native should support all types of projects


Let me start with saying that I believe that C# is the best computer language ever made, it has really made me love my job.

I also program quite a fair amount in C and C++ and the one thing that really bothers me about C# is the (startup) performance.

Now I know that Microsoft has come up with C# Native, which uses a AOT (ahead of time) compiler to compile the C# source code to native machine instructions. However, at the moment it only supports UWP, which is a small subset of .NET projects. Development also seems to have stalled, as there hasn’t been any progress on C# Native for years.

I would hereby like to urge Microsoft to continue working on C# Native and to make it available for all types of projects, including WPF, WinForms and ASP.NET.

I believe C# Native could be a game-changer in that it could supplant C++ as the language of choice for most development, even at Microsoft internally. Products like Word and Visual Studio would be much easier to develop with C#, especially in combination with unit-testing.


I think most innovation is currently happening in .Net Core. .Net Core 3.0 will even have support for Winforms and WPF (on Windows only), so that should cover the kinds of projects that you mentioned.

Specifically, the .Net Core solution for decreasing startup performance is called crossgen (it’s similar to .Net Framework NGen), though it isn’t currently easy to use.

(There is also a full AOT solution called CoreRT, but I don’t think if that’s going to be production-ready anytime soon.)

If you could easily use crossgen with ASP.NET Core, WPF and Winforms apps on .Net Core, would that be a good enough soution for you?


Having WinForms in .NET Core only on Windows doesn’t cut it, that’s next to useless.

They shouldn’t bother with WinForms, since this was Windows only from the outset. They should port WPF, which has the potential to run on all platforms.


CoreRT can work with all types of .NET Core Projects.

There is a ASP.NET Core sample in their repo.

Of course, everything doesn’t work correctly, it didn’t work with ASP.NET Core for a long time. But now they fixed everything related to it and a basic web API can be hosted.

I don’t see a reason for it to not support WPF/WinForms apps in the future. The bugs will come out once .NET Core 3.0 is out.


From what I’m hearing Microsoft wants to make WPF and WinForms available in .NET Core 3,0, but only on Windows. What use is that?

By making Linux and Mac OS X second class citizens they’re destroying the dream of a multi-platform .NET.

Microsoft, don’t do this! Everything should be made available on all three platforms with exactly the same capabilities. Otherwise, don’t bother.

.NET Foundation Website | Blog | Projects | Code of Conduct