Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can we compile an asp.net 5 application by .net native?

The role of .net native in .net ecosystem is confusing for me. I heard it is just for universal windows applications, but also heard that it is part of CoreFX. I think having the option to compile to .net native can have many advantages (including performance).

Is it possible to compile my asp.net application (specially asp.net 5) to .net native?

like image 371
alisabzevari Avatar asked Jul 21 '15 17:07

alisabzevari


People also ask

Can C# compile to native?

It automatically compiles the release version of apps that are written in managed code (C# or Visual Basic) and that target the . NET Framework and Windows 10 to native code. Your apps will provide the superior performance of native code. You can continue to program in C# or Visual Basic.

Is .NET Core .NET 5?

. NET 5 is the next major release of . NET Core following 3.1. We named this new release .

Does .NET 5 need runtime?

You will get a single file containing your application built for Linux, all the dependencies you used in your project, and the . NET runtime ( --self-contained true ). This means that you even don't need to install the . NET runtime on the target machine.

What is .NET native runtime?

NET Native is that the compiler is capable of being hosted in the cloud. When you build your Store package in Visual Studio, two packages are created – one . appxupload and one “test” . appx for sideloading.


2 Answers

No, you cannot. Right now, .NET Native is not for ASP.NET. I believe it's only for Universal Windows Applications. That doesn't mean that one day it won't be available, but right now it's not planned.

See related GitHub issue where ASP.NET team confirms this.

Edit 11/27/2015

Since this was posted, Microsoft has made further announcements regarding .NET Native and .NET Core. I suggest you check out Scott Hanselman's part of the keynote from the Microsoft Connect 2015 event. At the 11:22 minute mark of this excerpt video Scott shows compiling an .NET app to native code and then running it. He says it's "future work" so it appears it's not quite ready yet (I believe one of the Q&A videos from the event explained that it's in one of the dev branches on GitHub, but I'm too lazy to rewatch all the videos for you at the moment). It was unclear if this is only working for console apps at the moment or if it will run ASP.NET.

like image 71
mason Avatar answered Oct 30 '22 03:10

mason


As Thomas says in comments, this should be possible once LLILC is out. It targets .NET Core which is what ASP.NET 5 runs on. I am not sure if the resulting runtime can be called .NET Native per say but LLILC do has plans to natively compile IL (e.g. output by Roslyn) ahead-of-time.

Another option is ASP.NET running on CoreRT by using RyuJIT as AOT compiler. This looks closer to reality today than LLILC. Have seen some experiments in compiling ASP.NET project on CoreRT but nothing that actually works.

[.NET Native makes use of UTC compiler which compiles to run on some C++ runtime (MRT - either minimal runtime or managed runtime, cant remember, also known as Native runtime). Currently the .NET Native UWP apps are windows specific. Though .NET Native and UWP are advertised under .NET Core, this could be misleading as only in debug mode UWP targets CoreCLR, in release mode it targets native runtime which is Windows specific. LLILC/CoreRT should change that.]

like image 30
nawfal Avatar answered Oct 30 '22 03:10

nawfal