Comment by ackfoobar
21 hours ago
> .NET is now cross platform, but only as long as it doesn't hurt VS sales, with GUI workloads, profilers, still being mostly Windows only, and partially supported on VSCode, which also has the same VS license.
On HN I keep hearing that associating .NET with Windows is outdated perception.
Writing JVM languages I feel that the developer experience is pretty much the same on any OS. It seems this cannot be said for .NET?
If you're writing a server or a web app then its good and runs well.
Visual Studio is still not ported to Linux or Mac, you need to use Rider or VSCode. If you use JetBrains for Java, using Rider will feel good no matter where you are.
The GUI library situation is a tough one. In many ways its far more advanced than other languages but their newest attempt is not as good as the older Windows only API. But what other language is graded for its great native GUI library?
I'm not calling MS cool but at the same time I think the goalposts are different.
I do not understand the hungup on visual studio.
We dont do the same for java, rust, or c… there are good IDEs for each of them and none are made by the maintainers of the language.
Java IDEs have historically been made by maintainers of the language.
Netbeans was a product acquired by Sun, Sun Forte was its "Professional" variant in Solaris, and Oracle still takes care of it in the context of Solaris and Oracle Linux.
Eclipse was a rewrite from Visual Age products, originall written in Smalltalk, by IBM, and IBM keeps being a Java vendor with their own implementations.
I do get the sentiment to some degree. Part of it is that Microsoft does have a conflict of interest as an OS vender. They do need to show that they aren't/won't be abusing that. That does put them in a position where they're asked to go above and beyond as a form of litmus test.
Re: GUI library situation, are you implying that they finally came up with something that's cross platform? What is it?
They tried, by forking Xamarin Forms into MAUI, and even then they ignored Linux. It's really rough though, to the point many projects use it as just a glorified webview for Blazor. I expect it to eventually go into a silent maintenance mode along with WinUI 3.
Avalonia is the go-to library for cross-platform UI in .NET right now. But Microsoft's own apps have been switching to web stacks, in a clear case of "Do as I say, not as I do."
There is actually a much better but less well-known open source library in .NET: Avalonia. Look it up their gallery of apps. Avalonia is the cross platform version of Windows Presentation Foundation (WPF) libs. It is quite good for desktop apps and many commercial pieces of software uses it.
MAUI apparently has Windows, Mac and Mobile support but no distro Linux support (unless Wine counts). You could use the web stack to be truly cross platform.
It can. DX is pretty much the same for backend and CLI stuff using VS Code on Mac, Linux and Windows. I'm working daily on C# backend and CLI stuff on a Mac (those are the dev machines at my employer). DX is on par with Go and Rust (at least dotnet CLI, LSP, Debugger, I can't speak for the profiler as I've never used it). I like the Rust tooling most, but dotnet CLI is not far behind.
Language and std lib wise, C# sits in the sweet spot.
Mh, I'm not the most experienced guy with .NET.
We have a few .NET applications running on the infrastructure on Linux hosts and it's just like every other thing.
But in some contexts, e.g. PowerBI, it pulls in a dependency and BOOM it's Windows Only to the point that not even Wine or Proton can help you. For something, that should be, mind you, a dumb SQL proxy like the PowerBI Embedded Gateway.
I think the success of Proton and Wine in games clouds the vision of Linux community. The contributors did great work on them. However the gaming API of Windows is a very limited slice of the vast API.
Games are quite standalone programs they don't depend deeply integrated Win32 stuff. They don't even use standard UI stuff from Win32. With Vulkan, porting DirectX became very viable and that was the grunt work. There are no DCOM servers or OLE stuff in games which is where Windows API actually becomes huge and sometimes nastier. Business apps however deeply depend on those.
The server deploy experience for .NET is pretty much the same on Windows or Linux. The developer tooling experience has more options on Windows.
Pretty much no, it can't be said for .Net.
It currently supports Linux as a running target for servers. It supports both running desktop software and development very badly.
It supports Linux as a running target for console apps, which can be servers, background apps, systemd apps, etc. So everything except UI apps.
The development experience with Rider is also great on Linux. I think you need to be more specific with the complaints because I have many beefs with Microsoft's approach to many things, but I could not pick up on what you meant.
You can use Avalonia to develop cross-platform apps with .NET.
GUI stuff from Windows depends deeply on Win32 and how Windows's core APIs work. So expecting Microsoft to port stuff like .Net Windows Forms is meaningless. They are open source though. Maybe with some completion effort Wine can run them.
1 reply →
Can run SDL on linux and macos just fine, rendering visuals to the screen in X or Wayland.