We've been developing on Windows and have been deploying exclusively to Linux since 2017, everything runs flawlessly. Only time where the deployed version was different was when the locale wasn't set in a Docker container.
Developing on macOS has an issue with running HTTPS/2 and gRPC endpoints which should be resolved in .NET 8 [1].
The notable part where .NET Core is lacking vs legacy Windows .NET Framework is graphics, i.e. System.Drawing and all Desktop GUIs, otherwise it's a first class cross-platform runtime.
I have a handful of smaller programs built on the SAFE stack. They're all F# and run very well on Linux. We use a lot of Excel interop so that is a no go on Linux but that is the only limitation I've found. It's not hard to have a server with an Office 365 license to run all of our Excel processing.
GUI frameworks don't consider Linux a deployment target, not even MAUI with its Xamarin heritage.
Due to its Windows original focus, lots of libraries still rely on Win32, COM and other Windows specific issues. This also inhibits most big name CMSs, which still rely on .NET Framework, e.g. Sitecore, SharePoint, Dynamics,....
Targeting Linux containers is usually only done by us if writing greefield microservices without many dependencies outside the standard library.
The Rider licensing cost is negligible when compared to a developer's compensation.
No need to pay for Rider licenses on top of the VS ones we already have.
I don't even use VS on subdued installs anymore, it's no longer the better option.
Some libraries thought of as C# are bindings to Windows OS things, so those are platform specific.
You've really got to read the Microsoft Learn pages to get higher resolution for an answer, though.
Just to nitpick. Core -> 5+ was not really a transition. Just a rename to drop the word "Core". Core is still itself, still Core, just no longer called Core.
The old .NET is frozen at version 4.8. So Microsoft felt there was no longer a need to refer to Core as "Core" once it hit version 5+. Maybe a bit premature as the old .NET is still in heavy use. Now it's always unclear which .NET someone is talking about because they say ".NET" which may refer to the old .NET or maybe the new .NET formerly known as "Core".
I don't know much about F#, but it seems F# isn't far behind. There's a useful page about getting started and other than the omission of Mono it is similarly supported.
You can run C# with .Net Core on linux now easily, no Mono involved and have been able to for years.
TBH, I thought Mono was dead. If it's not it's an extremely niche thing of people who want to write desktop apps for linux in C#, a tiny slice of the market.
I've run production ASP.Net core apps on linux (basically websites in C#), trivial to setup, even though I develop on Windows.
Mono is not dead. It's used in a bunch of commercial software for one thing, including Unity and Godot.
> If it's not it's an extremely niche thing of people who want to write desktop apps for linux in C#, a tiny slice of the market.
Can you think of why, other than marketshare, that I might mention Linux C# desktop apps in a thread about C# on Linux?
The platform has been renamed to ".NET" (since v5), the SDK is ".NET SDK" the executable is named "dotnet", but it has never been branded that way.
Right, IMO it's important to use these official correct labels when correcting someone.
"Dotnet" looks like an unintentional Autocomplete error. The executable and repo names use "dotnet" since using ".NET" or previously ".NET Core" would be awkward and unconventional.
I'm assuming "Golang" is used because "Go" is a generic ungoogleable word, any language without this issue e.g. Python, Java, Kotlin wouldn't need to make such concessions.
Rider is your friend.
Azure Data Studio is on its way to being a nice cross platform environment for databases, but it's not fully cooked yet. It was progressing really well but the last few months, it's been really slow to start the execution of any query for some reason. Hopefully they will fix that soon.
Both environments are plug-in based and there are a lot of good free ones available. You should definitely check it out.