←back to thread

.NET 10

(devblogs.microsoft.com)
489 points runesoerensen | 5 comments | | HN request time: 0.635s | 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 #
olavgg ◴[] No.45898305[source]
As a startup, what is it in for me to switch from Java, Spring Boot, Hibernate, Beam, Flink, Pulsar, Vault, KeyCloak ecosystem to C#.Net? Is the documentation better? Do I get better performance? Is the community larger and more stable?
replies(4): >>45898404 #>>45898520 #>>45899801 #>>45900264 #
Xelbair ◴[] No.45898520[source]
Vault, Keycloak, Flink are language agnostic or there exist bindings for most popular languages.

Documentation is vastly better compared to Java ones, it's like day and night, LINQ is vastly superior to anything that Java offered - but i haven't used java in a very long time. And every time i had to write java it felt like i went backwards in time by 5-10 years.

If i remember right Java's webserver beats ASP.NET in performance benchmarks but .net's one performance is good enough that it does not matter until you hit really big usercount - and at that point you usually have to rethink your architecture anyways.

But frankly .net is still mostly Microsoft Java but with better developer ergonomics in my opinion. It did shed a lot of overengineered OOP legacy from .net framework days though and we're seeing major performance improvements with every version.

replies(3): >>45898814 #>>45901216 #>>45902154 #
mrsmrtss ◴[] No.45898814[source]
>If i remember right Java's webserver beats ASP.NET in performance benchmarks

That's not the case anymore. Kestrel is one of the fastest servers there is, and it beats every Java server out there.

replies(3): >>45898948 #>>45899678 #>>45899712 #
1. Xelbair ◴[] No.45899678[source]
the famous benchmark that put ASP.NET in #1 spot was hyperoptimzied to hell while competing with normal implementations of other systems. https://web.archive.org/web/20250330225652/https://dusted.co...

archived version becasue original one gives 404

currently according to techempower benchmarks ASP.net is 55th overall in minimal variant, while being 83 in normal one in Fortunes benchmark which is basically a normal usecase.

While most java framworks oscillate between 10-30

https://www.techempower.com/benchmarks/#section=data-r23

EDIT: there's also an entry for aspnetcore at 35th

replies(3): >>45899997 #>>45900187 #>>45905107 #
2. mrsmrtss ◴[] No.45899997[source]
Look at plaintext results if you want to compare just servers. Fortunes benchmark has too many variables (including db queries etc) to say anything about server performance. As for fortunes benchmark, for more realistick Java performance numbers I would look at Spring. Also there are many shady things on those Java bencmarks.
replies(1): >>45904056 #
3. dustedcodes ◴[] No.45900187[source]
> archived version becasue original one gives 404

Thanks, fixed now. I literally just migrated from GCP to Hetzner over the weekend and was about to finish the migration today :)

4. banashark ◴[] No.45904056[source]
I think saying that Spring is the representative of Java metrics is somewhat equivalent to saying that full aspnet mvc is the representative of dotnet metrics.

On the dotnet side, both Oxpecker and Giraffe (Giraffe being written by the author of that post) perform very well with simple code and from what I see, no "tricks". It's all standard "how the docs say to write it" code (muuuuch different than those platform benchmarks that were rightfully scrutinized in the referenced blog post).

On the jvm side, I started looking for a reference near the top without any targeted non-default optimizations (which is really what I personally look for in these). The inverno implementation has a few things that I'd call non-standard (any time I see a byte buffer I imagine that's not how most people are utilizing the framework), but otherwise looks normal. I recall an earlier quarkus implementation that I read through a couple years ago (same repo) that wasn't as optimized with small things like that and performed very well, but it seems they've since added some of those types of optimizations as well.

All to say: If you venture outside the standard of either platform (full fatty aspnet/ef or spring/hibernate) you can make the tradeoff of framework convenience for performance. However when it comes to the cost/benefit ratio, you're either going to be joining a company using the former, or writing your own thing using the latter (most likely).

5. achandlerwhite ◴[] No.45905107[source]
It's no longer so hyper optimized and performs very well today in the metric compared to any other comparable framework.