News for hackers. Stuff that matters.
Re:.NET 10 by phito on Wednesday November 12, 2025 @04:29AM (#45898128)
OpenAPI and client generators solve this issue easily.
Re:.NET 10 by littlecranky67 on Wednesday November 12, 2025 @05:20AM (#45898458)
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.

Re:.NET 10 by robertlagrant on Wednesday November 12, 2025 @04:34AM (#45898168)
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.
Re:.NET 10 by littlecranky67 on Wednesday November 12, 2025 @05:27AM (#45898510)
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.
Re:.NET 10 by robertlagrant on Wednesday November 12, 2025 @06:37AM (#45898922)
True, but you can get all the way to zero duplication if you write it directly and share that code.
Re:.NET 10 by josephg on Wednesday November 12, 2025 @04:37AM (#45898181)
Still more work than just running the same code everywhere.
Re:.NET 10 by phito on Thursday November 13, 2025 @03:07AM (#45912120)
Still better than bringing JavaScript to the back end shudders
Re:.NET 10 by cies on Wednesday November 12, 2025 @04:36AM (#45898177)
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).