←back to thread

.NET 10

(devblogs.microsoft.com)
489 points runesoerensen | 3 comments | | HN request time: 0s | source
Show context
jitbit ◴[] No.45888669[source]
For us, every .NET upgrade since .NET 5 has gone surprisingly smoothly and reduced CPU/RAM usage by 10–15%.

We were even able to downgrade our cloud servers to smaller instances, literally.

I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

replies(26): >>45888799 #>>45888804 #>>45889332 #>>45891939 #>>45896032 #>>45898279 #>>45898305 #>>45898358 #>>45898503 #>>45898877 #>>45899062 #>>45899235 #>>45899246 #>>45899326 #>>45899445 #>>45899481 #>>45899858 #>>45900544 #>>45900791 #>>45900829 #>>45903218 #>>45904345 #>>45904435 #>>45905041 #>>45906073 #>>45907122 #
parliament32 ◴[] No.45899481[source]
I think the key problem is that a large number of startups are shipping software in containers, and dotnet requiring a CLR is not particularly well-suited for containerization. It's like the old school Java JVM model. You have to ship a copy of the runtime with every container, and if you're doing proper microservices it's an awful lot of overhead.

Yes I'm aware MS makes it easy to build containers and even single executables, but languages that compile down to an ELF are pretty much a requirement once your deployments are over the 10k containers mark.

replies(11): >>45899527 #>>45900963 #>>45901005 #>>45901024 #>>45901026 #>>45901133 #>>45901711 #>>45901752 #>>45903133 #>>45904968 #>>45905736 #
paride5745 ◴[] No.45899527[source]
Exactly this point.

Go and Rust produce native binaries, I wish C# had an official native compiler without the big runtime needs of .Net.

replies(2): >>45899644 #>>45899673 #
cachius ◴[] No.45899644[source]
You might want to read https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...

Publishing your app as Native AOT produces an app that's self-contained and that has been ahead-of-time (AOT) compiled to native code. Native AOT apps have faster startup time and smaller memory footprints. These apps can run on machines that don't have the .NET runtime installed.

replies(4): >>45900365 #>>45900449 #>>45900617 #>>45907144 #
1. 4rt ◴[] No.45900365[source]
They're self contained and native, but they're still massive.

There's been some work on CoreRT and a general thrust to remove all dependencies on any reflection (so that all metadata can be stripped) and to get tree-shaking working (e.g. in Blazor WASM).

It seems like in general they're going in this direction.

replies(1): >>45901039 #
2. greener_grass ◴[] No.45901039[source]
Smaller is better, of course, but I've never found the size of .NET binaries to be an issue.

What problems does this cause?

replies(1): >>45901873 #
3. 4rt ◴[] No.45901873[source]
If you're trying to pack hundreds of microservices into a cluster, having containers using 80MB of ram minimum instead of 500KB can become a big deal.