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

  • Eugenia@lemmy.ml
    ·
    7 months ago

    Instead of trying to run heavy and complex apps on an OS that were never designed for, use Windows for work, and then use gaming and your personal life on Linux. Another thing you can do is switch the kind of programming you do, so it's more linux-related, so overtime, you can only have Linux machines. But for the time being, if you're doing windows programming, use a windows machine for work.

  • Max-P@lemmy.max-p.me
    ·
    7 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@lemmy.ml
      ·
      7 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.

      • space_comrade [he/him]
        ·
        edit-2
        7 months ago

        I don't like VMs because I need to allocate memory upfront for it, and considering it's a Windows VM and depending on the dev work you're doing on it you might need to give it 10Gb+.

        If it's at all possible for OP I'd recommend getting a separate physical workstation and then just remoting into it with your Linux machine, if you use VSCode the process is pretty much seamless, you use VSCode from your Linux machine normally while all the work is being done on the remote machine.

          • space_comrade [he/him]
            ·
            7 months ago

            Not sure what you mean exactly. The Windows workstation machine could be accessed remotely from anywhere. I mean sure you're gonna have to hook it up to a monitor to set it up but after that you shouldn't have to access it directly, at least not often.

    • Enoril@jlai.lu
      ·
      7 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@lemmy.max-p.me
        ·
        7 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.

    • Flaky@iusearchlinux.fyi
      ·
      7 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.

  • bruce965@lemmy.ml
    ·
    edit-2
    7 months ago

    Yes, you can develop in .NET on VSCode and the debugger works on Linux too.

    There is a Docker version of SQL Server which funnily enough is equivalent to the enterprise version (rather than limited like SQL Express). You can use it for free as long as it's for development purposes only.

    There is no SQL Management Studio though.

    One option would be to use PostgreSQL instead. Entity Framework makes it almost free to replace the database anyways (unless you are doing some db-specific things).

    There are some other minor annoyances or missing features, it might bother you; but depending on how you are used to work, you might not even notice. But, hey! you are on Linux now, you get all the benefits of a UNIX operating system, it will be worth it for sure, right? (Yes, imho)


    As for gaming, I only do light gaming so I probably don't count. I use Heroic Launcher and it works wonderfully out of the box 50% of the time, the remaining 50% you can probably make it work as good as on Windows if you are persistent enough.

    Oh, and sometimes some games run better on Linux than on Windows, but I would say most of the time they run a bit worse.

  • Procapra
    ·
    edit-2
    1 month ago

    deleted by creator

    • bleepbloopbop [they/them]
      ·
      edit-2
      7 months ago

      You'll run into issues and not many people will be able to help. Debian, Fedora, and Ubuntu seem to be the popular distros rn for most people.

      Agree with the broader conclusion that a first time linux user should probably avoid gentoo, arch, whatever, but its not because nobody will be able to help you, more just that the expected level of polish is a bit less.

      It isn't considered a huge inconvenience to have to use the CLI or edit a config file by arch users, but for ubuntu especially they are more bent on building something that "just works" for most people (with the tradeoff being it's a commercially exploited product, and the innards of GNOME and the like tend to be more of a black box and less tweakable than say, a tiling WM)

      But if you do want to dive in and learn how more of the internals work and how to configure things at a lower level, you will find a lot of help with issues, and very detailed documentation for a lot more things in Arch, vs Ubuntu. I find the ubuntu community online to be sort of a middle ground between the detailed technical help I've gotten from Arch communities, and the "here's some magic steps that worked for me, no idea why" type of thing that is prevalent on windows support communities.

      Which isn't to say ubuntu people aren't helpful, but the critical mass of users isn't the only thing that matters, it also helps if the users are knowledgeable, and friendly (some arch people fail at this, though I've lucked out and really not had any bad experiences)

      • Procapra
        ·
        edit-2
        1 month ago

        deleted by creator

  • utopiah@lemmy.ml
    ·
    7 months ago

    I never thought I'd say this but... in your case, for work at least I would actually stick to Windows! It looks like most of your tools are from Microsoft and that the environment they will normally run on is Windows. It seems most pragmatic to stay there.

    For gaming though (as I've argue few times and can be seen from my history), Proton works well, even for AAA games, unsupported (officially) games and VR. ProtonDB helps you to quickly assess if that's the case for your specific games.

    Anyway, what I would suggest though is step back, i.e WHY do you want to step away from Windows. If it's technical then "just" dual boot and properly separating fun from work might be sufficient. If it's more moral and ethical, then earning money from tools that are NOT from Microsoft to gradually decouple, remove the dependency on it, seems like the "right" thing to do.

    • Rogue@feddit.uk
      ·
      edit-2
      7 months ago

      This is Visual Studio Code which is a very different app to Visual Studio

  • Panda@lemmy.today
    ·
    7 months ago

    I use Jetbrains Rider on Linux which runs just fine. It takes some setting up to install .NET but it didn't take me too long. Except for pre-release versions, that might take more trial and error.

    Overall I'm pretty satisfied with the switch to Linux and I haven't had any major issues. Not with video games, either. Protondb.com is a good website to see what games do and don't work on Linux and you may need to add launch options to get specific games to work or switch to a specific version of Proton.

    It's up to you to decide if it's worth it for you or not. You could try a dual boot setup first.