4 ms·
So using this a .Net application run without the .net framework?
by wehadfun 9y ago
So using this a .Net application run without the .net framework?
- sebazzz 9y agoPrecompiled, and the framework is delivered with it. This repository is a work in progress of getting .NET to run like a native application. It features multiple targets, not only desktop, but also browser via wasm or, the most interesting, is compilation (transpilation?) to C++ and therefore supporting more platforms than otherwise possible.
- bonesss 9y agoThe .Net VM compiles its code "just in time", this is compiling "ahead of time" while still running on the .net framework. You're thinking a little more along the lines of .net's 'NGEN', used to create native images. This ahead of time compilation is smart for server solutions where cold start time is an issue, certain kinds of complex projects where start times become an issue, or for small devices where start times are among the biggest usability issues ever.
- ygra 9y agoI thought server stuff is the place where startup time doesn't matter that much compared to interactive applications on the desktop. At least that's historically one of the major difference between the client and server runtimes of both .NET and Java.
- bonesss 9y agoWell, that's a definition question :) You're dead on -- proper "Server" solutions, like we see in architecture diagrams or on back-end tiers, are generally insensitive to startup times. As a rule they're spooled up before being connected to the larger app, or are 'the app' itself and have load balancing or operational pauses to mitigate up-time effects (where necessary). In 2020, though, as people are working with microservices and containerized server deployments you end up with a lot of 'servers' where 'apps' used to be. Particularly for focused web apps initial startup time can be a major issue in a shared environment. That's where NGEN or AOT can come into play to happily minimize startup time and memory demands. Parallel computing and number crunching loads can also benefit if you're looking at lots of short lived servers, or a domain that challenges the compiler for whatever reason.
- jsingleton 9y agoThe framework is included with the application, so no install is needed. You can already generate a self-contained platform-agnostic deployment that includes the framework, but it contains lots of files. You need to specify the platform, yet that is just for the bootstrapper. There are also some pre-requisites that have to be installed, such as SSL libs. .NET Native (a.k.a. CoreRT) is more like what you get with Go, a single native binary. You need to know the CPU architecture ahead-of-time, but it has performance advantages. You can also strip out unused code with IL Linker and do things like Profile Guided Optimisation. Keep in mind that if you're using Docker containers then you probably want to share the framework, otherwise this will increase the size. There's some more discussion around this in the .NET Core talks that I've given: https://unop.uk/talks/ https://unop.uk/talks/
- tree_of_item 9y ago> .NET Native (a.k.a. CoreRT) is more like what you get with Go, a single native binary. I think this really needs to be emphasized, it's a great feature and this was the one question I had when I clicked the link, but I didn't get the answer until I came here.