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
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.
This sounds like the most reasonable answer here in this thread. I couldn’t have said it better.
Preferences don’t matter if you get paid for it. If your job demands working with software designed for Windows, then use Windows. If you don’t do that, you have to find workarounds that cost time and therefore money, both if you are self employed or have to work for a company.
Either you, or your boss, won’t be happy long term.If you like Linux more, then use it in your free time, or maybe consider switching your orientation for development to that platform.
Same for development for Apple stuff (e.g. iPhone apps). Then you’re stuck with MacOS too. Or if you have to use certain CAD or Adobe software, then you’re stuck on Windows/ Mac too.
Software availability is great on Linux, and today, you can get most of the stuff working on it, even if it isn’t designed for that. But is it worth it that time and effort? For me, it wouldn’t.
That’s because you do not understand the philosophy. We are not using GNU/Linux because it is easier, we’re using them out of idealism. In my opinion, it is worth sacrificing some comfort for the thing you believe in. And ultimately, every GNU/Linux user also leads to an increase in freedom for all the others, even the Windows or OS X evangelists profit from the hard work and lobbyism of the Linux community and the Free Software Foundation.
Honesty? Nowadays Linux is just easier for me.
Sometimes you forget that a lot of tools you are use to have in Linux don’t even exist on Windows (like
watchandcut). On Windows there are some problems you don’t even have to deal with on Unix-like systems.deleted by creator
.NET is now fully cross platform. you can absolutely run and debug applications on linux as you would in windows.
However Visual Studio IDE is windows only (theres a mac version but isn’t the same).
You can use vscode + .net development pack.
Personally I use Jetbrains rider (for home and work)
SQL Server has a linux version I believe, but its been years since Ive done an install (for development I run sql server in a container)
(theres a mac version but isn’t the same)
There was a mac version. But it is hitting EOL in August
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.
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.
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.
Afaik the only solution to your .net needs would be mono
You can try JetBrains Rider for .NET, but it’s only natural that you won’t be able to write Windows applications outside of Windows.
I’m personally impartial to JetBrains for my IDEs on Linux, they work really well and are well supported.
If you use a dockerized environment, that will only work better on Linux. .NET8 is AFAIK natively supported on Linux, so there shouldn’t be too much of an issue apart from the usual clunkyness. Visual Studio will probably be more of a problem. The “easiest” way would probably be to switch to jet brains or vscode. If you are hardstuck on VS for whatever reasons, you probably should be able to do some voodoo with running it in docker and using the container as a remote desktop, but this will be PITA to setup and maintain.
You can do .net on Linux but Windows is much better for that. I recommend using Windows for work and Linux for everything else.
You could always just boot up a windows VM and set up a shared folder to code on Linux/test on windows if your application has issues running on Linux.
deleted by creator
I have never manually written a csproj file
You can use https://www.jetbrains.com/rider/
Or vscode with https://learn.microsoft.com/en-us/visualstudio/subscriptions/vs-c-sharp-dev-kit












