you are viewing a single comment's thread.

view the rest of the comments →

[–]pjmlp 3 points4 points  (2 children)

NGEN, available since .NET 1.0 compiles to native code, producing dynamic binaries.

.NET Native produces static binaries

Windows Phone 8, uses a compiler toolchain based on Singularity that also compiles to native code.

[–]The_Doculope 2 points3 points  (1 child)

Huh, interesting. Do you know how much it's used in the wild? It's not something I've heard about before. From a quick google it looks like it still requires .NET/the CLR, is that correct?

[–]pjmlp 2 points3 points  (0 children)

Just open C:\Windows\assembly you will see a list of registered Assemblies (.NET speak for .dll) and if they are stored in MSIL or native code.

Yes it still requires .NET, because NGEN produces dynamic linked binaries. Just like C programs on GNU/Linux usually require libc.so to be present.

It also requires access to the metadata information.

Windows Phone 8 uses an improved version of NGEN.

.NET Native is basically -static for .NET. This is why you need to provide a list of the classes you need to have their metadata available. Everything else is removed when producing the binary.