I really want to switch to Linux, up to this point there were two things keeping me on Windows, gaming and work.

Gaming nowadays is a lot easier than a couple of years ago thanks to Valve and Proton, so that’s not a problem anymore; with the other one I don’t know if I can make something work enough and that’s why I’m asking here.

I work as a fullstack software developer with windows products I don’t fear for the frontend part because typescript, angular, react, … those I know I can run on linux with no problem on VS Code; for backend thought: dot.net, visual studio, sql server, … I think there is no Visual Studio for Linux and I don’t know if I can run & debug .net 8 applications on a linux machine? I can use docker for things like databases. Does anybody else has a similar scenario and things that had to overcame? Tips, problems that I may not see now before making the switch, and solutions to my current problems are welcome

  • @Metju
    link
    48 months ago

    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.