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

  • Max-P
    link
    fedilink
    227 months ago

    For the work part in particular, you may find that a virtual machine will get the job done pretty well. With modern CPUs there’s basically no overhead, so it’s often easier to just run the OS you need in a VM.

    You can just run it in the background, run your .NET and SQL server and stuff, possibly VSCode remote into it. PowerShell over SSH. If you need to run a GUI application, you can just RDP into it. FreeRDP has a cool feature where it can RDP a single application so it pops up as any other app on the host. Works great when you just need the database’s GUI or whatever.

    With virtio drivers and everything, it will be essentially as fast as if native. GUI will be slow because of software rendering, but the point is to use it as a server and only use the GUI as necessary, and for server stuff RDP isn’t too bad given it’s basically localhost network.

    There’s also the fun but painful world of VFIO and passing through a real GPU into the VM and feeding back the video to the host with Looking Glass. It’s so good you can game on that (anticheat still won’t work though, they don’t like VMs), so if RDP bothers you that’s an option. Although in my experience, Visual Studio is just as slow and buggy natively, so I wouldn’t bother and just RDP.

    If you add virtiofs to the mix, in theory you can share the code folder and use VSCode on the host and compile on the guest, or even compile on the host and run on the guest. Or send compile commands to Windows over SSH from VSCode. I have my entire Steam library (and Proton containers) on virtiofs and it works perfectly, so I have to imagine a code project should work nicely as well.

    Virtual machines are an awesome tool. There’s also the benefit of keeping all the work stuff in a big isolated container. If you have multiple projects you can make multiple VMs and not worry about one project needing version X and the other version Y of whatever.

    • youmaynotknow
      link
      fedilink
      77 months ago

      And this is why I didn’t comment. I knew someone had already suggested the VM way. This is the best way to keep your stuff separate from work related.

    • @[email protected]
      link
      fedilink
      English
      27 months ago

      Has Virtiofs matured lately into something that can be used day-to-day? I ask because I think the virtio stuff will be better for Windows virtualisation in the long-term, especially when VMware’s future is not certain, but I heard folder-sharing on Windows guests was pretty bad from Lemmy recently, and a few years ago I tried it and yeah, I have to agree.

    • @nexguy
      link
      27 months ago

      Just wanted to add that no one should ever NOT be using a vm as their dev machine.

    • Enoril
      link
      fedilink
      27 months ago

      Exactly what i did. Help also to not mix work and private life by having 2 distinct VM: one with ArchLinux for Gaming/Private apps, one with win10 for work

      • Max-P
        link
        fedilink
        17 months ago

        It’s even nice to subdivide some activities. I have a disposable one for running sketchy stuff, two for gaming (Arch and Windows), a few work ones, a few dev ones.

        They’re just so cheap to run these days, I always have one or two running at all times.