• 0 Posts
  • 18 Comments
Joined 1 year ago
cake
Cake day: July 16th, 2023

help-circle
    • .Equals and == have different meaning in C#. Decent IDEs will warn you about that (and yes, that excludes Visual Studio, but that always was crap 😄).
    • As for (re)assignments - I don’t see an issue with that, tbh; you only have to be aware of whether you’re using a reference- or value type (and if you aren’t, then let’s be honest - you have bigger problems).

    I admit, “canonical C#” looks like shit due to a fuckton of legacy stuff. Fortunately, newer patterns solve that rather neatly and that started way back in C# 6 or 7 (with arrow functions / props and inlined outs).

    Tl;dr: check the new features, fiddle with the language yourself. Because hell, with ref structs you can make it behave like quasi-Rust


  • And what would that equality entail? Reference equality? You have .Equals for that for every single class. Structural equality? You can write an operator for that (but yeah, there’s no structural equality out of the box for classes, that I have to concede).

    Hell, in newer C# (~3-4 versions back, I don’t recall off the top of my head) you have records, which actually do support that out of the box, with a lot more concise syntax to boot.

    As fir that being Java all over again: it started off as a Java clone, and later on moved in its own direction. It has similar-ish syntax, but that’s the extent of it.






  • Recent Linux convert here. Had some small background with it due to use at work (through WSL, unfortunately 😅). When Windows became too overbearing and intrusive for my own taste, decided to take a plunge and created a dual-boot setup with Bazzite (of course on my private machine). It was honestly refreshing to see stuff run with the same (or sometimes even better) performance.

    This short anecdote now leads me to the conclusion; is it as good as we think it is?

    Imo: hell fuckin’ yeah. It gets the job done and respects me as an end-user (with the trade-off of “some manual work might be required”).

    Also, as a side-note: I live in the EU; I grew tired with an overbearing, salesman/rapist-like mentality of MS (and Windows, by extension) while reaping benefits of some modicum of privacy regulations. I cannot even begin to fathom how fucked the situation is where ppl don’t have these protections to rely on.









  • Fellow .NET dev here, switched to Linux for side-gigs recently.

    In general, the experience is a lot better than Windows / WSL. Some general remarks on the setup (relevant mostly for Debian-based distros, so YMMV):

    • Rider / VSCode suggestion is spot on; go with the former if you have cash to spare and you’re fine with snaps, otherwise - DevKit can do DevKit things (with the only problem here being lack of .dcproj support in VSCode; can be ignored with proper integration test setup).
    • Containerization of DBMS: by all means, go for it if you have the resources to spare.
    • Possible gotchas:
      • If you’re going to use MS apt feed for .NET runtime / SDK, set up apt preferences to point to their feed for dotnet packages. Otherwise, you’re in for a bad time when running updates.
      • Docker: personally, I recommend Rancher Desktop for this purpose, as Docker Desktop on Windows left a bad taste in my mouth. If you’re fine with the latter, it’s up to your own preferences then.
      • Test containers: if you do use it with anything else than standard, bare-bones Docker setup, you’ll need a custom config; stumbled upon that the first time I tried running integration tests.