5 ms·
Maybe a bit going off topic, but I'm down the exact same route: used .NET Standard + EF as a Windows guy up until around 4.8, then I started TS development (not
by can16358p 2y ago
Maybe a bit going off topic, but I'm down the exact same route: used .NET Standard + EF as a Windows guy up until around 4.8, then I started TS development (not for backend but because of switching focus on frontend, also simultaneously switching to Apple ecosystem/iOS dev etc. but still) and still love it.
If I were to start a new backend project today, I'd be going with node.js/TS but because that's what I'm used to as language/framework, not because it's necessarily better. But I loved C#/.NET/VS/EF/Azure stack just as it too back in the days.
Would you recommend going in with .NET Core/Vscode/EF Core on macOS today, if you were to start a fresh backend project?
- CharlieDigital 2y ago> Would you recommend going in with .NET Core/Vscode/EF Core on macOS today, if you were to start a fresh backend project? "It depends". I also do a lot of work with Firebase and there, I prefer doing backend using TypeScript and Node on Cloud Functions. The front-end integration is really tight and Firebase is designed to work that way as a stack. That said, I'll still develop pure back-end workloads (e.g. async jobs) alongside my Firebase stack using C# and deploy into Cloud Run Jobs. If you're building a pure backend, I'd choose .NET 8 with confidence because the overall DX feels better than Node to me. EF Core is really, really good; I prefer it to Prisma and the handful of alternatives on Node for relational DBs. I think .NET gives senior devs more "reach" (while still being approachable for junior devs) because it is multi-threaded[0], has source generators[1], interops with C++ easily, has deep optimization options for performance, and is generally a deeper platform than Node. Deployment into the serverless container runtimes is a breeze[2]. I also find myself patching CVEs and updating packages less in .NET land than in Node land (felt like it was a monthly and sometimes weekly chore in Node to be upgrading deps because of a security advisory). Things I miss from Node are the aforementioned unit testing, JS has better hot reload than .NET (serviceable, but not as good), discriminated unions (though its possible to patch that on with libraries like OneOf[3]), and Node has more package variety (while I think .NET has better package quality). [0] https://chrlschn.dev/blog/2024/05/need-for-speed-llms-beyond-openai-w-dotnet-sse-channels-llama3-fireworks-ai/ https://chrlschn.dev/blog/2024/05/need-for-speed-llms-beyond... [1] https://chrlschn.dev/blog/2023/08/dotnet-source-generators-dotnet-7/ https://chrlschn.dev/blog/2023/08/dotnet-source-generators-d... [2] https://www.youtube.com/watch?v=GlnEm7JyvyY https://www.youtube.com/watch?v=GlnEm7JyvyY [3] https://github.com/mcintyre321/OneOf https://github.com/mcintyre321/OneOf
- mst 2y agoI really should take EF Core apart and see how it all works before I next work on db layer code, I've stolen ideas from older versions before now but I suspect it deserves a deep dive on the current version. (JS db layer code always makes me sad and I always end up missing https://p3rl.org/DBIx::Class https://p3rl.org/DBIx::Class)
- CharlieDigital 2y agoThe most interesting JS DB lib I came across was https://github.com/kysely-org/kysely https://github.com/kysely-org/kysely but still didn't feel as good as EF Core.
- mst 2y agoSomewhat belated, but thank you - I'll probably have a play with that, it looks ... less annoying than anything else I've seen, at the very least. Losing my temper and writing my own is still on the cards at some point, I imagine, but this was definitely worth a mention.
- neonsunset 2y agoYes, there are .NET teams using Macs exclusively, it's no different to using Node/Spring/etc. Except much better experience and performance (Spring is notoriously slow, JS "performance" needs no introduction).