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
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.
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.
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.
That’s a great idea, can I use the 2 screens of my PC doing that?
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.
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
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.
Just wanted to add that no one should ever NOT be using a vm as their dev machine.