←back to thread

.NET 10

(devblogs.microsoft.com)
489 points runesoerensen | 8 comments | | HN request time: 0.254s | source | bottom
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 #
leetharris ◴[] No.45889332[source]
> I wish .NET was more popular among startups, if only C# could get rid of the "enterpisey" stigma.

Too hard to ignore the benefits of cross-stack gains in Typescript/Python. The C# native phone, Blazor, etc just isn't quite there yet. Tried it at the last company, and full stack TS was just so much easier to do.

The reality is that the vast majority of startups don't make it. The #1 thing startups should be focusing on is hiring the right people and product velocity. TS just makes that easier in my experience.

replies(3): >>45890709 #>>45898233 #>>45898434 #
phillipcarter ◴[] No.45890709[source]
Is it though? Backends can be any language and there's a lot more variety there -- TS+node, Go, Python, Java. It's just .NET that's largely ignored for no real technical basis.
replies(4): >>45896164 #>>45898627 #>>45898862 #>>45904484 #
cebert ◴[] No.45896164[source]
You can easily use the same types and libraries in your backend and frontend with TypeScript. It’s not at easy with dotnet.
replies(3): >>45898128 #>>45898236 #>>45898276 #
1. phito ◴[] No.45898128[source]
OpenAPI and client generators solve this issue easily.
replies(4): >>45898168 #>>45898177 #>>45898181 #>>45898458 #
2. robertlagrant ◴[] No.45898168[source]
No, that's not true. If you share code like this then you can do things like put the same validation code in the frontend and the backend: frontend to give a nice user experience, and backend to protect the endpoint.
replies(1): >>45898510 #
3. cies ◴[] No.45898177[source]
Or GraphQL.

Still one lang on both ends is nice: there are some bits of code you want to run on both ends (like templating for SSR/SEO/caching; but also using them in the browser).

4. josephg ◴[] No.45898181[source]
Still more work than just running the same code everywhere.
5. littlecranky67 ◴[] No.45898458[source]
I would love this to be true, but it isn't. I've done generating types for the frontend multiple times, sometimes from C# (around 2016, using typelite), Java (openapi template generator) and most recently straight from OpenAPI spec files (.yaml) using Orval.

It always has been a shitshow. It works well for the 90% cases, but in the 10% edge cases, things break. It becomes impossible to fix generation issues, you will often resort in working around issues in your backend/openapi code. Sometimes you report bugs upstream and hope it gets fixed. In the current project we are stuck on a ~2year old Orval version (a typescript generator from openapi) because some features broke or were removed in the latest version, and the entire monorepo (15+ LoB apps) wouldn't compile and would require major changes. This simply because a never version of the generator was broken/removed features previously present.

6. littlecranky67 ◴[] No.45898510[source]
OpenAPI does support patterns for fields and nullables/non-nullables - that already gets you very far regarding validation. A decently sophisticated generator (which don't exist IMHO) would generate the validation code for your respective language.
replies(1): >>45898922 #
7. robertlagrant ◴[] No.45898922{3}[source]
True, but you can get all the way to zero duplication if you write it directly and share that code.
replies(1): >>45901344 #
8. ◴[] No.45901344{4}[source]