Hacker News new | ask | show | jobs
by pier25 40 days ago
Never tried .NET 10 but hot-reload was garbage with .NET 9 and 8.

It failed very often and you had to manually restart the dev process. Even when it worked, it was no where as fast as eg using Bun with TS.

Also Minimal APIs didn't have feature parity vs MVC even 4 years after release which is quite frankly insane. I hear in .NET 10 they've finally added some validation. Not sure how it compares to something like FluentValidation which still is one of the most downloaded nuget packages.

1 comments

    > It failed very often and you had to manually restart the dev process. Even when it worked, it was no where as fast as eg using Bun with TS
Really depends on what you're doing. For run of the mill APIs, it works pretty flawlessly with `--non-interactive` and just auto-restarts when it needs to, hot reloads when it can (again, I'm not comparing this to interpreted languages and runtimes; the constraints are just different).

I have a clip of this in action with .NET 9 generating OpenAPI contracts and TS bindings at the top of this README: https://github.com/CharlieDigital/dn9-openapi-codegen/blob/m...

    > Also Minimal APIs didn't have feature parity vs MVC even 4 years after release which is quite frankly insane
Why does it need to? That's like saying express should have feature parity with Nest.js; they have different use cases in my view :shrug:
I had to run it with --no-hot-reload to get a consistent behavior.

> That's like saying express should have feature parity with Nest.js

I disagree but, objectively, validation is a fundamental part of any web app or API.

They shipped Minimal APIs in .NET 6 without validation. The functionality was already there for MVC so it's not like they had to build it from scratch. And yet, they didn't add it until .NET 10.

I just find it very weird that there are two standards here.

Express is ostensibly the analog of minimal APIs and ships with no validation. You pick your validation library and build on top of it. A less complete, less opinionated, bare-bones stack on which you build with explicit stack choices.

Nest.js is ostensibly the analog of controller APIs and ships with validation. A more complete, more opinionated approach where you lean in to stack defaults.

This makes total sense in the Node.js world; I don't see why controller and minimal have to have feature parity when they have different use cases and, like Express, it's possible to pull down third party validation libraries. Controller API is more opinionated like Nest.js while minimal is intentionally less opinionated like Express.